Skip to content

update_app_permissions async

update_app_permissions(
    aws_account_id: AwsAccountId,
    app_id: AppId,
    *,
    config_overrides: Optional[AsyncQuickSightClientConfig] = None,
    grant_permissions: Optional[ResourcePermissionList] = None,
    revoke_permissions: Optional[ResourcePermissionList] = None,
    visibility: Optional[AppVisibility] = None,
) -> UpdateAppPermissionsResponse

Updates the resource permissions for an app. You can grant or revoke permissions and, optionally, change the app's visibility.

Parameters:

  • aws_account_id (AwsAccountId) –

    The ID of the Amazon Web Services account that contains the app.

  • app_id (AppId) –

    The ID of the app.

  • grant_permissions (Optional[ResourcePermissionList], default: None ) –

    The permissions that you want to grant on the app.

  • revoke_permissions (Optional[ResourcePermissionList], default: None ) –

    The permissions that you want to revoke from the app.

  • visibility (Optional[AppVisibility], default: None ) –

    The visibility to set for the app. Currently, only PRIVATE is accepted, which removes public (anonymous) access from the app. If you don't specify a value, the app's visibility is unchanged. Setting an app to PUBLIC through this operation is not supported.

Raises:

  • AccessDeniedException –

    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.

  • ConflictException –

    Updating or deleting a resource can cause an inconsistent state.

  • InternalFailureException –

    An internal failure occurred.

  • InvalidParameterException –

    One or more parameter has a value that isn't valid.

  • ResourceNotFoundException –

    One or more resources can't be found.

  • ThrottlingException –

    Access is throttled.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_quicksight/_services/async_quick_sight.py
async def update_app_permissions(
    self,
    aws_account_id: "capo_quicksight.types.aws_account_id.AwsAccountId",
    app_id: "capo_quicksight.types.app_id.AppId",
    *,
    config_overrides: Optional[AsyncQuickSightClientConfig] = None,
    grant_permissions: Optional[
        "capo_quicksight.types.resource_permission_list.ResourcePermissionList"
    ] = None,
    revoke_permissions: Optional[
        "capo_quicksight.types.resource_permission_list.ResourcePermissionList"
    ] = None,
    visibility: Optional[
        "capo_quicksight.types.app_visibility.AppVisibility"
    ] = None,
) -> "capo_quicksight.types.update_app_permissions_response.UpdateAppPermissionsResponse":
    """<p>Updates the resource permissions for an app. You can grant or revoke permissions and, optionally, change the app's visibility.</p>

    Args:
        aws_account_id: <p>The ID of the Amazon Web Services account that contains the app.</p>
        app_id: <p>The ID of the app.</p>
        grant_permissions: <p>The permissions that you want to grant on the app.</p>
        revoke_permissions: <p>The permissions that you want to revoke from the app.</p>
        visibility: <p>The visibility to set for the app. Currently, only <code>PRIVATE</code> is accepted, which removes public (anonymous) access from the app. If you don't specify a value, the app's visibility is unchanged. Setting an app to <code>PUBLIC</code> through this operation is not supported.</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.conflict_exception.ConflictException: <p>Updating or deleting a resource can cause an inconsistent state.</p>
        capo_quicksight.errors.internal_failure_exception.InternalFailureException: <p>An internal failure occurred.</p>
        capo_quicksight.errors.invalid_parameter_exception.InvalidParameterException: <p>One or more parameter has a value that isn't valid.</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.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_quicksight.types.update_app_permissions_request.UpdateAppPermissionsRequest]",
    ) -> AsyncOperationResponse[
        "capo_quicksight.types.update_app_permissions_response.UpdateAppPermissionsResponse"
    ]:
        import capo_quicksight._operations.quick_sight_20180401.update_app_permissions

        (
            output,
            http_response,
        ) = await capo_quicksight._operations.quick_sight_20180401.update_app_permissions.async_update_app_permissions(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateAppPermissions")
    )
    input_: capo_quicksight.types.update_app_permissions_request.UpdateAppPermissionsRequest = {
        "aws_account_id": aws_account_id,
        "app_id": app_id,
    }
    if grant_permissions is not None:
        input_["grant_permissions"] = grant_permissions
    if revoke_permissions is not None:
        input_["revoke_permissions"] = revoke_permissions
    if visibility is not None:
        input_["visibility"] = visibility

    response = await aexecute_pipeline(
        AsyncOperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    await response.response.aclose()
    return response.output