

This is the new *CloudFormation Template Reference Guide*. Please update your bookmarks and links. For help getting started with CloudFormation, see the [AWS CloudFormation User Guide](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html).

# Amazon Simple Storage Service Tables (Amazon S3 Tables)
<a name="AWS_S3Tables"></a>

**Resource types**
+ [AWS::S3Tables::Namespace](aws-resource-s3tables-namespace.md)
+ [AWS::S3Tables::Table](aws-resource-s3tables-table.md)
+ [AWS::S3Tables::TableBucket](aws-resource-s3tables-tablebucket.md)
+ [AWS::S3Tables::TableBucketPolicy](aws-resource-s3tables-tablebucketpolicy.md)
+ [AWS::S3Tables::TablePolicy](aws-resource-s3tables-tablepolicy.md)

# AWS::S3Tables::Namespace
<a name="aws-resource-s3tables-namespace"></a>

Creates a namespace. A namespace is a logical grouping of tables within your table bucket, which you can use to organize tables. For more information, see [Create a namespace](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-namespace-create.html) in the *Amazon Simple Storage Service User Guide*.

Permissions  
You must have the `s3tables:CreateNamespace` permission to use this operation. 

 AWS Cloud Development Kit (AWS CDK)   
To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options:  
+ NPM: `npm i @aws-cdk/aws-s3tables-alpha`
+ Yarn:`yarn add @aws-cdk/aws-s3tables-alpha`

## Syntax
<a name="aws-resource-s3tables-namespace-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-s3tables-namespace-syntax.json"></a>

```
{
  "Type" : "AWS::S3Tables::Namespace",
  "Properties" : {
      "[Namespace](#cfn-s3tables-namespace-namespace)" : String,
      "[TableBucketARN](#cfn-s3tables-namespace-tablebucketarn)" : String
    }
}
```

### YAML
<a name="aws-resource-s3tables-namespace-syntax.yaml"></a>

```
Type: AWS::S3Tables::Namespace
Properties:
  [Namespace](#cfn-s3tables-namespace-namespace): String
  [TableBucketARN](#cfn-s3tables-namespace-tablebucketarn): String
```

## Properties
<a name="aws-resource-s3tables-namespace-properties"></a>

`Namespace`  <a name="cfn-s3tables-namespace-namespace"></a>
The name of the namespace.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TableBucketARN`  <a name="cfn-s3tables-namespace-tablebucketarn"></a>
The Amazon Resource Name (ARN) of the table bucket to create the namespace in.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:bucket/[a-z0-9_-]{3,63})`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-s3tables-namespace-return-values"></a>

### Ref
<a name="aws-resource-s3tables-namespace-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the namespace name.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

# AWS::S3Tables::Table
<a name="aws-resource-s3tables-table"></a>

Creates a new table associated with the given namespace in a table bucket. For more information, see [Creating an Amazon S3 table](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-create.html) 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. 
Additionally, 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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-kms-permissions.html). 

 AWS Cloud Development Kit (AWS CDK)   
To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options:  
+ NPM: `npm i @aws-cdk/aws-s3tables-alpha`
+ Yarn:`yarn add @aws-cdk/aws-s3tables-alpha`

## Syntax
<a name="aws-resource-s3tables-table-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-s3tables-table-syntax.json"></a>

```
{
  "Type" : "AWS::S3Tables::Table",
  "Properties" : {
      "[Compaction](#cfn-s3tables-table-compaction)" : Compaction,
      "[IcebergMetadata](#cfn-s3tables-table-icebergmetadata)" : IcebergMetadata,
      "[Namespace](#cfn-s3tables-table-namespace)" : String,
      "[OpenTableFormat](#cfn-s3tables-table-opentableformat)" : String,
      "[SnapshotManagement](#cfn-s3tables-table-snapshotmanagement)" : SnapshotManagement,
      "[StorageClassConfiguration](#cfn-s3tables-table-storageclassconfiguration)" : StorageClassConfiguration,
      "[TableBucketARN](#cfn-s3tables-table-tablebucketarn)" : String,
      "[TableName](#cfn-s3tables-table-tablename)" : String,
      "[Tags](#cfn-s3tables-table-tags)" : [ Tag, ... ],
      "[WithoutMetadata](#cfn-s3tables-table-withoutmetadata)" : String
    }
}
```

### YAML
<a name="aws-resource-s3tables-table-syntax.yaml"></a>

```
Type: AWS::S3Tables::Table
Properties:
  [Compaction](#cfn-s3tables-table-compaction): 
    Compaction
  [IcebergMetadata](#cfn-s3tables-table-icebergmetadata): 
    IcebergMetadata
  [Namespace](#cfn-s3tables-table-namespace): String
  [OpenTableFormat](#cfn-s3tables-table-opentableformat): String
  [SnapshotManagement](#cfn-s3tables-table-snapshotmanagement): 
    SnapshotManagement
  [StorageClassConfiguration](#cfn-s3tables-table-storageclassconfiguration): 
    StorageClassConfiguration
  [TableBucketARN](#cfn-s3tables-table-tablebucketarn): String
  [TableName](#cfn-s3tables-table-tablename): String
  [Tags](#cfn-s3tables-table-tags): 
    - Tag
  [WithoutMetadata](#cfn-s3tables-table-withoutmetadata): String
```

## Properties
<a name="aws-resource-s3tables-table-properties"></a>

