Skip to content

put_table_bucket_storage_class async

put_table_bucket_storage_class(
    table_bucket_arn: TableBucketARN,
    storage_class_configuration: StorageClassConfiguration,
    *,
    config_overrides: Optional[AsyncS3TablesClientConfig] = None,
) -> None

Sets or updates the storage class configuration for a table bucket. This configuration serves as the default storage class for all new tables created in the bucket, allowing you to optimize storage costs at the bucket level.

Permissions

You must have the s3tables:PutTableBucketStorageClass permission to use this operation.

Parameters:

  • table_bucket_arn (TableBucketARN) –

    The Amazon Resource Name (ARN) of the table bucket.

  • storage_class_configuration (StorageClassConfiguration) –

    The storage class configuration to apply to the table bucket. This configuration will serve as the default for new tables created in this bucket.

Raises:

Source code in docs_src/capo_s3tables/_services/async_s3_tables.py
async def put_table_bucket_storage_class(
    self,
    table_bucket_arn: "capo_s3tables.types.table_bucket_arn.TableBucketARN",
    storage_class_configuration: "capo_s3tables.types.storage_class_configuration.StorageClassConfiguration",
    *,
    config_overrides: Optional[AsyncS3TablesClientConfig] = None,
) -> None:
    """<p>Sets or updates the storage class configuration for a table bucket. This configuration serves as the default storage class for all new tables created in the bucket, allowing you to optimize storage costs at the bucket level.</p> <dl> <dt>Permissions</dt> <dd> <p>You must have the <code>s3tables:PutTableBucketStorageClass</code> permission to use this operation.</p> </dd> </dl>

    Args:
        table_bucket_arn: <p>The Amazon Resource Name (ARN) of the table bucket.</p>
        storage_class_configuration: <p>The storage class configuration to apply to the table bucket. This configuration will serve as the default for new tables created in this bucket.</p>

    Raises:
        capo_s3tables.errors.bad_request_exception.BadRequestException: <p>The request is invalid or malformed.</p>
        capo_s3tables.errors.conflict_exception.ConflictException: <p>The request failed because there is a conflict with a previous write. You can retry the request.</p>
        capo_s3tables.errors.forbidden_exception.ForbiddenException: <p>The caller isn't authorized to make the request.</p>
        capo_s3tables.errors.internal_server_error_exception.InternalServerErrorException: <p>The request failed due to an internal server error.</p>
        capo_s3tables.errors.not_found_exception.NotFoundException: <p>The request was rejected because the specified resource could not be found.</p>
        capo_s3tables.errors.too_many_requests_exception.TooManyRequestsException: <p>The limit on the number of requests per second was exceeded.</p>
        capo_s3tables.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    async def _handler(
        req: "AsyncOperationRequest[capo_s3tables.types.put_table_bucket_storage_class_request.PutTableBucketStorageClassRequest]",
    ) -> AsyncOperationResponse[None]:
        import capo_s3tables._operations.s3_table_buckets.put_table_bucket_storage_class

        (
            output,
            http_response,
        ) = await capo_s3tables._operations.s3_table_buckets.put_table_bucket_storage_class.async_put_table_bucket_storage_class(
            req.options, req.input
        )
        return AsyncOperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("PutTableBucketStorageClass")
    )
    input_: capo_s3tables.types.put_table_bucket_storage_class_request.PutTableBucketStorageClassRequest = {
        "table_bucket_arn": table_bucket_arn,
        "storage_class_configuration": storage_class_configuration,
    }

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