Skip to content

create_iam_policy_assignment

create_iam_policy_assignment(
    aws_account_id: AwsAccountId,
    assignment_name: IAMPolicyAssignmentName,
    assignment_status: AssignmentStatus,
    namespace: Namespace,
    *,
    config_overrides: Optional[QuickSightClientConfig] = None,
    policy_arn: Optional[Arn] = None,
    identities: Optional[IdentityMap] = None,
) -> CreateIAMPolicyAssignmentResponse

Creates an assignment with one specified IAM policy, identified by its Amazon Resource Name (ARN). This policy assignment is attached to the specified groups or users of Amazon Quick Sight. Assignment names are unique per Amazon Web Services account. To avoid overwriting rules in other namespaces, use assignment names that are unique.

Parameters:

  • aws_account_id (AwsAccountId) –

    The ID of the Amazon Web Services account where you want to assign an IAM policy to Amazon Quick Sight users or groups.

  • assignment_name (IAMPolicyAssignmentName) –

    The name of the assignment, also called a rule. The name must be unique within the Amazon Web Services account.

  • assignment_status (AssignmentStatus) –

    The status of the assignment. Possible values are as follows:

    • ENABLED - Anything specified in this assignment is used when creating the data source.

    • DISABLED - This assignment isn't used when creating the data source.

    • DRAFT - This assignment is an unfinished draft and isn't used when creating the data source.

  • policy_arn (Optional[Arn], default: None ) –

    The ARN for the IAM policy to apply to the Amazon Quick Sight users and groups specified in this assignment.

  • identities (Optional[IdentityMap], default: None ) –

    The Amazon Quick Sight users, groups, or both that you want to assign the policy to.

  • namespace (Namespace) –

    The namespace that contains the assignment.

Raises:

Source code in docs_src/capo_quicksight/_services/quick_sight.py
def create_iam_policy_assignment(
    self,
    aws_account_id: "capo_quicksight.types.aws_account_id.AwsAccountId",
    assignment_name: "capo_quicksight.types.iam_policy_assignment_name.IAMPolicyAssignmentName",
    assignment_status: "capo_quicksight.types.assignment_status.AssignmentStatus",
    namespace: "capo_quicksight.types.namespace.Namespace",
    *,
    config_overrides: Optional[QuickSightClientConfig] = None,
    policy_arn: Optional["capo_quicksight.types.arn.Arn"] = None,
    identities: Optional["capo_quicksight.types.identity_map.IdentityMap"] = None,
) -> "capo_quicksight.types.create_iam_policy_assignment_response.CreateIAMPolicyAssignmentResponse":
    """<p>Creates an assignment with one specified IAM policy, identified by its Amazon Resource Name (ARN). This policy assignment is attached to the specified groups or users of Amazon Quick Sight. Assignment names are unique per Amazon Web Services account. To avoid overwriting rules in other namespaces, use assignment names that are unique.</p>

    Args:
        aws_account_id: <p>The ID of the Amazon Web Services account where you want to assign an IAM policy to Amazon Quick Sight users or groups.</p>
        assignment_name: <p>The name of the assignment, also called a rule. The name must be unique within the Amazon Web Services account.</p>
        assignment_status: <p>The status of the assignment. Possible values are as follows:</p> <ul> <li> <p> <code>ENABLED</code> - Anything specified in this assignment is used when creating the data source.</p> </li> <li> <p> <code>DISABLED</code> - This assignment isn't used when creating the data source.</p> </li> <li> <p> <code>DRAFT</code> - This assignment is an unfinished draft and isn't used when creating the data source.</p> </li> </ul>
        policy_arn: <p>The ARN for the IAM policy to apply to the Amazon Quick Sight users and groups specified in this assignment.</p>
        identities: <p>The Amazon Quick Sight users, groups, or both that you want to assign the policy to.</p>
        namespace: <p>The namespace that contains the assignment.</p>

    Raises:
        capo_quicksight.errors.access_denied_exception.AccessDeniedException: <p>You don't have access to this item. The provided credentials couldn't be validated. You might not be authorized to carry out the request. Make sure that your account is authorized to use the Amazon Quick Sight service, that your policies have the correct permissions, and that you are using the correct credentials.</p>
        capo_quicksight.errors.concurrent_updating_exception.ConcurrentUpdatingException: <p>A resource is already in a state that indicates an operation is happening that must complete before a new update can be applied.</p>
        capo_quicksight.errors.internal_failure_exception.InternalFailureException: <p>An internal failure occurred.</p>
        capo_quicksight.errors.invalid_parameter_value_exception.InvalidParameterValueException: <p>One or more parameters has a value that isn't valid.</p>
        capo_quicksight.errors.resource_exists_exception.ResourceExistsException: <p>The resource specified already exists. </p>
        capo_quicksight.errors.resource_not_found_exception.ResourceNotFoundException: <p>One or more resources can't be found.</p>
        capo_quicksight.errors.throttling_exception.ThrottlingException: <p>Access is throttled.</p>
        capo_quicksight.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_quicksight.types.create_iam_policy_assignment_request.CreateIAMPolicyAssignmentRequest]",
    ) -> OperationResponse[
        "capo_quicksight.types.create_iam_policy_assignment_response.CreateIAMPolicyAssignmentResponse"
    ]:
        import capo_quicksight._operations.quick_sight_20180401.create_iam_policy_assignment

        output, http_response = (
            capo_quicksight._operations.quick_sight_20180401.create_iam_policy_assignment.create_iam_policy_assignment(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateIAMPolicyAssignment")
    )
    input_: capo_quicksight.types.create_iam_policy_assignment_request.CreateIAMPolicyAssignmentRequest = {
        "aws_account_id": aws_account_id,
        "assignment_name": assignment_name,
        "assignment_status": assignment_status,
        "namespace": namespace,
    }
    if policy_arn is not None:
        input_["policy_arn"] = policy_arn
    if identities is not None:
        input_["identities"] = identities

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output