`Compaction`  <a name="cfn-s3tables-table-compaction"></a>
Contains details about the compaction settings for an Iceberg table.  
*Required*: No  
*Type*: [Compaction](aws-properties-s3tables-table-compaction.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`IcebergMetadata`  <a name="cfn-s3tables-table-icebergmetadata"></a>
Contains details about the metadata for an Iceberg table.  
*Required*: No  
*Type*: [IcebergMetadata](aws-properties-s3tables-table-icebergmetadata.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Namespace`  <a name="cfn-s3tables-table-namespace"></a>
The name of the namespace.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`OpenTableFormat`  <a name="cfn-s3tables-table-opentableformat"></a>
The format of the table.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `ICEBERG`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SnapshotManagement`  <a name="cfn-s3tables-table-snapshotmanagement"></a>
Contains details about the Iceberg snapshot management settings for the table.  
*Required*: No  
*Type*: [SnapshotManagement](aws-properties-s3tables-table-snapshotmanagement.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StorageClassConfiguration`  <a name="cfn-s3tables-table-storageclassconfiguration"></a>
The configuration details for the storage class of tables or table buckets. This allows you to optimize storage costs by selecting the appropriate storage class based on your access patterns and performance requirements.  
*Required*: No  
*Type*: [StorageClassConfiguration](aws-properties-s3tables-table-storageclassconfiguration.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TableBucketARN`  <a name="cfn-s3tables-table-tablebucketarn"></a>
The Amazon Resource Name (ARN) of the table bucket to create the table in.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:bucket/[a-z0-9_-]{3,63})`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TableName`  <a name="cfn-s3tables-table-tablename"></a>
The name for the table.  
*Required*: Yes  
*Type*: String  
*Pattern*: `[0-9a-z_]*`  
*Minimum*: `1`  
*Maximum*: `255`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Tags`  <a name="cfn-s3tables-table-tags"></a>
Property description not available.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-s3tables-table-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`WithoutMetadata`  <a name="cfn-s3tables-table-withoutmetadata"></a>
Indicates that you don't want to specify a schema for the table. This property is mutually exclusive to `IcebergMetadata`, and its only possible value is `Yes`.  
*Required*: No  
*Type*: String  
*Allowed values*: `Yes`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-s3tables-table-return-values"></a>

### Ref
<a name="aws-resource-s3tables-table-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the table name.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-s3tables-table-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-s3tables-table-return-values-fn--getatt-fn--getatt"></a>

`TableARN`  <a name="TableARN-fn::getatt"></a>
The Amazon Resource Name (ARN) of the table.

`VersionToken`  <a name="VersionToken-fn::getatt"></a>
The version token of the table.

`WarehouseLocation`  <a name="WarehouseLocation-fn::getatt"></a>
The warehouse location of the table.

# AWS::S3Tables::Table Compaction
<a name="aws-properties-s3tables-table-compaction"></a>

Contains details about the compaction settings for an Iceberg table.

## Syntax
<a name="aws-properties-s3tables-table-compaction-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-compaction-syntax.json"></a>

```
{
  "[Status](#cfn-s3tables-table-compaction-status)" : String,
  "[TargetFileSizeMB](#cfn-s3tables-table-compaction-targetfilesizemb)" : Integer
}
```

### YAML
<a name="aws-properties-s3tables-table-compaction-syntax.yaml"></a>

```
  [Status](#cfn-s3tables-table-compaction-status): String
  [TargetFileSizeMB](#cfn-s3tables-table-compaction-targetfilesizemb): Integer
```

## Properties
<a name="aws-properties-s3tables-table-compaction-properties"></a>

`Status`  <a name="cfn-s3tables-table-compaction-status"></a>
The status of the maintenance configuration.  
*Required*: No  
*Type*: String  
*Allowed values*: `enabled | disabled`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TargetFileSizeMB`  <a name="cfn-s3tables-table-compaction-targetfilesizemb"></a>
The target file size for the table in MB.  
*Required*: No  
*Type*: Integer  
*Minimum*: `64`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::Table IcebergMetadata
<a name="aws-properties-s3tables-table-icebergmetadata"></a>

Contains details about the metadata for an Iceberg table.

## Syntax
<a name="aws-properties-s3tables-table-icebergmetadata-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-icebergmetadata-syntax.json"></a>

```
{
  "[IcebergPartitionSpec](#cfn-s3tables-table-icebergmetadata-icebergpartitionspec)" : IcebergPartitionSpec,
  "[IcebergSchema](#cfn-s3tables-table-icebergmetadata-icebergschema)" : IcebergSchema,
  "[IcebergSchemaV2](#cfn-s3tables-table-icebergmetadata-icebergschemav2)" : IcebergSchemaV2,
  "[IcebergSortOrder](#cfn-s3tables-table-icebergmetadata-icebergsortorder)" : IcebergSortOrder,
  "[TableProperties](#cfn-s3tables-table-icebergmetadata-tableproperties)" : {Key: Value, ...}
}
```

### YAML
<a name="aws-properties-s3tables-table-icebergmetadata-syntax.yaml"></a>

```
  [IcebergPartitionSpec](#cfn-s3tables-table-icebergmetadata-icebergpartitionspec): 
    IcebergPartitionSpec
  [IcebergSchema](#cfn-s3tables-table-icebergmetadata-icebergschema): 
    IcebergSchema
  [IcebergSchemaV2](#cfn-s3tables-table-icebergmetadata-icebergschemav2): 
    IcebergSchemaV2
  [IcebergSortOrder](#cfn-s3tables-table-icebergmetadata-icebergsortorder): 
    IcebergSortOrder
  [TableProperties](#cfn-s3tables-table-icebergmetadata-tableproperties): 
    Key: Value
```

## Properties
<a name="aws-properties-s3tables-table-icebergmetadata-properties"></a>

`IcebergPartitionSpec`  <a name="cfn-s3tables-table-icebergmetadata-icebergpartitionspec"></a>
Property description not available.  
*Required*: No  
*Type*: [IcebergPartitionSpec](aws-properties-s3tables-table-icebergpartitionspec.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`IcebergSchema`  <a name="cfn-s3tables-table-icebergmetadata-icebergschema"></a>
The schema for an Iceberg table. Use this property to define table schemas with primitive types only. For schemas that include nested or complex types such as `struct`, `list`, or `map`, use `schemaV2` instead.  
*Required*: No  
*Type*: [IcebergSchema](aws-properties-s3tables-table-icebergschema.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`IcebergSchemaV2`  <a name="cfn-s3tables-table-icebergmetadata-icebergschemav2"></a>
The schema for an Iceberg table using the V2 format. Use this property to define table schemas that include nested or complex data types such as `struct`, `list`, or `map`, in addition to primitive types. For schemas with only primitive types, you can use either `schema` or `schemaV2`.  
*Required*: No  
*Type*: [IcebergSchemaV2](aws-properties-s3tables-table-icebergschemav2.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`IcebergSortOrder`  <a name="cfn-s3tables-table-icebergmetadata-icebergsortorder"></a>
Property description not available.  
*Required*: No  
*Type*: [IcebergSortOrder](aws-properties-s3tables-table-icebergsortorder.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`TableProperties`  <a name="cfn-s3tables-table-icebergmetadata-tableproperties"></a>
Property description not available.  
*Required*: No  
*Type*: Object of String  
*Pattern*: `^.+$`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table IcebergPartitionField
<a name="aws-properties-s3tables-table-icebergpartitionfield"></a>

Defines a single partition field in an Iceberg partition specification.

## Syntax
<a name="aws-properties-s3tables-table-icebergpartitionfield-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-icebergpartitionfield-syntax.json"></a>

```
{
  "[FieldId](#cfn-s3tables-table-icebergpartitionfield-fieldid)" : Integer,
  "[Name](#cfn-s3tables-table-icebergpartitionfield-name)" : String,
  "[SourceId](#cfn-s3tables-table-icebergpartitionfield-sourceid)" : Integer,
  "[Transform](#cfn-s3tables-table-icebergpartitionfield-transform)" : String
}
```

### YAML
<a name="aws-properties-s3tables-table-icebergpartitionfield-syntax.yaml"></a>

```
  [FieldId](#cfn-s3tables-table-icebergpartitionfield-fieldid): Integer
  [Name](#cfn-s3tables-table-icebergpartitionfield-name): String
  [SourceId](#cfn-s3tables-table-icebergpartitionfield-sourceid): Integer
  [Transform](#cfn-s3tables-table-icebergpartitionfield-transform): String
```

## Properties
<a name="aws-properties-s3tables-table-icebergpartitionfield-properties"></a>

`FieldId`  <a name="cfn-s3tables-table-icebergpartitionfield-fieldid"></a>
An optional unique identifier for this partition field. If not specified, S3 Tables automatically assigns a field ID.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-s3tables-table-icebergpartitionfield-name"></a>
The name for this partition field. This name is used in the partitioned file paths.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SourceId`  <a name="cfn-s3tables-table-icebergpartitionfield-sourceid"></a>
The ID of the source schema field to partition by. This must reference a valid field ID from the table schema.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Transform`  <a name="cfn-s3tables-table-icebergpartitionfield-transform"></a>
The partition transform to apply to the source field. Supported transforms include `identity`, `year`, `month`, `day`, `hour`, `bucket`, and `truncate`. For more information, see the [Apache Iceberg partition transforms documentation](https://iceberg.apache.org/spec/#partition-transforms).  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table IcebergPartitionSpec
<a name="aws-properties-s3tables-table-icebergpartitionspec"></a>

Defines how data in an Iceberg table is partitioned. Partitioning helps optimize query performance by organizing data into separate files based on field values. Each partition field specifies a transform to apply to a source field.

## Syntax
<a name="aws-properties-s3tables-table-icebergpartitionspec-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-icebergpartitionspec-syntax.json"></a>

```
{
  "[Fields](#cfn-s3tables-table-icebergpartitionspec-fields)" : [ IcebergPartitionField, ... ],
  "[SpecId](#cfn-s3tables-table-icebergpartitionspec-specid)" : Integer
}
```

### YAML
<a name="aws-properties-s3tables-table-icebergpartitionspec-syntax.yaml"></a>

```
  [Fields](#cfn-s3tables-table-icebergpartitionspec-fields): 
    - IcebergPartitionField
  [SpecId](#cfn-s3tables-table-icebergpartitionspec-specid): Integer
```

## Properties
<a name="aws-properties-s3tables-table-icebergpartitionspec-properties"></a>

`Fields`  <a name="cfn-s3tables-table-icebergpartitionspec-fields"></a>
The list of partition fields that define how the table data is partitioned. Each field specifies a source field and a transform to apply. This field is required if `partitionSpec` is provided.  
*Required*: Yes  
*Type*: Array of [IcebergPartitionField](aws-properties-s3tables-table-icebergpartitionfield.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SpecId`  <a name="cfn-s3tables-table-icebergpartitionspec-specid"></a>
The unique identifier for this partition specification. If not specified, defaults to `0`.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table IcebergSchema
<a name="aws-properties-s3tables-table-icebergschema"></a>

Contains details about the schema for an Iceberg table.

## Syntax
<a name="aws-properties-s3tables-table-icebergschema-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-icebergschema-syntax.json"></a>

```
{
  "[SchemaFieldList](#cfn-s3tables-table-icebergschema-schemafieldlist)" : [ SchemaField, ... ]
}
```

### YAML
<a name="aws-properties-s3tables-table-icebergschema-syntax.yaml"></a>

```
  [SchemaFieldList](#cfn-s3tables-table-icebergschema-schemafieldlist): 
    - SchemaField
```

## Properties
<a name="aws-properties-s3tables-table-icebergschema-properties"></a>

`SchemaFieldList`  <a name="cfn-s3tables-table-icebergschema-schemafieldlist"></a>
The schema fields for the table  
*Required*: Yes  
*Type*: Array of [SchemaField](aws-properties-s3tables-table-schemafield.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table IcebergSchemaV2
<a name="aws-properties-s3tables-table-icebergschemav2"></a>

Contains details about the schema version 2 (V2) for an Iceberg table that supports [Apache Iceberg Nested Types](https://iceberg.apache.org/spec/#nested-types). Nested data type support includes struct, list and map. Primitive types are also supported.

## Syntax
<a name="aws-properties-s3tables-table-icebergschemav2-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-icebergschemav2-syntax.json"></a>

```
{
  "[IdentifierFieldIds](#cfn-s3tables-table-icebergschemav2-identifierfieldids)" : [ Integer, ... ],
  "[SchemaId](#cfn-s3tables-table-icebergschemav2-schemaid)" : Integer,
  "[SchemaV2FieldList](#cfn-s3tables-table-icebergschemav2-schemav2fieldlist)" : [ SchemaV2Field, ... ],
  "[SchemaV2FieldType](#cfn-s3tables-table-icebergschemav2-schemav2fieldtype)" : String
}
```

### YAML
<a name="aws-properties-s3tables-table-icebergschemav2-syntax.yaml"></a>

```
  [IdentifierFieldIds](#cfn-s3tables-table-icebergschemav2-identifierfieldids): 
    - Integer
  [SchemaId](#cfn-s3tables-table-icebergschemav2-schemaid): Integer
  [SchemaV2FieldList](#cfn-s3tables-table-icebergschemav2-schemav2fieldlist): 
    - SchemaV2Field
  [SchemaV2FieldType](#cfn-s3tables-table-icebergschemav2-schemav2fieldtype): String
```

## Properties
<a name="aws-properties-s3tables-table-icebergschemav2-properties"></a>

`IdentifierFieldIds`  <a name="cfn-s3tables-table-icebergschemav2-identifierfieldids"></a>
A list of field IDs that are used as the identifier fields for the table. Identifier fields uniquely identify a row in the table.  
*Required*: No  
*Type*: Array of Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SchemaId`  <a name="cfn-s3tables-table-icebergschemav2-schemaid"></a>
An optional unique identifier for the schema.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SchemaV2FieldList`  <a name="cfn-s3tables-table-icebergschemav2-schemav2fieldlist"></a>
The schema fields for the table.  
*Required*: Yes  
*Type*: Array of [SchemaV2Field](aws-properties-s3tables-table-schemav2field.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SchemaV2FieldType`  <a name="cfn-s3tables-table-icebergschemav2-schemav2fieldtype"></a>
The type of the top-level schema, which is always a struct type.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `struct`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table IcebergSortField
<a name="aws-properties-s3tables-table-icebergsortfield"></a>

Defines a single sort field in an Iceberg sort order specification.

## Syntax
<a name="aws-properties-s3tables-table-icebergsortfield-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-icebergsortfield-syntax.json"></a>

```
{
  "[Direction](#cfn-s3tables-table-icebergsortfield-direction)" : String,
  "[NullOrder](#cfn-s3tables-table-icebergsortfield-nullorder)" : String,
  "[SourceId](#cfn-s3tables-table-icebergsortfield-sourceid)" : Integer,
  "[Transform](#cfn-s3tables-table-icebergsortfield-transform)" : String
}
```

### YAML
<a name="aws-properties-s3tables-table-icebergsortfield-syntax.yaml"></a>

```
  [Direction](#cfn-s3tables-table-icebergsortfield-direction): String
  [NullOrder](#cfn-s3tables-table-icebergsortfield-nullorder): String
  [SourceId](#cfn-s3tables-table-icebergsortfield-sourceid): Integer
  [Transform](#cfn-s3tables-table-icebergsortfield-transform): String
```

## Properties
<a name="aws-properties-s3tables-table-icebergsortfield-properties"></a>

`Direction`  <a name="cfn-s3tables-table-icebergsortfield-direction"></a>
The sort direction. Valid values are `asc` for ascending order or `desc` for descending order.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `asc | desc`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`NullOrder`  <a name="cfn-s3tables-table-icebergsortfield-nullorder"></a>
Specifies how null values are ordered. Valid values are `nulls-first` to place nulls before non-null values, or `nulls-last` to place nulls after non-null values.  
*Required*: Yes  
*Type*: String  
*Allowed values*: `nulls-first | nulls-last`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`SourceId`  <a name="cfn-s3tables-table-icebergsortfield-sourceid"></a>
The ID of the source schema field to sort by. This must reference a valid field ID from the table schema.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Transform`  <a name="cfn-s3tables-table-icebergsortfield-transform"></a>
The transform to apply to the source field before sorting. Use `identity` to sort by the field value directly, or specify other transforms as needed.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table IcebergSortOrder
<a name="aws-properties-s3tables-table-icebergsortorder"></a>

Defines the sort order for data within an Iceberg table. Sorting data can improve query performance by enabling more efficient data skipping.

## Syntax
<a name="aws-properties-s3tables-table-icebergsortorder-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-icebergsortorder-syntax.json"></a>

```
{
  "[Fields](#cfn-s3tables-table-icebergsortorder-fields)" : [ IcebergSortField, ... ],
  "[OrderId](#cfn-s3tables-table-icebergsortorder-orderid)" : Integer
}
```

### YAML
<a name="aws-properties-s3tables-table-icebergsortorder-syntax.yaml"></a>

```
  [Fields](#cfn-s3tables-table-icebergsortorder-fields): 
    - IcebergSortField
  [OrderId](#cfn-s3tables-table-icebergsortorder-orderid): Integer
```

## Properties
<a name="aws-properties-s3tables-table-icebergsortorder-properties"></a>

`Fields`  <a name="cfn-s3tables-table-icebergsortorder-fields"></a>
The list of sort fields that define how data is sorted within files. Each field specifies a source field, sort direction, and null ordering. This field is required if `writeOrder` is provided.  
*Required*: Yes  
*Type*: Array of [IcebergSortField](aws-properties-s3tables-table-icebergsortfield.md)  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`OrderId`  <a name="cfn-s3tables-table-icebergsortorder-orderid"></a>
The unique identifier for this sort order. If not specified, defaults to `1`. The order ID is used by Apache Iceberg to track sort order evolution.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table SchemaField
<a name="aws-properties-s3tables-table-schemafield"></a>

Contains details about a schema field.

## Syntax
<a name="aws-properties-s3tables-table-schemafield-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-schemafield-syntax.json"></a>

```
{
  "[Id](#cfn-s3tables-table-schemafield-id)" : Integer,
  "[Name](#cfn-s3tables-table-schemafield-name)" : String,
  "[Required](#cfn-s3tables-table-schemafield-required)" : Boolean,
  "[Type](#cfn-s3tables-table-schemafield-type)" : String
}
```

### YAML
<a name="aws-properties-s3tables-table-schemafield-syntax.yaml"></a>

```
  [Id](#cfn-s3tables-table-schemafield-id): Integer
  [Name](#cfn-s3tables-table-schemafield-name): String
  [Required](#cfn-s3tables-table-schemafield-required): Boolean
  [Type](#cfn-s3tables-table-schemafield-type): String
```

## Properties
<a name="aws-properties-s3tables-table-schemafield-properties"></a>

`Id`  <a name="cfn-s3tables-table-schemafield-id"></a>
An optional unique identifier for the schema field. Field IDs are used by Apache Iceberg to track schema evolution and maintain compatibility across schema changes. If not specified, S3 Tables automatically assigns field IDs.  
*Required*: No  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-s3tables-table-schemafield-name"></a>
The name of the field.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Required`  <a name="cfn-s3tables-table-schemafield-required"></a>
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.  
*Required*: No  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Type`  <a name="cfn-s3tables-table-schemafield-type"></a>
The field type. S3 Tables supports all Apache Iceberg primitive types. For more information, see the [Apache Iceberg documentation](https://iceberg.apache.org/spec/#primitive-types).  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table SchemaV2Field
<a name="aws-properties-s3tables-table-schemav2field"></a>

Contains details about a schema field version 2 (V2) that supports [Apache Iceberg Nested Types](https://iceberg.apache.org/spec/#nested-types). Nested data type support includes struct, list and map. Primitive types are also supported.

**Important**  
`IcebergSchemaV2` is mutually exclusive with `IcebergSchema`. Specify `IcebergSchema` for flat schemas with primitive types only, or `IcebergSchemaV2` for schemas that include nested types (struct, list, map). You cannot specify both.

**Note**  
Top-level CloudFormation properties use PascalCase (`Id`, `Name`, `Type`, `Required`, `Doc`). When specifying nested type objects inside `Type`, use lowercase keys (`type`, `fields`, `id`, `name`, `required`, `element-id`, `element`, `element-required`, `key-id`, `key`, `value-id`, `value`, `value-required`) as these follow the Apache Iceberg specification format.

## Syntax
<a name="aws-properties-s3tables-table-schemav2field-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-schemav2field-syntax.json"></a>

```
{
  "[Doc](#cfn-s3tables-table-schemav2field-doc)" : String,
  "[Id](#cfn-s3tables-table-schemav2field-id)" : Integer,
  "[Name](#cfn-s3tables-table-schemav2field-name)" : String,
  "[Required](#cfn-s3tables-table-schemav2field-required)" : Boolean,
  "[Type](#cfn-s3tables-table-schemav2field-type)" : String
}
```

### YAML
<a name="aws-properties-s3tables-table-schemav2field-syntax.yaml"></a>

```
  [Doc](#cfn-s3tables-table-schemav2field-doc): String
  [Id](#cfn-s3tables-table-schemav2field-id): Integer
  [Name](#cfn-s3tables-table-schemav2field-name): String
  [Required](#cfn-s3tables-table-schemav2field-required): Boolean
  [Type](#cfn-s3tables-table-schemav2field-type): String
```

## Properties
<a name="aws-properties-s3tables-table-schemav2field-properties"></a>

`Doc`  <a name="cfn-s3tables-table-schemav2field-doc"></a>
An optional description of the field.  
*Required*: No  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Id`  <a name="cfn-s3tables-table-schemav2field-id"></a>
A unique identifier for the schema field V2. Field IDs are used by Apache Iceberg to track schema evolution and maintain compatibility across schema changes.  
*Required*: Yes  
*Type*: Integer  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Name`  <a name="cfn-s3tables-table-schemav2field-name"></a>
The name of the field.  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Required`  <a name="cfn-s3tables-table-schemav2field-required"></a>
A Boolean value that specifies whether values are required for each row in this field. If this is `true` the field does not allow null values.  
*Required*: Yes  
*Type*: Boolean  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Type`  <a name="cfn-s3tables-table-schemav2field-type"></a>
The field type. S3 Tables supports all Apache Iceberg primitive types and nested types. For more information, see the [Apache Iceberg documentation](https://iceberg.apache.org/spec/#schemas-and-data-types).  
*Required*: Yes  
*Type*: String  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table SnapshotManagement
<a name="aws-properties-s3tables-table-snapshotmanagement"></a>

Contains details about the snapshot management settings for an Iceberg table. The oldest snapshot expires when its age exceeds the `maxSnapshotAgeHours` and the total number of snapshots exceeds the value for the minimum number of snapshots to keep `minSnapshotsToKeep`.

## Syntax
<a name="aws-properties-s3tables-table-snapshotmanagement-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-snapshotmanagement-syntax.json"></a>

```
{
  "[MaxSnapshotAgeHours](#cfn-s3tables-table-snapshotmanagement-maxsnapshotagehours)" : Integer,
  "[MinSnapshotsToKeep](#cfn-s3tables-table-snapshotmanagement-minsnapshotstokeep)" : Integer,
  "[Status](#cfn-s3tables-table-snapshotmanagement-status)" : String
}
```

### YAML
<a name="aws-properties-s3tables-table-snapshotmanagement-syntax.yaml"></a>

```
  [MaxSnapshotAgeHours](#cfn-s3tables-table-snapshotmanagement-maxsnapshotagehours): Integer
  [MinSnapshotsToKeep](#cfn-s3tables-table-snapshotmanagement-minsnapshotstokeep): Integer
  [Status](#cfn-s3tables-table-snapshotmanagement-status): String
```

## Properties
<a name="aws-properties-s3tables-table-snapshotmanagement-properties"></a>

`MaxSnapshotAgeHours`  <a name="cfn-s3tables-table-snapshotmanagement-maxsnapshotagehours"></a>
The maximum age of a snapshot before it can be expired.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MinSnapshotsToKeep`  <a name="cfn-s3tables-table-snapshotmanagement-minsnapshotstokeep"></a>
The minimum number of snapshots to keep.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Status`  <a name="cfn-s3tables-table-snapshotmanagement-status"></a>
The status of the maintenance configuration.  
*Required*: No  
*Type*: String  
*Allowed values*: `enabled | disabled`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::Table StorageClassConfiguration
<a name="aws-properties-s3tables-table-storageclassconfiguration"></a>

The configuration details for the storage class of tables or table buckets. This allows you to optimize storage costs by selecting the appropriate storage class based on your access patterns and performance requirements.

## Syntax
<a name="aws-properties-s3tables-table-storageclassconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-storageclassconfiguration-syntax.json"></a>

```
{
  "[StorageClass](#cfn-s3tables-table-storageclassconfiguration-storageclass)" : String
}
```

### YAML
<a name="aws-properties-s3tables-table-storageclassconfiguration-syntax.yaml"></a>

```
  [StorageClass](#cfn-s3tables-table-storageclassconfiguration-storageclass): String
```

## Properties
<a name="aws-properties-s3tables-table-storageclassconfiguration-properties"></a>

`StorageClass`  <a name="cfn-s3tables-table-storageclassconfiguration-storageclass"></a>
The storage class for the table or table bucket. Valid values include storage classes optimized for different access patterns and cost profiles.  
*Required*: No  
*Type*: String  
*Allowed values*: `STANDARD | INTELLIGENT_TIERING`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

# AWS::S3Tables::Table Tag
<a name="aws-properties-s3tables-table-tag"></a>

<a name="aws-properties-s3tables-table-tag-description"></a>The `Tag` property type specifies Property description not available. for an [AWS::S3Tables::Table](aws-resource-s3tables-table.md).

## Syntax
<a name="aws-properties-s3tables-table-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-table-tag-syntax.json"></a>

```
{
  "[Key](#cfn-s3tables-table-tag-key)" : String,
  "[Value](#cfn-s3tables-table-tag-value)" : String
}
```

### YAML
<a name="aws-properties-s3tables-table-tag-syntax.yaml"></a>

```
  [Key](#cfn-s3tables-table-tag-key): String
  [Value](#cfn-s3tables-table-tag-value): String
```

## Properties
<a name="aws-properties-s3tables-table-tag-properties"></a>

`Key`  <a name="cfn-s3tables-table-tag-key"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-s3tables-table-tag-value"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucket
<a name="aws-resource-s3tables-tablebucket"></a>

Creates a table bucket. For more information, see [Creating a table bucket](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-buckets-create.html) 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.

 AWS Cloud Development Kit (AWS CDK)   
To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options:  
+ NPM: `npm i @aws-cdk/aws-s3tables-alpha`
+ Yarn:`yarn add @aws-cdk/aws-s3tables-alpha`

## Syntax
<a name="aws-resource-s3tables-tablebucket-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-s3tables-tablebucket-syntax.json"></a>

```
{
  "Type" : "AWS::S3Tables::TableBucket",
  "Properties" : {
      "[EncryptionConfiguration](#cfn-s3tables-tablebucket-encryptionconfiguration)" : EncryptionConfiguration,
      "[MetricsConfiguration](#cfn-s3tables-tablebucket-metricsconfiguration)" : MetricsConfiguration,
      "[ReplicationConfiguration](#cfn-s3tables-tablebucket-replicationconfiguration)" : ReplicationConfiguration,
      "[StorageClassConfiguration](#cfn-s3tables-tablebucket-storageclassconfiguration)" : StorageClassConfiguration,
      "[TableBucketName](#cfn-s3tables-tablebucket-tablebucketname)" : String,
      "[Tags](#cfn-s3tables-tablebucket-tags)" : [ Tag, ... ],
      "[UnreferencedFileRemoval](#cfn-s3tables-tablebucket-unreferencedfileremoval)" : UnreferencedFileRemoval
    }
}
```

### YAML
<a name="aws-resource-s3tables-tablebucket-syntax.yaml"></a>

```
Type: AWS::S3Tables::TableBucket
Properties:
  [EncryptionConfiguration](#cfn-s3tables-tablebucket-encryptionconfiguration): 
    EncryptionConfiguration
  [MetricsConfiguration](#cfn-s3tables-tablebucket-metricsconfiguration): 
    MetricsConfiguration
  [ReplicationConfiguration](#cfn-s3tables-tablebucket-replicationconfiguration): 
    ReplicationConfiguration
  [StorageClassConfiguration](#cfn-s3tables-tablebucket-storageclassconfiguration): 
    StorageClassConfiguration
  [TableBucketName](#cfn-s3tables-tablebucket-tablebucketname): String
  [Tags](#cfn-s3tables-tablebucket-tags): 
    - Tag
  [UnreferencedFileRemoval](#cfn-s3tables-tablebucket-unreferencedfileremoval): 
    UnreferencedFileRemoval
```

## Properties
<a name="aws-resource-s3tables-tablebucket-properties"></a>

`EncryptionConfiguration`  <a name="cfn-s3tables-tablebucket-encryptionconfiguration"></a>
Configuration specifying how data should be encrypted. This structure defines the encryption algorithm and optional KMS key to be used for server-side encryption.  
*Required*: No  
*Type*: [EncryptionConfiguration](aws-properties-s3tables-tablebucket-encryptionconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`MetricsConfiguration`  <a name="cfn-s3tables-tablebucket-metricsconfiguration"></a>
Property description not available.  
*Required*: No  
*Type*: [MetricsConfiguration](aws-properties-s3tables-tablebucket-metricsconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`ReplicationConfiguration`  <a name="cfn-s3tables-tablebucket-replicationconfiguration"></a>
Property description not available.  
*Required*: No  
*Type*: [ReplicationConfiguration](aws-properties-s3tables-tablebucket-replicationconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`StorageClassConfiguration`  <a name="cfn-s3tables-tablebucket-storageclassconfiguration"></a>
The configuration details for the storage class of tables or table buckets. This allows you to optimize storage costs by selecting the appropriate storage class based on your access patterns and performance requirements.  
*Required*: No  
*Type*: [StorageClassConfiguration](aws-properties-s3tables-tablebucket-storageclassconfiguration.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TableBucketName`  <a name="cfn-s3tables-tablebucket-tablebucketname"></a>
The name for the table bucket.  
*Required*: Yes  
*Type*: String  
*Minimum*: `3`  
*Maximum*: `63`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

`Tags`  <a name="cfn-s3tables-tablebucket-tags"></a>
Property description not available.  
*Required*: No  
*Type*: Array of [Tag](aws-properties-s3tables-tablebucket-tag.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`UnreferencedFileRemoval`  <a name="cfn-s3tables-tablebucket-unreferencedfileremoval"></a>
The unreferenced file removal settings for your table bucket. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots. For more information, see the [https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-table-buckets-maintenance.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-table-buckets-maintenance.html).  
*Required*: No  
*Type*: [UnreferencedFileRemoval](aws-properties-s3tables-tablebucket-unreferencedfileremoval.md)  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

## Return values
<a name="aws-resource-s3tables-tablebucket-return-values"></a>

### Ref
<a name="aws-resource-s3tables-tablebucket-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns the table bucket name.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-s3tables-tablebucket-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-s3tables-tablebucket-return-values-fn--getatt-fn--getatt"></a>

`TableBucketARN`  <a name="TableBucketARN-fn::getatt"></a>
The Amazon Resource Name (ARN) of the table bucket.

# AWS::S3Tables::TableBucket EncryptionConfiguration
<a name="aws-properties-s3tables-tablebucket-encryptionconfiguration"></a>

Configuration specifying how data should be encrypted. This structure defines the encryption algorithm and optional KMS key to be used for server-side encryption.

## Syntax
<a name="aws-properties-s3tables-tablebucket-encryptionconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-tablebucket-encryptionconfiguration-syntax.json"></a>

```
{
  "[KMSKeyArn](#cfn-s3tables-tablebucket-encryptionconfiguration-kmskeyarn)" : String,
  "[SSEAlgorithm](#cfn-s3tables-tablebucket-encryptionconfiguration-ssealgorithm)" : String
}
```

### YAML
<a name="aws-properties-s3tables-tablebucket-encryptionconfiguration-syntax.yaml"></a>

```
  [KMSKeyArn](#cfn-s3tables-tablebucket-encryptionconfiguration-kmskeyarn): String
  [SSEAlgorithm](#cfn-s3tables-tablebucket-encryptionconfiguration-ssealgorithm): String
```

## Properties
<a name="aws-properties-s3tables-tablebucket-encryptionconfiguration-properties"></a>

`KMSKeyArn`  <a name="cfn-s3tables-tablebucket-encryptionconfiguration-kmskeyarn"></a>
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`.  
*Required*: No  
*Type*: String  
*Pattern*: `(arn:aws[-a-z0-9]*:kms:[-a-z0-9]*:[0-9]{12}:key/.+)`  
*Minimum*: `1`  
*Maximum*: `2048`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`SSEAlgorithm`  <a name="cfn-s3tables-tablebucket-encryptionconfiguration-ssealgorithm"></a>
The server-side encryption algorithm to use. Valid values are `AES256` for S3-managed encryption keys, or `aws:kms` for AWS 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](https://docs.aws.amazon.com//AmazonS3/latest/userguide/s3-tables-kms-permissions.html).  
*Required*: No  
*Type*: String  
*Allowed values*: `AES256 | aws:kms`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucket MetricsConfiguration
<a name="aws-properties-s3tables-tablebucket-metricsconfiguration"></a>

<a name="aws-properties-s3tables-tablebucket-metricsconfiguration-description"></a>The `MetricsConfiguration` property type specifies Property description not available. for an [AWS::S3Tables::TableBucket](aws-resource-s3tables-tablebucket.md).

## Syntax
<a name="aws-properties-s3tables-tablebucket-metricsconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-tablebucket-metricsconfiguration-syntax.json"></a>

```
{
  "[Status](#cfn-s3tables-tablebucket-metricsconfiguration-status)" : String
}
```

### YAML
<a name="aws-properties-s3tables-tablebucket-metricsconfiguration-syntax.yaml"></a>

```
  [Status](#cfn-s3tables-tablebucket-metricsconfiguration-status): String
```

## Properties
<a name="aws-properties-s3tables-tablebucket-metricsconfiguration-properties"></a>

`Status`  <a name="cfn-s3tables-tablebucket-metricsconfiguration-status"></a>
Property description not available.  
*Required*: No  
*Type*: String  
*Allowed values*: `Enabled | Disabled`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucket ReplicationConfiguration
<a name="aws-properties-s3tables-tablebucket-replicationconfiguration"></a>

<a name="aws-properties-s3tables-tablebucket-replicationconfiguration-description"></a>The `ReplicationConfiguration` property type specifies Property description not available. for an [AWS::S3Tables::TableBucket](aws-resource-s3tables-tablebucket.md).

## Syntax
<a name="aws-properties-s3tables-tablebucket-replicationconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-tablebucket-replicationconfiguration-syntax.json"></a>

```
{
  "[Role](#cfn-s3tables-tablebucket-replicationconfiguration-role)" : String,
  "[Rules](#cfn-s3tables-tablebucket-replicationconfiguration-rules)" : [ ReplicationRule, ... ]
}
```

### YAML
<a name="aws-properties-s3tables-tablebucket-replicationconfiguration-syntax.yaml"></a>

```
  [Role](#cfn-s3tables-tablebucket-replicationconfiguration-role): String
  [Rules](#cfn-s3tables-tablebucket-replicationconfiguration-rules): 
    - ReplicationRule
```

## Properties
<a name="aws-properties-s3tables-tablebucket-replicationconfiguration-properties"></a>

`Role`  <a name="cfn-s3tables-tablebucket-replicationconfiguration-role"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Rules`  <a name="cfn-s3tables-tablebucket-replicationconfiguration-rules"></a>
Property description not available.  
*Required*: Yes  
*Type*: Array of [ReplicationRule](aws-properties-s3tables-tablebucket-replicationrule.md)  
*Minimum*: `1`  
*Maximum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucket ReplicationDestination
<a name="aws-properties-s3tables-tablebucket-replicationdestination"></a>

Specifies a destination table bucket for replication.

## Syntax
<a name="aws-properties-s3tables-tablebucket-replicationdestination-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-tablebucket-replicationdestination-syntax.json"></a>

```
{
  "[DestinationTableBucketARN](#cfn-s3tables-tablebucket-replicationdestination-destinationtablebucketarn)" : String
}
```

### YAML
<a name="aws-properties-s3tables-tablebucket-replicationdestination-syntax.yaml"></a>

```
  [DestinationTableBucketARN](#cfn-s3tables-tablebucket-replicationdestination-destinationtablebucketarn): String
```

## Properties
<a name="aws-properties-s3tables-tablebucket-replicationdestination-properties"></a>

`DestinationTableBucketARN`  <a name="cfn-s3tables-tablebucket-replicationdestination-destinationtablebucketarn"></a>
The Amazon Resource Name (ARN) of the destination table bucket where tables will be replicated.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:bucket/[a-z0-9_-]{3,63})`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucket ReplicationRule
<a name="aws-properties-s3tables-tablebucket-replicationrule"></a>

<a name="aws-properties-s3tables-tablebucket-replicationrule-description"></a>The `ReplicationRule` property type specifies Property description not available. for an [AWS::S3Tables::TableBucket](aws-resource-s3tables-tablebucket.md).

## Syntax
<a name="aws-properties-s3tables-tablebucket-replicationrule-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-tablebucket-replicationrule-syntax.json"></a>

```
{
  "[Destinations](#cfn-s3tables-tablebucket-replicationrule-destinations)" : [ ReplicationDestination, ... ]
}
```

### YAML
<a name="aws-properties-s3tables-tablebucket-replicationrule-syntax.yaml"></a>

```
  [Destinations](#cfn-s3tables-tablebucket-replicationrule-destinations): 
    - ReplicationDestination
```

## Properties
<a name="aws-properties-s3tables-tablebucket-replicationrule-properties"></a>

`Destinations`  <a name="cfn-s3tables-tablebucket-replicationrule-destinations"></a>
Property description not available.  
*Required*: Yes  
*Type*: Array of [ReplicationDestination](aws-properties-s3tables-tablebucket-replicationdestination.md)  
*Minimum*: `1`  
*Maximum*: `5`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucket StorageClassConfiguration
<a name="aws-properties-s3tables-tablebucket-storageclassconfiguration"></a>

The configuration details for the storage class of tables or table buckets. This allows you to optimize storage costs by selecting the appropriate storage class based on your access patterns and performance requirements.

## Syntax
<a name="aws-properties-s3tables-tablebucket-storageclassconfiguration-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-tablebucket-storageclassconfiguration-syntax.json"></a>

```
{
  "[StorageClass](#cfn-s3tables-tablebucket-storageclassconfiguration-storageclass)" : String
}
```

### YAML
<a name="aws-properties-s3tables-tablebucket-storageclassconfiguration-syntax.yaml"></a>

```
  [StorageClass](#cfn-s3tables-tablebucket-storageclassconfiguration-storageclass): String
```

## Properties
<a name="aws-properties-s3tables-tablebucket-storageclassconfiguration-properties"></a>

`StorageClass`  <a name="cfn-s3tables-tablebucket-storageclassconfiguration-storageclass"></a>
The storage class for the table or table bucket. Valid values include storage classes optimized for different access patterns and cost profiles.  
*Required*: No  
*Type*: String  
*Allowed values*: `STANDARD | INTELLIGENT_TIERING`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucket Tag
<a name="aws-properties-s3tables-tablebucket-tag"></a>

<a name="aws-properties-s3tables-tablebucket-tag-description"></a>The `Tag` property type specifies Property description not available. for an [AWS::S3Tables::TableBucket](aws-resource-s3tables-tablebucket.md).

## Syntax
<a name="aws-properties-s3tables-tablebucket-tag-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-tablebucket-tag-syntax.json"></a>

```
{
  "[Key](#cfn-s3tables-tablebucket-tag-key)" : String,
  "[Value](#cfn-s3tables-tablebucket-tag-value)" : String
}
```

### YAML
<a name="aws-properties-s3tables-tablebucket-tag-syntax.yaml"></a>

```
  [Key](#cfn-s3tables-tablebucket-tag-key): String
  [Value](#cfn-s3tables-tablebucket-tag-value): String
```

## Properties
<a name="aws-properties-s3tables-tablebucket-tag-properties"></a>

`Key`  <a name="cfn-s3tables-tablebucket-tag-key"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Minimum*: `1`  
*Maximum*: `128`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Value`  <a name="cfn-s3tables-tablebucket-tag-value"></a>
Property description not available.  
*Required*: Yes  
*Type*: String  
*Maximum*: `256`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucket UnreferencedFileRemoval
<a name="aws-properties-s3tables-tablebucket-unreferencedfileremoval"></a>

The unreferenced file removal settings for your table bucket. Unreferenced file removal identifies and deletes all objects that are not referenced by any table snapshots. For more information, see the [https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-table-buckets-maintenance.html](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-table-buckets-maintenance.html).

## Syntax
<a name="aws-properties-s3tables-tablebucket-unreferencedfileremoval-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-properties-s3tables-tablebucket-unreferencedfileremoval-syntax.json"></a>

```
{
  "[NoncurrentDays](#cfn-s3tables-tablebucket-unreferencedfileremoval-noncurrentdays)" : Integer,
  "[Status](#cfn-s3tables-tablebucket-unreferencedfileremoval-status)" : String,
  "[UnreferencedDays](#cfn-s3tables-tablebucket-unreferencedfileremoval-unreferenceddays)" : Integer
}
```

### YAML
<a name="aws-properties-s3tables-tablebucket-unreferencedfileremoval-syntax.yaml"></a>

```
  [NoncurrentDays](#cfn-s3tables-tablebucket-unreferencedfileremoval-noncurrentdays): Integer
  [Status](#cfn-s3tables-tablebucket-unreferencedfileremoval-status): String
  [UnreferencedDays](#cfn-s3tables-tablebucket-unreferencedfileremoval-unreferenceddays): Integer
```

## Properties
<a name="aws-properties-s3tables-tablebucket-unreferencedfileremoval-properties"></a>

`NoncurrentDays`  <a name="cfn-s3tables-tablebucket-unreferencedfileremoval-noncurrentdays"></a>
The number of days an object can be noncurrent before Amazon S3 deletes it.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`Status`  <a name="cfn-s3tables-tablebucket-unreferencedfileremoval-status"></a>
The status of the unreferenced file removal configuration for your table bucket.  
*Required*: No  
*Type*: String  
*Allowed values*: `Enabled | Disabled`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`UnreferencedDays`  <a name="cfn-s3tables-tablebucket-unreferencedfileremoval-unreferenceddays"></a>
The number of days an object must be unreferenced by your table before Amazon S3 marks the object as noncurrent.  
*Required*: No  
*Type*: Integer  
*Minimum*: `1`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

# AWS::S3Tables::TableBucketPolicy
<a name="aws-resource-s3tables-tablebucketpolicy"></a>

Creates a new maintenance configuration or replaces an existing table bucket policy for a table bucket. For more information, see [Adding a table bucket policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-bucket-policy.html#table-bucket-policy-add) in the *Amazon Simple Storage Service User Guide*.

Permissions  
You must have the `s3tables:PutTableBucketPolicy` permission to use this operation. 

 AWS Cloud Development Kit (AWS CDK)   
To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options:  
+ NPM: `npm i @aws-cdk/aws-s3tables-alpha`
+ Yarn:`yarn add @aws-cdk/aws-s3tables-alpha`

## Syntax
<a name="aws-resource-s3tables-tablebucketpolicy-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-s3tables-tablebucketpolicy-syntax.json"></a>

```
{
  "Type" : "AWS::S3Tables::TableBucketPolicy",
  "Properties" : {
      "[ResourcePolicy](#cfn-s3tables-tablebucketpolicy-resourcepolicy)" : Json,
      "[TableBucketARN](#cfn-s3tables-tablebucketpolicy-tablebucketarn)" : String
    }
}
```

### YAML
<a name="aws-resource-s3tables-tablebucketpolicy-syntax.yaml"></a>

```
Type: AWS::S3Tables::TableBucketPolicy
Properties:
  [ResourcePolicy](#cfn-s3tables-tablebucketpolicy-resourcepolicy): Json
  [TableBucketARN](#cfn-s3tables-tablebucketpolicy-tablebucketarn): String
```

## Properties
<a name="aws-resource-s3tables-tablebucketpolicy-properties"></a>

`ResourcePolicy`  <a name="cfn-s3tables-tablebucketpolicy-resourcepolicy"></a>
The bucket policy JSON for the table bucket.  
*Required*: Yes  
*Type*: Json  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TableBucketARN`  <a name="cfn-s3tables-tablebucketpolicy-tablebucketarn"></a>
The Amazon Resource Name (ARN) of the table bucket.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:bucket/[a-z0-9_-]{3,63})`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-s3tables-tablebucketpolicy-return-values"></a>

### Ref
<a name="aws-resource-s3tables-tablebucketpolicy-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns some information about your table bucket policy.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

# AWS::S3Tables::TablePolicy
<a name="aws-resource-s3tables-tablepolicy"></a>

Creates a new maintenance configuration or replaces an existing table policy for a table. For more information, see [Adding a table policy](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-tables-table-policy.html#table-policy-add) in the *Amazon Simple Storage Service User Guide*. 

Permissions  
You must have the `s3tables:PutTablePolicy` permission to use this operation. 

 AWS Cloud Development Kit (AWS CDK)   
To use S3 Tables AWS CDK constructs, add the `@aws-cdk/aws-s3tables-alpha` dependency with one of the following options:  
+ NPM: `npm i @aws-cdk/aws-s3tables-alpha`
+ Yarn:`yarn add @aws-cdk/aws-s3tables-alpha`

## Syntax
<a name="aws-resource-s3tables-tablepolicy-syntax"></a>

To declare this entity in your CloudFormation template, use the following syntax:

### JSON
<a name="aws-resource-s3tables-tablepolicy-syntax.json"></a>

```
{
  "Type" : "AWS::S3Tables::TablePolicy",
  "Properties" : {
      "[ResourcePolicy](#cfn-s3tables-tablepolicy-resourcepolicy)" : Json,
      "[TableARN](#cfn-s3tables-tablepolicy-tablearn)" : String
    }
}
```

### YAML
<a name="aws-resource-s3tables-tablepolicy-syntax.yaml"></a>

```
Type: AWS::S3Tables::TablePolicy
Properties:
  [ResourcePolicy](#cfn-s3tables-tablepolicy-resourcepolicy): Json
  [TableARN](#cfn-s3tables-tablepolicy-tablearn): String
```

## Properties
<a name="aws-resource-s3tables-tablepolicy-properties"></a>

`ResourcePolicy`  <a name="cfn-s3tables-tablepolicy-resourcepolicy"></a>
The `JSON` that defines the policy.  
*Required*: Yes  
*Type*: Json  
*Minimum*: `1`  
*Maximum*: `20480`  
*Update requires*: [No interruption](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt)

`TableARN`  <a name="cfn-s3tables-tablepolicy-tablearn"></a>
The Amazon Resource Name (ARN) of the table.  
*Required*: Yes  
*Type*: String  
*Pattern*: `(arn:aws[-a-z0-9]*:[a-z0-9]+:[-a-z0-9]*:[0-9]{12}:bucket/[a-z0-9_-]{3,63}/table/[a-zA-Z0-9-_]{1,255})`  
*Minimum*: `1`  
*Maximum*: `2048`  
*Update requires*: [Replacement](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-replacement)

## Return values
<a name="aws-resource-s3tables-tablepolicy-return-values"></a>

### Ref
<a name="aws-resource-s3tables-tablepolicy-return-values-ref"></a>

When you pass the logical ID of this resource to the intrinsic `Ref` function, `Ref` returns some information about your table policy.

For more information about using the `Ref` function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-ref.html).

### Fn::GetAtt
<a name="aws-resource-s3tables-tablepolicy-return-values-fn--getatt"></a>

The `Fn::GetAtt` intrinsic function returns a value for a specified attribute of this type. The following are the available attributes and sample return values.

For more information about using the `Fn::GetAtt` intrinsic function, see [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/intrinsic-function-reference-getatt.html).

#### 
<a name="aws-resource-s3tables-tablepolicy-return-values-fn--getatt-fn--getatt"></a>

`Namespace`  <a name="Namespace-fn::getatt"></a>
The namespace to associated with the table.

`TableBucketARN`  <a name="TableBucketARN-fn::getatt"></a>
The Amazon Resource Name (ARN) of the table bucket that contains the table.

`TableName`  <a name="TableName-fn::getatt"></a>
The name of the table.