# CfnTableProps

Properties for defining a `CfnTable`.

Extends: CfnTableProps
Used as props by: CfnTable

- Source: Generated code
- Type last changed: v2.230.0 · 26 Nov 2025

## Example

```ts
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import { aws_cassandra as cassandra } from 'aws-cdk-lib';
const cfnTableProps: cassandra.CfnTableProps = {
  keyspaceName: 'keyspaceName',
  partitionKeyColumns: [{
    columnName: 'columnName',
    columnType: 'columnType',
  }],

  // the properties below are optional
  autoScalingSpecifications: {
    readCapacityAutoScaling: {
      autoScalingDisabled: false,
      maximumUnits: 123,
      minimumUnits: 123,
      scalingPolicy: {
        targetTrackingScalingPolicyConfiguration: {
          targetValue: 123,

          // the properties below are optional
          disableScaleIn: false,
          scaleInCooldown: 123,
          scaleOutCooldown: 123,
        },
      },
    },
    writeCapacityAutoScaling: {
      autoScalingDisabled: false,
      maximumUnits: 123,
      minimumUnits: 123,
      scalingPolicy: {
        targetTrackingScalingPolicyConfiguration: {
          targetValue: 123,

          // the properties below are optional
          disableScaleIn: false,
          scaleInCooldown: 123,
          scaleOutCooldown: 123,
        },
      },
    },
  },
  billingMode: {
    mode: 'mode',

    // the properties below are optional
    provisionedThroughput: {
      readCapacityUnits: 123,
      writeCapacityUnits: 123,
    },
  },
  cdcSpecification: {
    status: 'status',

    // the properties below are optional
    tags: [{
      key: 'key',
      value: 'value',
    }],
    viewType: 'viewType',
  },
  clientSideTimestampsEnabled: false,
  clusteringKeyColumns: [{
    column: {
      columnName: 'columnName',
      columnType: 'columnType',
    },

    // the properties below are optional
    orderBy: 'orderBy',
  }],
  defaultTimeToLive: 123,
  encryptionSpecification: {
    encryptionType: 'encryptionType',

    // the properties below are optional
    kmsKeyIdentifier: 'kmsKeyIdentifier',
  },
  pointInTimeRecoveryEnabled: false,
  regularColumns: [{
    columnName: 'columnName',
    columnType: 'columnType',
  }],
  replicaSpecifications: [{
    region: 'region',

    // the properties below are optional
    readCapacityAutoScaling: {
      autoScalingDisabled: false,
      maximumUnits: 123,
      minimumUnits: 123,
      scalingPolicy: {
        targetTrackingScalingPolicyConfiguration: {
          targetValue: 123,

          // the properties below are optional
          disableScaleIn: false,
          scaleInCooldown: 123,
          scaleOutCooldown: 123,
        },
      },
    },
    readCapacityUnits: 123,
  }],
  tableName: 'tableName',
  tags: [{
    key: 'key',
    value: 'value',
  }],
  warmThroughput: {
    readUnitsPerSecond: 123,
    writeUnitsPerSecond: 123,
  },
};
```

## Properties

- `autoScalingSpecifications`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.AutoScalingSpecificationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.AutoScalingSpecificationProperty.html) — The optional auto scaling capacity settings for a table in provisioned capacity mode.

- `billingMode`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.BillingModeProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.BillingModeProperty.html) — The billing mode for the table, which determines how you'll be charged for reads and writes:.

  - *On-demand mode* (default) - You pay based on the actual reads and writes your application performs.
  - *Provisioned mode* - Lets you specify the number of reads and writes per second that you need for your application.

  If you don't specify a value for this property, then the table will use on-demand mode.

- `cdcSpecification`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.CdcSpecificationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.CdcSpecificationProperty.html) — The settings for the CDC stream of a table.

  For more information about CDC streams, see [Working with change data capture (CDC) streams in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/cdc.html) in the *Amazon Keyspaces Developer Guide* .

