import { Value } from '../../cloudformation/Value';
import { PolicyDocument } from '../../cloudformation/iam/PolicyDocument';
import { Tag } from '../Tag';
import { Attribute } from '../../cloudformation/Attribute';
import { AwsResource } from '../../cloudformation/resources/AwsResource';
export type DomainAttributes = {
    Owner: Attribute<string>;
    EncryptionKey: Attribute<string>;
    Arn: Attribute<string>;
    Name: Attribute<string>;
};
export type Domain = AwsResource<'AWS::CodeArtifact::Domain', DomainProperties, DomainAttributes>;
/**
  The <code>AWS::CodeArtifact::Domain</code> resource creates an AWS CodeArtifact domain. CodeArtifact <em>domains</em> make it easier to manage multiple repositories across an organization. You can use a domain to apply permissions across many repositories owned by different AWS accounts. For more information about domains, see the <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/codeartifact-concepts.html#welcome-concepts-domain">Domain concepts information</a> in the <em>CodeArtifact User Guide</em>. For more information about the <code>CreateDomain</code> API, see <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_CreateDomain.html">CreateDomain</a> in the <em>CodeArtifact API Reference</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html">the AWS Docs</a>
*/
export declare function domain(domainProps: DomainProperties): Domain;
/**
  The <code>AWS::CodeArtifact::Domain</code> resource creates an AWS CodeArtifact domain. CodeArtifact <em>domains</em> make it easier to manage multiple repositories across an organization. You can use a domain to apply permissions across many repositories owned by different AWS accounts. For more information about domains, see the <a href="https://docs.aws.amazon.com/codeartifact/latest/ug/codeartifact-concepts.html#welcome-concepts-domain">Domain concepts information</a> in the <em>CodeArtifact User Guide</em>. For more information about the <code>CreateDomain</code> API, see <a href="https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_CreateDomain.html">CreateDomain</a> in the <em>CodeArtifact API Reference</em>.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codeartifact-domain.html">the AWS Docs</a>
*/
export interface DomainProperties {
    /** <code>PermissionsPolicyDocument</code>  <a name="cfn-codeartifact-domain-permissionspolicydocument"></a>
  The document that defines the resource policy that is set on a domain.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    permissionsPolicyDocument?: Value<PolicyDocument>;
    /** <code>DomainName</code>  <a name="cfn-codeartifact-domain-domainname"></a>
  A string that specifies the name of the requested domain.<br />
  
  Required: Yes<br />
  
  Minimum: <code>2</code><br />
  
  Maximum: <code>50</code><br />
  
  Pattern: <code>[a-z][a-z0-9\-]{0,48}[a-z0-9]</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    domainName: Value<string>;
    /** <code>Tags</code>  <a name="cfn-codeartifact-domain-tags"></a>
  A list of tags to be applied to the domain.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    tags?: Tag[];
    /** <code>EncryptionKey</code>  <a name="cfn-codeartifact-domain-encryptionkey"></a>
  The key used to encrypt the domain.<br />
  
  Required: No<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>1011</code><br />
  
  Pattern: <code>\S+</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement">Replacement</a> */
    encryptionKey?: Value<string>;
}
