CreateTable method
Written by
Updated at February 26, 2024
Creates a new table.
The method is asynchronous.
This means it changes a table's state to CREATING and immediately returns the result. However, the table is actually being created in the background, and you can only use it after it goes ACTIVE.
Request
The request contains data in JSON format.
{
"AttributeDefinitions": [
{
"AttributeName": "string",
"AttributeType": "string"
}
],
"BillingMode": "string",
"GlobalSecondaryIndexes": [
{
"IndexName": "string",
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "string"
}
],
"Projection": {
"NonKeyAttributes": [ "string" ],
"ProjectionType": "string"
}
}
],
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "string"
}
],
"StreamSpecification": {
"StreamEnabled": boolean,
"StreamViewType": "string"
},
"TableName": "string"
}
Parameters
| Parameter | Description |
|---|---|
AttributeDefinitions |
An array of attributes that describe the key schema for a table and indexes. Type: Array of AttributeDefinition type objectsRequired: Yes |
GlobalSecondaryIndexes |
An array of attributes describing one or more global secondary indexes to be created in the table. Each item consists of:
Required: No |
KeySchema |
Attributes that make up the primary key. These attributes should also be specified in AttributeDefinitions.Each item consists of:
HASH role.For a composite primary key (partition key + sort key), specify two attributes: the first one with the HASH role and the second with the RANGE roleType: Array of KeySchemaElement type objectsLength: 1-2 items Required: Yes |
StreamSpecification |
Description of the update stream settings for a table:
Type: A StreamSpecification type objectRequired: No |
TableName |
Table name. May contain a path through the folder hierarchy in path/to/table format. Type: String Length: 3 - 255 characters Pattern: [a-zA-Z0-9_.-]+ Required: Yes |
Response
If successful, HTTP code 200 is returned.
The response is returned in JSON format.
{
"TableDescription": {
"ArchivalSummary": {
"ArchivalBackupArn": "string",
"ArchivalDateTime": number,
"ArchivalReason": "string"
},
"AttributeDefinitions": [
{
"AttributeName": "string",
"AttributeType": "string"
}
],
"BillingModeSummary": {
"BillingMode": "string",
"LastUpdateToPayPerRequestDateTime": number
},
"CreationDateTime": number,
"GlobalTableVersion": "string",
"ItemCount": number,
"KeySchema": [
{
"AttributeName": "string",
"KeyType": "string"
}
],
"LatestStreamArn": "string",
"LatestStreamLabel": "string",
"Replicas": [
{
"KMSMainKeyId": "string",
"RegionName": "string",
"ReplicaStatus": "string",
"ReplicaStatusDescription": "string",
"ReplicaStatusPercentProgress": "string"
}
],
"RestoreSummary": {
"RestoreDateTime": number,
"RestoreInProgress": boolean,
"SourceBackupArn": "string",
"SourceTableArn": "string"
},
"SSEDescription": {
"InaccessibleEncryptionDateTime": number,
"KMSMainKeyArn": "string",
"SSEType": "string",
"Status": "string"
},
"StreamSpecification": {
"StreamEnabled": boolean,
"StreamViewType": "string"
},
"TableArn": "string",
"TableId": "string",
"TableName": "string",
"TableSizeBytes": number,
"TableStatus": "string"
}
}
Parameters
| Parameter | Description |
|---|---|
TableDescription |
Properties of the created table. Type: a TableDescription object |
Errors
| Parameter | Description |
|---|---|
InternalServerError |
An internal error occurred on the server side. HTTP status code: 500 |
LimitExceededException |
Table operations limit exceeded. You can simultaneously perform up to 50 operations on tables, such as CreateTable, UpdateTable, DeleteTable, UpdateTimeToLive, RestoreTableFromBackup, and RestoreTableToPointInTime.HTTP status code: 400 |
ResourceInUseException |
An attempt to create a table with a name that already exists. HTTP status code: 400 |
There may be common errors as well. These are errors that are common to all methods.