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.