- `clientSideTimestampsEnabled`: boolean | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) — Enables client-side timestamps for the table.

  By default, the setting is disabled. You can enable client-side timestamps with the following option:

  - `status: "enabled"`

  After client-side timestamps are enabled for a table, you can't disable this setting.

- `clusteringKeyColumns`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.ClusteringKeyColumnProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.ClusteringKeyColumnProperty.html)[] — One or more columns that determine how the table data is sorted.

- `defaultTimeToLive`: number — The default Time To Live (TTL) value for all rows in a table in seconds.

  The maximum configurable value is 630,720,000 seconds, which is the equivalent of 20 years. By default, the TTL value for a table is 0, which means data does not expire.

  For more information, see [Setting the default TTL value for a table](https://docs.aws.amazon.com/keyspaces/latest/devguide/TTL-how-it-works.html#ttl-howitworks_default_ttl) in the *Amazon Keyspaces Developer Guide* .

- `encryptionSpecification`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.EncryptionSpecificationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.EncryptionSpecificationProperty.html) — The encryption at rest options for the table.

  - *AWS owned key* (default) - The key is owned by Amazon Keyspaces .
  - *Customer managed key* - The key is stored in your account and is created, owned, and managed by you.

  > If you choose encryption with a customer managed key, you must specify a valid customer managed KMS key with permissions granted to Amazon Keyspaces.

  For more information, see [Encryption at rest in Amazon Keyspaces](https://docs.aws.amazon.com/keyspaces/latest/devguide/EncryptionAtRest.html) in the *Amazon Keyspaces Developer Guide* .

- `keyspaceName`: string (required) — The name of the keyspace to create the table in.

  The keyspace must already exist.

- `partitionKeyColumns`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.ColumnProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.ColumnProperty.html)[] (required) — One or more columns that uniquely identify every row in the table.

  Every table must have a partition key.

- `pointInTimeRecoveryEnabled`: boolean | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) — Specifies if point-in-time recovery is enabled or disabled for the table.

  The options are `PointInTimeRecoveryEnabled=true` and `PointInTimeRecoveryEnabled=false` . If not specified, the default is `PointInTimeRecoveryEnabled=false` .

- `regularColumns`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.ColumnProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.ColumnProperty.html)[] — One or more columns that are not part of the primary key - that is, columns that are *not* defined as partition key columns or clustering key columns.

  You can add regular columns to existing tables by adding them to the template.

- `replicaSpecifications`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.ReplicaSpecificationProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.ReplicaSpecificationProperty.html)[] — The AWS Region specific settings of a multi-Region table.

  For a multi-Region table, you can configure the table's read capacity differently per AWS Region. You can do this by configuring the following parameters.

  - `region` : The Region where these settings are applied. (Required)
  - `readCapacityUnits` : The provisioned read capacity units. (Optional)
  - `readCapacityAutoScaling` : The read capacity auto scaling settings for the table. (Optional)

- `tableName`: string — The name of the table to be created.

  The table name is case sensitive. If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the table name. For more information, see [Name type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) .

  > If you specify a name, you can't perform updates that require replacing this resource. You can perform updates that require no interruption or some interruption. If you must replace the resource, specify a new name.

  *Length constraints:* Minimum length of 3. Maximum length of 255.

  *Pattern:* `^[a-zA-Z0-9][a-zA-Z0-9_]{1,47}$`

- `tags`: [CfnTag](/cdk/api/v2/docs/aws-cdk-lib.CfnTag.html)[] — An array of key-value pairs to apply to this resource.

  For more information, see [Tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) .

- `warmThroughput`: [IResolvable](/cdk/api/v2/docs/aws-cdk-lib.IResolvable.html) | [CfnTable.WarmThroughputProperty](/cdk/api/v2/docs/aws-cdk-lib.aws_cassandra.CfnTable.WarmThroughputProperty.html) — Warm throughput configuration for the table.
