putDestinationPolicy method

Future<void> putDestinationPolicy({
  1. required String accessPolicy,
  2. required String destinationName,
  3. bool? forceUpdate,
})

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,
    },
  );
}