deletePackageVersions method

Future<DeletePackageVersionsResult> deletePackageVersions({
  1. required String domain,
  2. required PackageFormat format,
  3. required String package,
  4. required String repository,
  5. required List<String> versions,
  6. String? domainOwner,
  7. PackageVersionStatus? expectedStatus,
  8. String? namespace,
})

Deletes one or more versions of a package. A deleted package version cannot be restored in your repository. If you want to remove a package version from your repository and be able to restore it later, set its status to Archived. Archived packages cannot be downloaded from a repository and don't show up with list package APIs (for example, ListPackageVersions), but you can restore them using UpdatePackageVersionsStatus.

May throw AccessDeniedException. May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ThrottlingException. May throw ValidationException.

Parameter domain : The name of the domain that contains the package to delete.

Parameter format : The format of the package versions to delete.

Parameter package : The name of the package with the versions to delete.

Parameter repository : The name of the repository that contains the package versions to delete.

Parameter versions : An array of strings that specify the versions of the package to delete.

Parameter domainOwner : The 12-digit account number of the Amazon Web Services account that owns the domain. It does not include dashes or spaces.

Parameter expectedStatus : The expected status of the package version to delete.

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

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

Implementation

Future<DeletePackageVersionsResult> deletePackageVersions({
  required String domain,
  required PackageFormat format,
  required String package,
  required String repository,
  required List<String> versions,
  String? domainOwner,
  PackageVersionStatus? expectedStatus,
  String? namespace,
}) async {
  final $query = <String, List<String>>{
    'domain': [domain],
    'format': [format.value],
    'package': [package],
    'repository': [repository],
    if (domainOwner != null) 'domain-owner': [domainOwner],
    if (namespace != null) 'namespace': [namespace],
  };
  final $payload = <String, dynamic>{
    'versions': versions,
    if (expectedStatus != null) 'expectedStatus': expectedStatus.value,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/v1/package/versions/delete',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return DeletePackageVersionsResult.fromJson(response);
}