putResourcePolicy method

Future<PutResourcePolicyResponse> putResourcePolicy({
  1. required String resourceArn,
  2. required String resourcePolicy,
})

Attaches a resource-based permission policy to a CloudTrail event data store, dashboard, or channel. For more information about resource-based policies, see CloudTrail resource-based policy examples in the CloudTrail User Guide.

May throw ConflictException. May throw OperationNotPermittedException. May throw ResourceARNNotValidException. May throw ResourceNotFoundException. May throw ResourcePolicyNotValidException. May throw ResourceTypeNotSupportedException. May throw UnsupportedOperationException.

Parameter resourceArn : The Amazon Resource Name (ARN) of the CloudTrail event data store, dashboard, or channel attached to the resource-based policy.

Example event data store ARN format: arn:aws:cloudtrail:us-east-2:123456789012:eventdatastore/EXAMPLE-f852-4e8f-8bd1-bcf6cEXAMPLE

Example dashboard ARN format: arn:aws:cloudtrail:us-east-1:123456789012:dashboard/exampleDash

Example channel ARN format: arn:aws:cloudtrail:us-east-2:123456789012:channel/01234567890

Parameter resourcePolicy : A JSON-formatted string for an Amazon Web Services resource-based policy.

For example resource-based policies, see CloudTrail resource-based policy examples in the CloudTrail User Guide.

Implementation

Future<PutResourcePolicyResponse> putResourcePolicy({
  required String resourceArn,
  required String resourcePolicy,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'CloudTrail_20131101.PutResourcePolicy'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'ResourceArn': resourceArn,
      'ResourcePolicy': resourcePolicy,
    },
  );

  return PutResourcePolicyResponse.fromJson(jsonResponse.body);
}