> **Experimental**
>
> `@aws-cdk/aws-s3tables-alpha` is an [**experimental**](/stability) (alpha) package: its API may change in any release, without a major version bump.
# TableBucketProps

Parameters for constructing a TableBucket.

Extends: TableBucketProps
Used as props by: TableBucket

- Stability: [Experimental](/cdk/api/stability.html)
- Source: [`lib/table-bucket.ts`](https://github.com/aws/aws-cdk/blob/v2.277.0-alpha.0/packages/@aws-cdk/aws-s3tables-alpha/lib/table-bucket.ts#L334)
- Type last changed: v2.271.0-alpha.0 · 26 Sep 2026

## Example

```ts
// Build a Table bucket
const sampleTableBucket = new TableBucket(scope, 'ExampleTableBucket', {
    // optional fields:
    tableBucketName: 'example-bucket-1', // if omitted, CDK generates a unique name that satisfies the S3 Tables naming rules
    unreferencedFileRemoval: {
        status: UnreferencedFileRemovalStatus.ENABLED,
        noncurrentDays: 20,
        unreferencedDays: 20,
    }
});
```

## Properties

- `account`: string — AWS Account ID of the table bucket owner.

  **Default:** it's assumed the bucket belongs to the same account as the scope it's being imported into

- `encryption`: [TableBucketEncryption](/cdk/api/v2/docs/@aws-cdk_aws-s3tables-alpha.TableBucketEncryption.html) — The kind of server-side encryption to apply to this bucket.

  **Default:** `KMS` if `encryptionKey` is specified, or `S3_MANAGED` otherwise.

  If you choose KMS, you can specify a KMS key via `encryptionKey`. If
  encryption key is not specified, a key will automatically be created.

- `encryptionKey`: [IKey](/cdk/api/v2/docs/aws-cdk-lib.aws_kms.IKey.html) — External KMS key to use for bucket encryption.

  **Default:** If `encryption` is set to `KMS` and this property is undefined, a new KMS key will be created and associated with this bucket.

  The `encryption` property must be either not specified or set to `KMS`.
  An error will be emitted if `encryption` is set to `S3_MANAGED`.

- `region`: string — AWS region that the table bucket exists in.

  **Default:** it's assumed the bucket is in the same region as the scope it's being imported into

- `removalPolicy`: [RemovalPolicy](/cdk/api/v2/docs/aws-cdk-lib.RemovalPolicy.html) = RETAIN — Controls what happens to this table bucket it it stoped being managed by cloudformation.

- `requestMetricsStatus`: [RequestMetricsStatus](/cdk/api/v2/docs/@aws-cdk_aws-s3tables-alpha.RequestMetricsStatus.html) — CloudWatch request metrics configuration for the table bucket.

  **Default:** Request metrics are disabled

  When enabled, S3 Tables publishes CloudWatch request metrics for the table bucket.
  Request metrics provide insight into Amazon S3 Tables requests.

- `storageClass`: [StorageClass](/cdk/api/v2/docs/@aws-cdk_aws-s3tables-alpha.StorageClass.html) — The storage class for the table bucket.

  **Default:** STANDARD storage class

  Determines the storage tier used for table data, allowing optimization
  for different access patterns and cost profiles.

- `tableBucketName`: string — Name of the S3 TableBucket.

  **Default:** generated by CDK from the stack and construct path.

- `unreferencedFileRemoval`: [UnreferencedFileRemoval](/cdk/api/v2/docs/@aws-cdk_aws-s3tables-alpha.UnreferencedFileRemoval.html) — Unreferenced file removal settings for the S3 TableBucket.

  **Default:** Enabled with default values
