Amazon S3 Tables

2025/11/06 - Amazon S3 Tables - 3 new2 updated api methods

Changes  Adds support for tagging APIs for S3 Tables

ListTagsForResource (new) Link ¶

Lists all of the tags applied to a specified Amazon S3 Tables resource. Each tag is a label consisting of a key and value pair. Tags can help you organize, track costs for, and control access to resources.

For tables and table buckets, you must have the s3tables:ListTagsForResource permission to use this operation.

See also: AWS API Documentation

Request Syntax

client.list_tags_for_resource(
    resourceArn='string'
)
type resourceArn:

string

param resourceArn:

[REQUIRED]

The Amazon Resource Name (ARN) of the Amazon S3 Tables resource that you want to list tags for. The tagged resource can be a table bucket or a table. For a list of all S3 resources that support tagging, see Managing tags for Amazon S3 resources.

rtype:

dict

returns:

Response Syntax

{
    'tags': {
        'string': 'string'
    }
}

Response Structure

TagResource (new) Link ¶

Applies one or more user-defined tags to an Amazon S3 Tables resource or updates existing tags. Each tag is a label consisting of a key and value pair. Tags can help you organize, track costs for, and control access to your resources. You can add up to 50 tags for each S3 resource.

For tables and table buckets, you must have the s3tables:TagResource permission to use this operation.

See also: AWS API Documentation

Request Syntax

client.tag_resource(
    resourceArn='string',
    tags={
        'string': 'string'
    }
)
type resourceArn:

string

param resourceArn:

[REQUIRED]

The Amazon Resource Name (ARN) of the Amazon S3 Tables resource that you're applying tags to. The tagged resource can be a table bucket or a table. For a list of all S3 resources that support tagging, see Managing tags for Amazon S3 resources.

type tags:

dict

param tags:

[REQUIRED]

The user-defined tag that you want to add to the specified S3 Tables resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC).

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

UntagResource (new) Link ¶

Removes the specified user-defined tags from an Amazon S3 Tables resource. You can pass one or more tag keys.

For tables and table buckets, you must have the s3tables:UntagResource permission to use this operation.

See also: AWS API Documentation

Request Syntax

client.untag_resource(
    resourceArn='string',
    tagKeys=[
        'string',
    ]
)
type resourceArn:

string

param resourceArn:

[REQUIRED]

The Amazon Resource Name (ARN) of the Amazon S3 Tables resource that you're removing tags from. The tagged resource can be a table bucket or a table. For a list of all S3 resources that support tagging, see Managing tags for Amazon S3 resources.

type tagKeys:

list

param tagKeys:

[REQUIRED]

The array of tag keys that you're removing from the S3 Tables resource. For more information, see Tagging for cost allocation or attribute-based access control (ABAC).

  • (string) --

rtype:

dict

returns:

Response Syntax

{}

Response Structure

  • (dict) --

CreateTable (updated) Link ¶
Changes (request)
{'tags': {'string': 'string'}}

Creates a new table associated with the given namespace in a table bucket. For more information, see Creating an Amazon S3 table in the Amazon Simple Storage Service User Guide.

Permissions

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

  • If you use this operation with the optional metadata request parameter you must have the s3tables:PutTableData permission.

  • If you use this operation with the optional encryptionConfiguration request parameter you must have the s3tables:PutTableEncryption permission.

  • You must have the s3tables:TagResource permission in addition to s3tables:CreateTable permission to create a table with tags.

See also: AWS API Documentation

Request Syntax

client.create_table(
    tableBucketARN='string',
    namespace='string',
    name='string',
    format='ICEBERG',
    metadata={
        'iceberg': {
            'schema': {
                'fields': [
                    {
                        'name': 'string',
                        'type': 'string',
                        'required': True|False
                    },
                ]
            }
        }
    },
    encryptionConfiguration={
        'sseAlgorithm': 'AES256'|'aws:kms',
        'kmsKeyArn': 'string'
    },
    tags={
        'string': 'string'
    }
)
type tableBucketARN:

string

param tableBucketARN:

[REQUIRED]

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

type namespace:

string

param namespace:

[REQUIRED]

