attachRolePolicy method

Future<void> attachRolePolicy({
  1. required String policyArn,
  2. required String roleName,
})

Attaches the specified managed policy to the specified IAM role. When you attach a managed policy to a role, the managed policy becomes part of the role's permission (access) policy. Use this API to attach a managed policy to a role. To embed an inline policy in a role, use PutRolePolicy. For more information about policies, see Managed Policies and Inline Policies in the IAM User Guide.

May throw NoSuchEntityException. May throw LimitExceededException. May throw InvalidInputException. May throw UnmodifiableEntityException. May throw PolicyNotAttachableException. May throw ServiceFailureException.

Parameter policyArn : The Amazon Resource Name (ARN) of the IAM policy you want to attach.

For more information about ARNs, see Amazon Resource Names (ARNs) and AWS Service Namespaces in the AWS General Reference.

Parameter roleName : The name (friendly name, not ARN) of the role to attach the policy to.

This parameter allows (through its regex pattern) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-

Implementation

Future<void> attachRolePolicy({
  required String policyArn,
  required String roleName,
}) async {
  ArgumentError.checkNotNull(policyArn, 'policyArn');
  _s.validateStringLength(
    'policyArn',
    policyArn,
    20,
    2048,
    isRequired: true,
  );
  ArgumentError.checkNotNull(roleName, 'roleName');
  _s.validateStringLength(
    'roleName',
    roleName,
    1,
    64,
    isRequired: true,
  );
  final $request = <String, dynamic>{};
  $request['PolicyArn'] = policyArn;
  $request['RoleName'] = roleName;
  await _protocol.send(
    $request,
    action: 'AttachRolePolicy',
    version: '2010-05-08',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    shape: shapes['AttachRolePolicyRequest'],
    shapes: shapes,
  );
}