Skip to content

update_iam_policy_assignment

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

Updates an existing IAM policy assignment. This operation updates only the optional parameter or parameters that are specified in the request. This overwrites all of the users included in Identities.

Parameters:

  • aws_account_id (AwsAccountId) –

    The ID of the Amazon Web Services account that contains the IAM policy assignment.

  • assignment_name (IAMPolicyAssignmentName) –

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

  • namespace (Namespace) –

    The namespace of the assignment.

  • assignment_status (Optional[AssignmentStatus], default: None ) –

    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.

Raises:

Source code in docs_src/capo_quicksight/_services/quick_sight.py
def update_iam_policy_assignment(
    self,
    aws_account_id: "capo_quicksight.types.aws_account_id.AwsAccountId",
    assignment_name: "capo_quicksight.types.iam_policy_assignment_name.IAMPolicyAssignmentName",
    namespace: "capo_quicksight.types.namespace.Namespace",
    *,
    config_overrides: Optional[QuickSightClientConfig] = None,
    assignment_status: Optional[
        "capo_quicksight.types.assignment_status.AssignmentStatus"
    ] = None,
    policy_arn: Optional["capo_quicksight.types.arn.Arn"] = None,
    identities: Optional["capo_quicksight.types.identity_map.IdentityMap"] = None,
) -> "capo_quicksight.types.update_iam_policy_assignment_response.UpdateIAMPolicyAssignmentResponse":
    """<p>Updates an existing IAM policy assignment. This operation updates only the optional parameter or parameters that are specified in the request. This overwrites all of the users included in <code>Identities</code>. </p>

    Args:
        aws_account_id: <p>The ID of the Amazon Web Services account that contains the IAM policy assignment. </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>
        namespace: <p>The namespace of the assignment.</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>

    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.update_iam_policy_assignment_request.UpdateIAMPolicyAssignmentRequest]",
    ) -> OperationResponse[
        "capo_quicksight.types.update_iam_policy_assignment_response.UpdateIAMPolicyAssignmentResponse"
    ]:
        import capo_quicksight._operations.quick_sight_20180401.update_iam_policy_assignment

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

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateIAMPolicyAssignment")
    )
    input_: capo_quicksight.types.update_iam_policy_assignment_request.UpdateIAMPolicyAssignmentRequest = {
        "aws_account_id": aws_account_id,
        "assignment_name": assignment_name,
        "namespace": namespace,
    }
    if assignment_status is not None:
        input_["assignment_status"] = assignment_status
    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