CopyPackageVersions - AWS CodeArtifact

CopyPackageVersions

Copies package versions from one repository to another repository in the same domain.

Note

You must specify versions or versionRevisions. You cannot specify both.

Request Syntax

POST /v1/package/versions/copy?destination-repository=destinationRepository&domain=domain&domain-owner=domainOwner&format=format&namespace=namespace&package=package&source-repository=sourceRepository HTTP/1.1 Content-type: application/json { "allowOverwrite": boolean, "includeFromUpstream": boolean, "versionRevisions": { "string" : "string" }, "versions": [ "string" ] }

URI Request Parameters

The request uses the following URI parameters.

destinationRepository

The name of the repository into which package versions are copied.

Length Constraints: Minimum length of 2. Maximum length of 100.

Pattern: [A-Za-z0-9][A-Za-z0-9._\-]{1,99}

Required: Yes

domain

The name of the domain that contains the source and destination repositories.

Length Constraints: Minimum length of 2. Maximum length of 50.

Pattern: [a-z][a-z0-9\-]{0,48}[a-z0-9]

Required: Yes

domainOwner

The 12-digit account number of the AWS account that owns the domain. It does not include dashes or spaces.

Length Constraints: Fixed length of 12.

Pattern: [0-9]{12}

format

The format of the package versions to be copied.

Valid Values: npm | pypi | maven | nuget | generic | ruby | swift | cargo

Required: Yes

namespace

The namespace of the package versions to be copied. The package component that specifies its namespace depends on its type. For example:

Note

The namespace is required when copying package versions of the following formats:

  • Maven

  • Swift

  • generic

  • The namespace of a Maven package version is its groupId.

  • The namespace of an npm or Swift package version is its scope.

  • The namespace of a generic package is its namespace.

  • Python, NuGet, Ruby, and Cargo package versions do not contain a corresponding component, package versions of those formats do not have a namespace.

Length Constraints: Minimum length of 1. Maximum length of 255.

Pattern: [^#/\s]+

package

The name of the package that contains the versions to be copied.

Length Constraints: Minimum length of 1. Maximum length of 255.

Pattern: [^#/\s]+

Required: Yes

sourceRepository

The name of the repository that contains the package versions to be copied.

Length Constraints: Minimum length of 2. Maximum length of 100.

Pattern: [A-Za-z0-9][A-Za-z0-9._\-]{1,99}

Required: Yes

Request Body

The request accepts the following data in JSON format.

allowOverwrite

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 is returned in the failedVersions field of the response with an ALREADY_EXISTS error code.

Type: Boolean

Required: No

includeFromUpstream

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 repositories.

Type: Boolean

Required: No

versionRevisions

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 the specified package version revision.

Note

You must specify versions or versionRevisions. You cannot specify both.

Type: String to string map

Key Length Constraints: Minimum length of 1. Maximum length of 255.

Key Pattern: [^#/\s]+

Value Length Constraints: Minimum length of 1. Maximum length of 50.

Value Pattern: \S+

Required: No

versions

The versions of the package to be copied.

Note

You must specify versions or versionRevisions. You cannot specify both.

Type: Array of strings

Array Members: Maximum number of 100 items.

Length Constraints: Minimum length of 1. Maximum length of 255.

Pattern: [^#/\s]+

Required: No

Response Syntax

HTTP/1.1 200 Content-type: application/json { "failedVersions": { "string" : { "errorCode": "string", "errorMessage": "string" } }, "successfulVersions": { "string" : { "revision": "string", "status": "string" } } }

Response Elements

If the action is successful, the service sends back an HTTP 200 response.

The following data is returned in JSON format by the service.

failedVersions

A map of package versions that failed to copy and their error codes. The possible error codes are in the PackageVersionError data type. They are:

  • ALREADY_EXISTS

  • MISMATCHED_REVISION

  • MISMATCHED_STATUS

  • NOT_ALLOWED

  • NOT_FOUND

  • SKIPPED

Type: String to PackageVersionError object map

Key Length Constraints: Minimum length of 1. Maximum length of 255.

Key Pattern: [^#/\s]+

successfulVersions

A list of the package versions that were successfully copied to your repository.

Type: String to SuccessfulPackageVersionInfo object map

Key Length Constraints: Minimum length of 1. Maximum length of 255.

Key Pattern: [^#/\s]+

Errors

For information about the errors that are common to all actions, see Common Errors.

AccessDeniedException

The operation did not succeed because of an unauthorized access attempt.

HTTP Status Code: 403

ConflictException

The operation did not succeed because prerequisites are not met.

HTTP Status Code: 409

InternalServerException

The operation did not succeed because of an error that occurred inside AWS CodeArtifact.

HTTP Status Code: 500

ResourceNotFoundException

The operation did not succeed because the resource requested is not found in the service.

HTTP Status Code: 404

ServiceQuotaExceededException

The operation did not succeed because it would have exceeded a service limit for your account.

HTTP Status Code: 402

ThrottlingException

The operation did not succeed because too many requests are sent to the service.

HTTP Status Code: 429

ValidationException

The operation did not succeed because a parameter in the request was sent with an invalid value.

HTTP Status Code: 400

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: