deletePermissionVersion method
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);
}