The namespace to associated with the table.

type name:

string

param name:

[REQUIRED]

The name for the table.

type format:

string

param format:

[REQUIRED]

The format for the table.

type metadata:

dict

param metadata:

The metadata for the table.

  • iceberg (dict) --

    Contains details about the metadata of an Iceberg table.

    • schema (dict) -- [REQUIRED]

      The schema for an Iceberg table.

      • fields (list) -- [REQUIRED]

        The schema fields for the table

        • (dict) --

          Contains details about a schema field.

          • name (string) -- [REQUIRED]

            The name of the field.

          • type (string) -- [REQUIRED]

            The field type. S3 Tables supports all Apache Iceberg primitive types. For more information, see the Apache Iceberg documentation.

          • required (boolean) --

            A Boolean value that specifies whether values are required for each row in this field. By default, this is false and null values are allowed in the field. If this is true the field does not allow null values.

type encryptionConfiguration:

dict

param encryptionConfiguration:

The encryption configuration to use for the table. This configuration specifies the encryption algorithm and, if using SSE-KMS, the KMS key to use for encrypting the table.

  • sseAlgorithm (string) -- [REQUIRED]

    The server-side encryption algorithm to use. Valid values are AES256 for S3-managed encryption keys, or aws:kms for Amazon Web Services KMS-managed encryption keys. If you choose SSE-KMS encryption you must grant the S3 Tables maintenance principal access to your KMS key. For more information, see Permissions requirements for S3 Tables SSE-KMS encryption.

  • kmsKeyArn (string) --

    The Amazon Resource Name (ARN) of the KMS key to use for encryption. This field is required only when sseAlgorithm is set to aws:kms.

type tags:

dict

param tags:

A map of user-defined tags that you would like to apply to the table that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize, track costs for, and control access to resources. For more information, see Tagging for cost allocation or attribute-based access control (ABAC).

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'tableARN': 'string',
    'versionToken': 'string'
}

Response Structure

  • (dict) --

    • tableARN (string) --

      The Amazon Resource Name (ARN) of the table.

    • versionToken (string) --

      The version token of the table.

CreateTableBucket (updated) Link ¶
Changes (request)
{'tags': {'string': 'string'}}

Creates a table bucket. For more information, see Creating a table bucket in the Amazon Simple Storage Service User Guide.

Permissions

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

  • If you use this operation with the optional encryptionConfiguration parameter you must have the s3tables:PutTableBucketEncryption permission.

  • You must have the s3tables:TagResource permission in addition to s3tables:CreateTableBucket permission to create a table bucket with tags.

See also: AWS API Documentation

Request Syntax

client.create_table_bucket(
    name='string',
    encryptionConfiguration={
        'sseAlgorithm': 'AES256'|'aws:kms',
        'kmsKeyArn': 'string'
    },
    tags={
        'string': 'string'
    }
)
type name:

string

param name:

[REQUIRED]

The name for the table bucket.

type encryptionConfiguration:

dict

param encryptionConfiguration:

The encryption configuration to use for the table bucket. This configuration specifies the default encryption settings that will be applied to all tables created in this bucket unless overridden at the table level. The configuration includes the encryption algorithm and, if using SSE-KMS, the KMS key to use.

  • sseAlgorithm (string) -- [REQUIRED]

    The server-side encryption algorithm to use. Valid values are AES256 for S3-managed encryption keys, or aws:kms for Amazon Web Services KMS-managed encryption keys. If you choose SSE-KMS encryption you must grant the S3 Tables maintenance principal access to your KMS key. For more information, see Permissions requirements for S3 Tables SSE-KMS encryption.

  • kmsKeyArn (string) --

    The Amazon Resource Name (ARN) of the KMS key to use for encryption. This field is required only when sseAlgorithm is set to aws:kms.

type tags:

dict

param tags:

A map of user-defined tags that you would like to apply to the table bucket that you are creating. A tag is a key-value pair that you apply to your resources. Tags can help you organize and control access to resources. For more information, see Tagging for cost allocation or attribute-based access control (ABAC).

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'arn': 'string'
}

Response Structure

  • (dict) --

    • arn (string) --

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