createPolicyVersion method
Creates a new version of the specified IoT policy. To update a policy, create a new policy version. A managed policy can have up to five versions. If the policy has five versions, you must use DeletePolicyVersion to delete an existing version before you create a new one.
Optionally, you can set the new version as the policy's default version. The default version is the operative version (that is, the version that is in effect for the certificates to which the policy is attached).
Requires permission to access the CreatePolicyVersion action.
May throw InternalFailureException.
May throw InvalidRequestException.
May throw MalformedPolicyException.
May throw ResourceNotFoundException.
May throw ServiceUnavailableException.
May throw ThrottlingException.
May throw UnauthorizedException.
May throw VersionsLimitExceededException.
Parameter policyDocument :
The JSON document that describes the policy. Minimum length of 1. Maximum
length of 2048, excluding whitespace.
Parameter policyName :
The policy name.
Parameter setAsDefault :
Specifies whether the policy version is set as the default. When this
parameter is true, the new policy version becomes the operative version
(that is, the version that is in effect for the certificates to which the
policy is attached).
Implementation
Future<CreatePolicyVersionResponse> createPolicyVersion({
required String policyDocument,
required String policyName,
bool? setAsDefault,
}) async {
final $query = <String, List<String>>{
if (setAsDefault != null) 'setAsDefault': [setAsDefault.toString()],
};
final $payload = <String, dynamic>{
'policyDocument': policyDocument,
};
final response = await _protocol.send(
payload: $payload,
method: 'POST',
requestUri: '/policies/${Uri.encodeComponent(policyName)}/version',
queryParams: $query,
exceptionFnMap: _exceptionFns,
);
return CreatePolicyVersionResponse.fromJson(response);
}