deletePermissionVersion method

Future<DeletePermissionVersionResponse> deletePermissionVersion({
  1. required String permissionArn,
  2. required int permissionVersion,
  3. String? clientToken,
})

Deletes one version of a customer managed permission. The version you specify must not be attached to any resource share and must not be the default version for the permission.

If a customer managed permission has the maximum of 5 versions, then you must delete at least one version before you can create another.

May throw IdempotentParameterMismatchException. May throw InvalidClientTokenException. May throw InvalidParameterException. May throw MalformedArnException. May throw OperationNotPermittedException. May throw ServerInternalException. May throw ServiceUnavailableException. May throw UnknownResourceException.

Parameter permissionArn : Specifies the Amazon Resource Name (ARN) of the permission with the version you want to delete.

Parameter permissionVersion : Specifies the version number to delete.

You can't delete the default version for a customer managed permission.

You can't delete a version if it's the only version of the permission. You must either first create another version, or delete the permission completely.

You can't delete a version if it is attached to any resource shares. If the version is the default, you must first use SetDefaultPermissionVersion to set a different version as the default for the customer managed permission, and then use AssociateResourceSharePermission to update your resource shares to use the new default version.

Parameter clientToken : Specifies a unique, case-sensitive identifier that you provide to ensure the idempotency of the request. This lets you safely retry the request without accidentally performing the same operation a second time. Passing the same value to a later call to an operation requires that you also pass the same value for all other parameters. We recommend that you use a UUID type of value..

If you don't provide this value, then Amazon Web Services generates a random one for you.

If you retry the operation with the same ClientToken, but with different parameters, the retry fails with an IdempotentParameterMismatch error.

Implementation

Future<DeletePermissionVersionResponse> deletePermissionVersion({
  required String permissionArn,
  required int permissionVersion,
  String? clientToken,
}) async {
  final $query = <String, List<String>>{
    'permissionArn': [permissionArn],
    'permissionVersion': [permissionVersion.toString()],
    if (clientToken != null) 'clientToken': [clientToken],
  };
  final response = await _protocol.send(
    payload: null,
    method: 'DELETE',
    requestUri: '/deletepermissionversion',
    queryParams: $query,
    exceptionFnMap: _exceptionFns,
  );
  return DeletePermissionVersionResponse.fromJson(response);
}