putResourcePolicy method
Creates or updates a resource policy allowing other AWS services to put log events to this account, such as Amazon Route 53. An account can have up to 10 resource policies per AWS Region.
May throw InvalidParameterException. May throw LimitExceededException. May throw ServiceUnavailableException.
Parameter policyDocument
:
Details of the new policy, including the identity of the principal that is
enabled to put logs to this account. This is formatted as a JSON string.
This parameter is required.
The following example creates a resource policy enabling the Route 53
service to put DNS query logs in to the specified log group. Replace
"logArn"
with the ARN of your CloudWatch Logs resource, such
as a log group or log stream.
{ "Version": "2012-10-17", "Statement": [ { "Sid":
"Route53LogsToCloudWatchLogs", "Effect": "Allow", "Principal": {
"Service":
"route53.amazonaws.com"
}, "Action":"logs:PutLogEvents",
"Resource": "logArn" } ] }
Parameter policyName
:
Name of the new policy. This parameter is required.
Implementation
Future<PutResourcePolicyResponse> putResourcePolicy({
String? policyDocument,
String? policyName,
}) async {
_s.validateStringLength(
'policyDocument',
policyDocument,
1,
5120,
);
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Logs_20140328.PutResourcePolicy'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
if (policyDocument != null) 'policyDocument': policyDocument,
if (policyName != null) 'policyName': policyName,
},
);
return PutResourcePolicyResponse.fromJson(jsonResponse.body);
}