putResourcePolicy method
Creates or updates a Systems Manager resource policy. A resource policy helps you to define the IAM entity (for example, an Amazon Web Services account) that can manage your Systems Manager resources. The following resources support Systems Manager resource policies.
-
OpsItemGroup- The resource policy forOpsItemGroupenables Amazon Web Services accounts to view and interact with OpsCenter operational work items (OpsItems). -
Parameter- The resource policy is used to share a parameter with other accounts using Resource Access Manager (RAM).To share a parameter, it must be in the advanced parameter tier. For information about parameter tiers, see Managing parameter tiers. For information about changing an existing standard parameter to an advanced parameter, see Changing a standard parameter to an advanced parameter.
To share a
SecureStringparameter, it must be encrypted with a customer managed key, and you must share the key separately through Key Management Service. Amazon Web Services managed keys cannot be shared. Parameters encrypted with the default Amazon Web Services managed key can be updated to use a customer managed key instead. For KMS key definitions, see KMS concepts in the Key Management Service Developer Guide.For more information, see Sharing a parameter in the Amazon Web Services Systems Manager User Guide
May throw InternalServerError.
May throw MalformedResourcePolicyDocumentException.
May throw ResourceNotFoundException.
May throw ResourcePolicyConflictException.
May throw ResourcePolicyInvalidParameterException.
May throw ResourcePolicyLimitExceededException.
May throw ResourcePolicyNotFoundException.
Parameter policy :
A policy you want to associate with a resource.
Parameter resourceArn :
Amazon Resource Name (ARN) of the resource to which you want to attach a
policy.
Parameter policyHash :
ID of the current policy version. The hash helps to prevent a situation
where multiple users attempt to overwrite a policy. You must provide this
hash when updating or deleting a policy.
Parameter policyId :
The policy ID.
Implementation
Future<PutResourcePolicyResponse> putResourcePolicy({
required String policy,
required String resourceArn,
String? policyHash,
String? policyId,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'AmazonSSM.PutResourcePolicy'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'Policy': policy,
'ResourceArn': resourceArn,
if (policyHash != null) 'PolicyHash': policyHash,
if (policyId != null) 'PolicyId': policyId,
},
);
return PutResourcePolicyResponse.fromJson(jsonResponse.body);
}