import { _AttributeDefinition } from './_AttributeDefinition'; import { _KeySchemaElement } from './_KeySchemaElement'; import { _LocalSecondaryIndex } from './_LocalSecondaryIndex'; import { _GlobalSecondaryIndex } from './_GlobalSecondaryIndex'; import { _ProvisionedThroughput } from './_ProvisionedThroughput'; import { _StreamSpecification } from './_StreamSpecification'; import { _SSESpecification } from './_SSESpecification'; import { BrowserHttpOptions as __HttpOptions__ } from '@aws-sdk/types'; import * as __aws_sdk_types from '@aws-sdk/types'; /** *

Represents the input of a CreateTable operation.

*/ export interface CreateTableInput { /** *

An array of attributes that describe the key schema for the table and indexes.

*/ AttributeDefinitions: Array<_AttributeDefinition> | Iterable<_AttributeDefinition>; /** *

The name of the table to create.

*/ TableName: string; /** *

Specifies the attributes that make up the primary key for a table or an index. The attributes in KeySchema must also be defined in the AttributeDefinitions array. For more information, see Data Model in the Amazon DynamoDB Developer Guide.

Each KeySchemaElement in the array is composed of:

The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from DynamoDB' usage of an internal hash function to evenly distribute data items across partitions, based on their partition key values.

The sort key of an item is also known as its range attribute. The term "range attribute" derives from the way DynamoDB stores items with the same partition key physically close together, in sorted order by the sort key value.

For a simple primary key (partition key), you must provide exactly one element with a KeyType of HASH.

For a composite primary key (partition key and sort key), you must provide exactly two elements, in this order: The first element must have a KeyType of HASH, and the second element must have a KeyType of RANGE.

For more information, see Specifying the Primary Key in the Amazon DynamoDB Developer Guide.

*/ KeySchema: Array<_KeySchemaElement> | Iterable<_KeySchemaElement>; /** *

One or more local secondary indexes (the maximum is five) to be created on the table. Each index is scoped to a given partition key value. There is a 10 GB size limit per partition key value; otherwise, the size of a local secondary index is unconstrained.

Each local secondary index in the array includes the following:

*/ LocalSecondaryIndexes?: Array<_LocalSecondaryIndex> | Iterable<_LocalSecondaryIndex>; /** *

One or more global secondary indexes (the maximum is five) to be created on the table. Each global secondary index in the array includes the following:

*/ GlobalSecondaryIndexes?: Array<_GlobalSecondaryIndex> | Iterable<_GlobalSecondaryIndex>; /** *

Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the UpdateTable operation.

For current minimum and maximum provisioned throughput values, see Limits in the Amazon DynamoDB Developer Guide.

*/ ProvisionedThroughput: _ProvisionedThroughput; /** *

The settings for DynamoDB Streams on the table. These settings consist of:

*/ StreamSpecification?: _StreamSpecification; /** *

Represents the settings used to enable server-side encryption.

*/ SSESpecification?: _SSESpecification; /** * The maximum number of times this operation should be retried. If set, this value will override the `maxRetries` configuration set on the client for this command. */ $maxRetries?: number; /** * An object that may be queried to determine if the underlying operation has been aborted. * * @see https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal */ $abortSignal?: __aws_sdk_types.AbortSignal; /** * Per-request HTTP configuration options. If set, any options specified will override the corresponding HTTP option set on the client for this command. */ $httpOptions?: __HttpOptions__; }