putDestinationPolicy method
Creates or updates an access policy associated with an existing destination. An access policy is an IAM policy document that is used to authorize claims to register a subscription filter against a given destination.
May throw InvalidParameterException.
May throw OperationAbortedException.
May throw ServiceUnavailableException.
Parameter accessPolicy :
An IAM policy document that authorizes cross-account users to deliver
their log events to the associated destination. This can be up to 5120
bytes.
Parameter destinationName :
A name for an existing destination.
Parameter forceUpdate :
Specify true if you are updating an existing destination policy to grant
permission to an organization ID instead of granting permission to
individual Amazon Web Services accounts. Before you update a destination
policy this way, you must first update the subscription filters in the
accounts that send logs to this destination. If you do not, the
subscription filters might stop working. By specifying true
for forceUpdate, you are affirming that you have already
updated the subscription filters. For more information, see
Updating an existing cross-account subscription
If you omit this parameter, the default of false is used.
Implementation
Future<void> putDestinationPolicy({
required String accessPolicy,
required String destinationName,
bool? forceUpdate,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'Logs_20140328.PutDestinationPolicy'
};
await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'accessPolicy': accessPolicy,
'destinationName': destinationName,
if (forceUpdate != null) 'forceUpdate': forceUpdate,
},
);
}