export interface Tag {
    /** The tag key. */
    key: string;
    /** The tag value. */
    value: string;
}
export interface UpstreamRepository {
    /** The name of an upstream repository. */
    repositoryName: string;
}
export interface PackageOriginRestrictions {
    /** The package origin configuration that determines if new versions of the package can be published directly to the repository. */
    publish: 'ALLOW' | 'BLOCK';
    /** The package origin configuration that determines if new versions of the package can be added to the repository from an external connection or upstream source. */
    upstream: 'ALLOW' | 'BLOCK';
}
export interface PackageGroupAllowedRepository {
    /** The name of the allowed repository. */
    repositoryName?: string;
    /** The origin configuration restriction type of the allowed repository. */
    originRestrictionType?: 'EXTERNAL_UPSTREAM' | 'INTERNAL_UPSTREAM' | 'PUBLISH';
}
export interface AssociateExternalConnectionInput {
    /** The name of the domain that contains the repository. */
    domain: string;
    /** The name of the external connection to add to the repository. The following values are supported: public:npmjs - for the npm public repository. public:nuget-org - for the NuGet Gallery. public:pypi -  */
    externalConnection: string;
    /** The name of the repository to which the external connection is added. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface CopyPackageVersionsInput {
    /** The name of the repository into which package versions are copied. */
    destinationRepository: string;
    /** The name of the domain that contains the source and destination repositories. */
    domain: string;
    /** The format of the package versions to be copied. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package that contains the versions to be copied. */
    package: string;
    /** The name of the repository that contains the package versions to be copied. */
    sourceRepository: string;
    /** Set to true to overwrite a package version that already exists in the destination repository. If set to false and the package version already exists in the destination repository, the package version  */
    allowOverwrite?: boolean;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** Set to true to copy packages from repositories that are upstream from the source repository to the destination repository. The default setting is false. For more information, see Working with upstream */
    includeFromUpstream?: boolean;
    /** The namespace of the package versions to be copied. The package component that specifies its namespace depends on its type. For example: The namespace is required when copying package versions of the  */
    namespace?: string;
    /** A list of key-value pairs. The keys are package versions and the values are package version revisions. A CopyPackageVersion operation succeeds if the specified versions in the source repository match  */
    versionRevisions?: Record<string, string>;
    /** The versions of the package to be copied. You must specify versions or versionRevisions. You cannot specify both. */
    versions?: string[];
}
export interface CreateDomainInput {
    /** The name of the domain to create. All domain names in an Amazon Web Services Region that are in the same Amazon Web Services account must be unique. The domain name is used as the prefix in DNS hostna */
    domain: string;
    /** The encryption key for the domain. This is used to encrypt content stored in a domain. An encryption key can be a key ID, a key Amazon Resource Name (ARN), a key alias, or a key alias ARN. To specify  */
    encryptionKey?: string;
    /** One or more tag key-value pairs for the domain. */
    tags?: Tag[];
}
export interface CreatePackageGroupInput {
    /** The name of the domain in which you want to create a package group. */
    domain: string;
    /** The pattern of the package group to create. The pattern is also the identifier of the package group. */
    packageGroup: string;
    /** The contact information for the created package group. */
    contactInfo?: string;
    /** A description of the package group. */
    description?: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** One or more tag key-value pairs for the package group. */
    tags?: Tag[];
}
export interface CreateRepositoryInput {
    /** The name of the domain that contains the created repository. */
    domain: string;
    /** The name of the repository to create. */
    repository: string;
    /** A description of the created repository. */
    description?: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** One or more tag key-value pairs for the repository. */
    tags?: Tag[];
    /** A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when CodeArtifact looks for a requested package ver */
    upstreams?: UpstreamRepository[];
}
export interface DeleteDomainInput {
    /** The name of the domain to delete. */
    domain: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface DeleteDomainPermissionsPolicyInput {
    /** The name of the domain associated with the resource policy to be deleted. */
    domain: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The current revision of the resource policy to be deleted. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. */
    policyRevision?: string;
}
export interface DeletePackageInput {
    /** The name of the domain that contains the package to delete. */
    domain: string;
    /** The format of the requested package to delete. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package to delete. */
    package: string;
    /** The name of the repository that contains the package to delete. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the package to delete. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting packages of the following formats:  */
    namespace?: string;
}
export interface DeletePackageGroupInput {
    /** The domain that contains the package group to be deleted. */
    domain: string;
    /** The pattern of the package group to be deleted. */
    packageGroup: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface DeletePackageVersionsInput {
    /** The name of the domain that contains the package to delete. */
    domain: string;
    /** The format of the package versions to delete. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package with the versions to delete. */
    package: string;
    /** The name of the repository that contains the package versions to delete. */
    repository: string;
    /** An array of strings that specify the versions of the package to delete. */
    versions: string[];
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The expected status of the package version to delete. */
    expectedStatus?: 'Published' | 'Unfinished' | 'Unlisted' | 'Archived' | 'Disposed' | 'Deleted';
    /** The namespace of the package versions to be deleted. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting package versions of th */
    namespace?: string;
}
export interface DeleteRepositoryInput {
    /** The name of the domain that contains the repository to delete. */
    domain: string;
    /** The name of the repository to delete. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface DeleteRepositoryPermissionsPolicyInput {
    /** The name of the domain that contains the repository associated with the resource policy to be deleted. */
    domain: string;
    /** The name of the repository that is associated with the resource policy to be deleted */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The revision of the repository's resource policy to be deleted. This revision is used for optimistic locking, which prevents others from accidentally overwriting your changes to the repository's resou */
    policyRevision?: string;
}
export interface DescribeDomainInput {
    /** A string that specifies the name of the requested domain. */
    domain: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface DescribePackageInput {
    /** The name of the domain that contains the repository that contains the package. */
    domain: string;
    /** A format that specifies the type of the requested package. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the requested package. */
    package: string;
    /** The name of the repository that contains the requested package. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the requested package. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting packages of the following formats */
    namespace?: string;
}
export interface DescribePackageGroupInput {
    /** The name of the domain that contains the package group. */
    domain: string;
    /** The pattern of the requested package group. */
    packageGroup: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface DescribePackageVersionInput {
    /** The name of the domain that contains the repository that contains the package version. */
    domain: string;
    /** A format that specifies the type of the requested package version. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the requested package version. */
    package: string;
    /** A string that contains the package version (for example, 3.5.2). */
    packageVersion: string;
    /** The name of the repository that contains the package version. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the requested package version. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting package versions of the f */
    namespace?: string;
}
export interface DescribeRepositoryInput {
    /** The name of the domain that contains the repository to describe. */
    domain: string;
    /** A string that specifies the name of the requested repository. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface DisassociateExternalConnectionInput {
    /** The name of the domain that contains the repository from which to remove the external repository. */
    domain: string;
    /** The name of the external connection to be removed from the repository. */
    externalConnection: string;
    /** The name of the repository from which the external connection will be removed. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface DisposePackageVersionsInput {
    /** The name of the domain that contains the repository you want to dispose. */
    domain: string;
    /** A format that specifies the type of package versions you want to dispose. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package with the versions you want to dispose. */
    package: string;
    /** The name of the repository that contains the package versions you want to dispose. */
    repository: string;
    /** The versions of the package you want to dispose. */
    versions: string[];
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The expected status of the package version to dispose. */
    expectedStatus?: 'Published' | 'Unfinished' | 'Unlisted' | 'Archived' | 'Disposed' | 'Deleted';
    /** The namespace of the package versions to be disposed. The package component that specifies its namespace depends on its type. For example: The namespace is required when disposing package versions of  */
    namespace?: string;
    /** The revisions of the package versions you want to dispose. */
    versionRevisions?: Record<string, string>;
}
export interface GetAssociatedPackageGroupInput {
    /** The name of the domain that contains the package from which to get the associated package group. */
    domain: string;
    /** The format of the package from which to get the associated package group. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The package from which to get the associated package group. */
    package: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the package from which to get the associated package group. The package component that specifies its namespace depends on its type. For example: The namespace is required when getting */
    namespace?: string;
}
export interface GetAuthorizationTokenInput {
    /** The name of the domain that is in scope for the generated authorization token. */
    domain: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The time, in seconds, that the generated authorization token is valid. Valid values are 0 and any number between 900 (15 minutes) and 43200 (12 hours). A value of 0 will set the expiration of the auth */
    durationSeconds?: number;
}
export interface GetDomainPermissionsPolicyInput {
    /** The name of the domain to which the resource policy is attached. */
    domain: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface GetPackageVersionAssetInput {
    /** The name of the requested asset. */
    asset: string;
    /** The name of the domain that contains the repository that contains the package version with the requested asset. */
    domain: string;
    /** A format that specifies the type of the package version with the requested asset file. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package that contains the requested asset. */
    package: string;
    /** A string that contains the package version (for example, 3.5.2). */
    packageVersion: string;
    /** The repository that contains the package version with the requested asset. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the package version with the requested asset file. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting asset */
    namespace?: string;
    /** The name of the package version revision that contains the requested asset. */
    packageVersionRevision?: string;
}
export interface GetPackageVersionReadmeInput {
    /** The name of the domain that contains the repository that contains the package version with the requested readme file. */
    domain: string;
    /** A format that specifies the type of the package version with the requested readme file. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package version that contains the requested readme file. */
    package: string;
    /** A string that contains the package version (for example, 3.5.2). */
    packageVersion: string;
    /** The repository that contains the package with the requested readme file. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the package version with the requested readme file. The package component that specifies its namespace depends on its type. For example: The namespace is required when requesting the  */
    namespace?: string;
}
export interface GetRepositoryEndpointInput {
    /** The name of the domain that contains the repository. */
    domain: string;
    /** Returns which endpoint of a repository to return. A repository has one endpoint for each package format. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the repository. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain that contains the repository. It does not include dashes or spaces. */
    domainOwner?: string;
    /** A string that specifies the type of endpoint. */
    endpointType?: 'dualstack' | 'ipv4';
}
export interface GetRepositoryPermissionsPolicyInput {
    /** The name of the domain containing the repository whose associated resource policy is to be retrieved. */
    domain: string;
    /** The name of the repository whose associated resource policy is to be retrieved. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface ListAllowedRepositoriesForGroupInput {
    /** The name of the domain that contains the package group from which to list allowed repositories. */
    domain: string;
    /** The origin configuration restriction type of which to list allowed repositories. */
    originRestrictionType: 'EXTERNAL_UPSTREAM' | 'INTERNAL_UPSTREAM' | 'PUBLISH';
    /** The pattern of the package group from which to list allowed repositories. */
    packageGroup: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
}
export interface ListAssociatedPackagesInput {
    /** The name of the domain that contains the package group from which to list associated packages. */
    domain: string;
    /** The pattern of the package group from which to list associated packages. */
    packageGroup: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
    /** When this flag is included, ListAssociatedPackages will return a list of packages that would be associated with a package group, even if it does not exist. */
    preview?: boolean;
}
export interface ListDomainsInput {
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
}
export interface ListPackageGroupsInput {
    /** The domain for which you want to list package groups. */
    domain: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
    /** A prefix for which to search package groups. When included, ListPackageGroups will return only package groups with patterns that match the prefix. */
    prefix?: string;
}
export interface ListPackagesInput {
    /** The name of the domain that contains the repository that contains the requested packages. */
    domain: string;
    /** The name of the repository that contains the requested packages. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The format used to filter requested packages. Only packages from the provided format will be returned. */
    format?: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The namespace prefix used to filter requested packages. Only packages with a namespace that starts with the provided string value are returned. Note that although this option is called --namespace and */
    namespace?: string;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
    /** A prefix used to filter requested packages. Only packages with names that start with packagePrefix are returned. */
    packagePrefix?: string;
    /** The value of the Publish package origin control restriction used to filter requested packages. Only packages with the provided restriction are returned. For more information, see PackageOriginRestrict */
    publish?: 'ALLOW' | 'BLOCK';
    /** The value of the Upstream package origin control restriction used to filter requested packages. Only packages with the provided restriction are returned. For more information, see PackageOriginRestric */
    upstream?: 'ALLOW' | 'BLOCK';
}
export interface ListPackageVersionAssetsInput {
    /** The name of the domain that contains the repository associated with the package version assets. */
    domain: string;
    /** The format of the package that contains the requested package version assets. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package that contains the requested package version assets. */
    package: string;
    /** A string that contains the package version (for example, 3.5.2). */
    packageVersion: string;
    /** The name of the repository that contains the package that contains the requested package version assets. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The namespace of the package version that contains the requested package version assets. The package component that specifies its namespace depends on its type. For example: The namespace is required  */
    namespace?: string;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
}
export interface ListPackageVersionDependenciesInput {
    /** The name of the domain that contains the repository that contains the requested package version dependencies. */
    domain: string;
    /** The format of the package with the requested dependencies. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package versions' package. */
    package: string;
    /** A string that contains the package version (for example, 3.5.2). */
    packageVersion: string;
    /** The name of the repository that contains the requested package version. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the package version with the requested dependencies. The package component that specifies its namespace depends on its type. For example: The namespace is required when listing depend */
    namespace?: string;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
}
export interface ListPackageVersionsInput {
    /** The name of the domain that contains the repository that contains the requested package versions. */
    domain: string;
    /** The format of the package versions you want to list. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package for which you want to request package versions. */
    package: string;
    /** The name of the repository that contains the requested package versions. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The namespace of the package that contains the requested package versions. The package component that specifies its namespace depends on its type. For example: The namespace is required when deleting  */
    namespace?: string;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
    /** The originType used to filter package versions. Only package versions with the provided originType will be returned. */
    originType?: 'INTERNAL' | 'EXTERNAL' | 'UNKNOWN';
    /** How to sort the requested list of package versions. */
    sortBy?: 'PUBLISHED_TIME';
    /** A string that filters the requested package versions by status. */
    status?: 'Published' | 'Unfinished' | 'Unlisted' | 'Archived' | 'Disposed' | 'Deleted';
}
export interface ListRepositoriesInput {
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
    /** A prefix used to filter returned repositories. Only repositories with names that start with repositoryPrefix are returned. */
    repositoryPrefix?: string;
}
export interface ListRepositoriesInDomainInput {
    /** The name of the domain that contains the returned list of repositories. */
    domain: string;
    /** Filter the list of repositories to only include those that are managed by the Amazon Web Services account ID. */
    administratorAccount?: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
    /** A prefix used to filter returned repositories. Only repositories with names that start with repositoryPrefix are returned. */
    repositoryPrefix?: string;
}
export interface ListSubPackageGroupsInput {
    /** The name of the domain which contains the package group from which to list sub package groups. */
    domain: string;
    /** The pattern of the package group from which to list sub package groups. */
    packageGroup: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The maximum number of results to return per page. */
    maxResults?: number;
    /** The token for the next set of results. Use the value returned in the previous response in the next request to retrieve the next set of results. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to get tags for. */
    resourceArn: string;
}
export interface PublishPackageVersionInput {
    /** The content of the asset to publish. */
    assetContent: string;
    /** The name of the asset to publish. Asset names can include Unicode letters and numbers, and the following special characters: ~ ! @ ^ & ( ) - ` _ + [ ] { } ; , . ` */
    assetName: string;
    /** The SHA256 hash of the assetContent to publish. This value must be calculated by the caller and provided with the request (see Publishing a generic package in the CodeArtifact User Guide). This value  */
    assetSHA256: string;
    /** The name of the domain that contains the repository that contains the package version to publish. */
    domain: string;
    /** A format that specifies the type of the package version with the requested asset file. The only supported value is generic. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package version to publish. */
    package: string;
    /** The package version to publish (for example, 3.5.2). */
    packageVersion: string;
    /** The name of the repository that the package version will be published to. */
    repository: string;
    /** The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the package version to publish. */
    namespace?: string;
    /** Specifies whether the package version should remain in the unfinished state. If omitted, the package version status will be set to Published (see Package version status in the CodeArtifact User Guide) */
    unfinished?: boolean;
}
export interface PutDomainPermissionsPolicyInput {
    /** The name of the domain on which to set the resource policy. */
    domain: string;
    /** A valid displayable JSON Aspen policy string to be set as the access control resource policy on the provided domain. */
    policyDocument: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The current revision of the resource policy to be set. This revision is used for optimistic locking, which prevents others from overwriting your changes to the domain's resource policy. */
    policyRevision?: string;
}
export interface PutPackageOriginConfigurationInput {
    /** The name of the domain that contains the repository that contains the package. */
    domain: string;
    /** A format that specifies the type of the package to be updated. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package to be updated. */
    package: string;
    /** The name of the repository that contains the package. */
    repository: string;
    /** A PackageOriginRestrictions object that contains information about the upstream and publish package origin restrictions. The upstream restriction determines if new package versions can be ingested or  */
    restrictions: PackageOriginRestrictions;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The namespace of the package to be updated. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The namespace  */
    namespace?: string;
}
export interface PutRepositoryPermissionsPolicyInput {
    /** The name of the domain containing the repository to set the resource policy on. */
    domain: string;
    /** A valid displayable JSON Aspen policy string to be set as the access control resource policy on the provided repository. */
    policyDocument: string;
    /** The name of the repository to set the resource policy on. */
    repository: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** Sets the revision of the resource policy that specifies permissions to access the repository. This revision is used for optimistic locking, which prevents others from overwriting your changes to the r */
    policyRevision?: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to add or update tags for. */
    resourceArn: string;
    /** The tags you want to modify or add to the resource. */
    tags: Tag[];
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource that you want to remove tags from. */
    resourceArn: string;
    /** The tag key for each tag that you want to remove from the resource. */
    tagKeys: string[];
}
export interface UpdatePackageGroupInput {
    /** The name of the domain which contains the package group to be updated. */
    domain: string;
    /** The pattern of the package group to be updated. */
    packageGroup: string;
    /** Contact information which you want to update the requested package group with. */
    contactInfo?: string;
    /** The description you want to update the requested package group with. */
    description?: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
}
export interface UpdatePackageGroupOriginConfigurationInput {
    /** The name of the domain which contains the package group for which to update the origin configuration. */
    domain: string;
    /** The pattern of the package group for which to update the origin configuration. */
    packageGroup: string;
    /** The repository name and restrictions to add to the allowed repository list of the specified package group. */
    addAllowedRepositories?: PackageGroupAllowedRepository[];
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The repository name and restrictions to remove from the allowed repository list of the specified package group. */
    removeAllowedRepositories?: PackageGroupAllowedRepository[];
    /** The origin configuration settings that determine how package versions can enter repositories. */
    restrictions?: Record<string, 'ALLOW' | 'ALLOW_SPECIFIC_REPOSITORIES' | 'BLOCK' | 'INHERIT'>;
}
export interface UpdatePackageVersionsStatusInput {
    /** The name of the domain that contains the repository that contains the package versions with a status to be updated. */
    domain: string;
    /** A format that specifies the type of the package with the statuses to update. */
    format: 'npm' | 'pypi' | 'maven' | 'nuget' | 'generic' | 'ruby' | 'swift' | 'cargo';
    /** The name of the package with the version statuses to update. */
    package: string;
    /** The repository that contains the package versions with the status you want to update. */
    repository: string;
    /** The status you want to change the package version status to. */
    targetStatus: 'Published' | 'Unfinished' | 'Unlisted' | 'Archived' | 'Disposed' | 'Deleted';
    /** An array of strings that specify the versions of the package with the statuses to update. */
    versions: string[];
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** The package version’s expected status before it is updated. If expectedStatus is provided, the package version's status is updated only if its status at the time UpdatePackageVersionsStatus is called  */
    expectedStatus?: 'Published' | 'Unfinished' | 'Unlisted' | 'Archived' | 'Disposed' | 'Deleted';
    /** The namespace of the package version to be updated. The package component that specifies its namespace depends on its type. For example: The namespace of a Maven package version is its groupId. The na */
    namespace?: string;
    /** A map of package versions and package version revisions. The map key is the package version (for example, 3.5.2), and the map value is the package version revision. */
    versionRevisions?: Record<string, string>;
}
export interface UpdateRepositoryInput {
    /** The name of the domain associated with the repository to update. */
    domain: string;
    /** The name of the repository to update. */
    repository: string;
    /** An updated repository description. */
    description?: string;
    /** The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces. */
    domainOwner?: string;
    /** A list of upstream repositories to associate with the repository. The order of the upstream repositories in the list determines their priority order when CodeArtifact looks for a requested package ver */
    upstreams?: UpstreamRepository[];
}
/** codeartifact service binding for Step Functions SDK integrations. */
export declare class codeartifact {
    constructor();
    associateExternalConnection<T>(params: AssociateExternalConnectionInput): Promise<T>;
    copyPackageVersions<T>(params: CopyPackageVersionsInput): Promise<T>;
    createDomain<T>(params: CreateDomainInput): Promise<T>;
    createPackageGroup<T>(params: CreatePackageGroupInput): Promise<T>;
    createRepository<T>(params: CreateRepositoryInput): Promise<T>;
    deleteDomain<T>(params: DeleteDomainInput): Promise<T>;
    deleteDomainPermissionsPolicy<T>(params: DeleteDomainPermissionsPolicyInput): Promise<T>;
    deletePackage<T>(params: DeletePackageInput): Promise<T>;
    deletePackageGroup<T>(params: DeletePackageGroupInput): Promise<T>;
    deletePackageVersions<T>(params: DeletePackageVersionsInput): Promise<T>;
    deleteRepository<T>(params: DeleteRepositoryInput): Promise<T>;
    deleteRepositoryPermissionsPolicy<T>(params: DeleteRepositoryPermissionsPolicyInput): Promise<T>;
    describeDomain<T>(params: DescribeDomainInput): Promise<T>;
    describePackage<T>(params: DescribePackageInput): Promise<T>;
    describePackageGroup<T>(params: DescribePackageGroupInput): Promise<T>;
    describePackageVersion<T>(params: DescribePackageVersionInput): Promise<T>;
    describeRepository<T>(params: DescribeRepositoryInput): Promise<T>;
    disassociateExternalConnection<T>(params: DisassociateExternalConnectionInput): Promise<T>;
    disposePackageVersions<T>(params: DisposePackageVersionsInput): Promise<T>;
    getAssociatedPackageGroup<T>(params: GetAssociatedPackageGroupInput): Promise<T>;
    getAuthorizationToken<T>(params: GetAuthorizationTokenInput): Promise<T>;
    getDomainPermissionsPolicy<T>(params: GetDomainPermissionsPolicyInput): Promise<T>;
    getPackageVersionAsset<T>(params: GetPackageVersionAssetInput): Promise<T>;
    getPackageVersionReadme<T>(params: GetPackageVersionReadmeInput): Promise<T>;
    getRepositoryEndpoint<T>(params: GetRepositoryEndpointInput): Promise<T>;
    getRepositoryPermissionsPolicy<T>(params: GetRepositoryPermissionsPolicyInput): Promise<T>;
    listAllowedRepositoriesForGroup<T>(params: ListAllowedRepositoriesForGroupInput): Promise<T>;
    listAssociatedPackages<T>(params: ListAssociatedPackagesInput): Promise<T>;
    listDomains<T>(params: ListDomainsInput): Promise<T>;
    listPackageGroups<T>(params: ListPackageGroupsInput): Promise<T>;
    listPackages<T>(params: ListPackagesInput): Promise<T>;
    listPackageVersionAssets<T>(params: ListPackageVersionAssetsInput): Promise<T>;
    listPackageVersionDependencies<T>(params: ListPackageVersionDependenciesInput): Promise<T>;
    listPackageVersions<T>(params: ListPackageVersionsInput): Promise<T>;
    listRepositories<T>(params: ListRepositoriesInput): Promise<T>;
    listRepositoriesInDomain<T>(params: ListRepositoriesInDomainInput): Promise<T>;
    listSubPackageGroups<T>(params: ListSubPackageGroupsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    publishPackageVersion<T>(params: PublishPackageVersionInput): Promise<T>;
    putDomainPermissionsPolicy<T>(params: PutDomainPermissionsPolicyInput): Promise<T>;
    putPackageOriginConfiguration<T>(params: PutPackageOriginConfigurationInput): Promise<T>;
    putRepositoryPermissionsPolicy<T>(params: PutRepositoryPermissionsPolicyInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updatePackageGroup<T>(params: UpdatePackageGroupInput): Promise<T>;
    updatePackageGroupOriginConfiguration<T>(params: UpdatePackageGroupOriginConfigurationInput): Promise<T>;
    updatePackageVersionsStatus<T>(params: UpdatePackageVersionsStatusInput): Promise<T>;
    updateRepository<T>(params: UpdateRepositoryInput): Promise<T>;
}
//# sourceMappingURL=codeartifact.d.ts.map