CreateTable
The CreateTable
operation adds a new table to the specified keyspace. Within a keyspace, table names
must be unique.
CreateTable
is an asynchronous operation. When the request is received, the status of the table is set to CREATING
.
You can monitor the creation status of the new table by using the GetTable
operation, which returns the current status
of the table. You can start using a table when the status is ACTIVE
.
For more information, see Creating tables in the Amazon Keyspaces Developer Guide.
Request Syntax
{
"capacitySpecification": {
"readCapacityUnits": number
,
"throughputMode": "string
",
"writeCapacityUnits": number
},
"comment": {
"message": "string
"
},
"defaultTimeToLive": number
,
"encryptionSpecification": {
"kmsKeyIdentifier": "string
",
"type": "string
"
},
"keyspaceName": "string
",
"pointInTimeRecovery": {
"status": "string
"
},
"schemaDefinition": {
"allColumns": [
{
"name": "string
",
"type": "string
"
}
],
"clusteringKeys": [
{
"name": "string
",
"orderBy": "string
"
}
],
"partitionKeys": [
{
"name": "string
"
}
],
"staticColumns": [
{
"name": "string
"
}
]
},
"tableName": "string
",
"tags": [
{
"key": "string
",
"value": "string
"
}
],
"ttl": {
"status": "string
"
}
}
Request Parameters
For information about the parameters that are common to all actions, see Common Parameters.
The request accepts the following data in JSON format.
- capacitySpecification
-
Specifies the read/write throughput capacity mode for the table. The options are:
-
throughputMode:PAY_PER_REQUEST
and -
throughputMode:PROVISIONED
. The provisioned capacity mode requiresreadCapacityUnits
andwriteCapacityUnits
as inputs.
The default is
throughput_mode:PAY_PER_REQUEST
.For more information, see Read/write capacity modes in the Amazon Keyspaces Developer Guide.
Type: CapacitySpecification object
Required: No
-
- comment
-
This parameter allows to enter a description of the table.
Type: Comment object
Required: No
- defaultTimeToLive
-
The default Time to Live setting in seconds for the table.
For more information, see Setting the default TTL value for a table in the Amazon Keyspaces Developer Guide.
Type: Integer
Valid Range: Minimum value of 1. Maximum value of 630720000.
Required: No
- encryptionSpecification
-
Specifies how the encryption key for encryption at rest is managed for the table. You can choose one of the following KMS key (KMS key):
-
type:AWS_OWNED_KMS_KEY
- This key is owned by Amazon Keyspaces. -
type:CUSTOMER_MANAGED_KMS_KEY
- This key is stored in your account and is created, owned, and managed by you. This option requires thekms_key_identifier
of the KMS key in Amazon Resource Name (ARN) format as input.
The default is
type:AWS_OWNED_KMS_KEY
.For more information, see Encryption at rest in the Amazon Keyspaces Developer Guide.
Type: EncryptionSpecification object
Required: No
-
- keyspaceName
-
The name of the keyspace that the table is going to be created in.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 48.
Pattern:
[a-zA-Z0-9][a-zA-Z0-9_]{1,47}
Required: Yes
- pointInTimeRecovery
-
Specifies if
pointInTimeRecovery
is enabled or disabled for the table. The options are:-
ENABLED
-
DISABLED
If it's not specified, the default is
DISABLED
.For more information, see Point-in-time recovery in the Amazon Keyspaces Developer Guide.
Type: PointInTimeRecovery object
Required: No
-
- schemaDefinition
-
The
schemaDefinition
consists of the following parameters.For each column to be created:
-
name
- The name of the column. -
type
- An Amazon Keyspaces data type. For more information, see Data types in the Amazon Keyspaces Developer Guide.
The primary key of the table consists of the following columns:
-
partitionKeys
- The partition key can be a single column, or it can be a compound value composed of two or more columns. The partition key portion of the primary key is required and determines how Amazon Keyspaces stores your data.-
name
- The name of each partition key column.
-
-
clusteringKeys
- The optional clustering column portion of your primary key determines how the data is clustered and sorted within each partition.-
name
- The name of the clustering column. -
orderBy
- Sets the ascendant (ASC
) or descendant (DESC
) order modifier.
-
To define a column as static use
staticColumns
- Static columns store values that are shared by all rows in the same partition:-
name
- The name of the column. -
type
- An Amazon Keyspaces data type.
Type: SchemaDefinition object
Required: Yes
-
- tableName
-
The name of the table.
Type: String
Length Constraints: Minimum length of 1. Maximum length of 48.
Pattern:
[a-zA-Z0-9][a-zA-Z0-9_]{1,47}
Required: Yes
- tags
-
A list of key-value pair tags to be attached to the resource.
For more information, see Adding tags and labels to Amazon Keyspaces resources in the Amazon Keyspaces Developer Guide.
Type: Array of Tag objects
Array Members: Minimum number of 1 item. Maximum number of 60 items.
Required: No
- ttl
-
Enables Time to Live custom settings for the table. The options are:
-
status:enabled
-
status:disabled
The default is
status:disabled
. Afterttl
is enabled, you can't disable it for the table.For more information, see Expiring data by using Amazon Keyspaces Time to Live (TTL) in the Amazon Keyspaces Developer Guide.
Type: TimeToLive object
Required: No
-
Response Syntax
{
"resourceArn": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- resourceArn
-
The unique identifier of the table in the format of an Amazon Resource Name (ARN).
Type: String
Length Constraints: Minimum length of 20. Maximum length of 1000.
Pattern:
arn:(aws[a-zA-Z0-9-]*):cassandra:.+.*
Errors
For information about the errors that are common to all actions, see Common Errors.
- AccessDeniedException
-
You do not have sufficient access to perform this action.
HTTP Status Code: 400
- ConflictException
-
Amazon Keyspaces could not complete the requested action. This error may occur if you try to perform an action and the same or a different action is already in progress, or if you try to create a resource that already exists.
HTTP Status Code: 400
- InternalServerException
-
Amazon Keyspaces was unable to fully process this request because of an internal server error.
HTTP Status Code: 500
- ResourceNotFoundException
-
The operation tried to access a keyspace or table that doesn't exist. The resource might not be specified correctly, or its status might not be
ACTIVE
.HTTP Status Code: 400
- ServiceQuotaExceededException
-
The operation exceeded the service quota for this resource. For more information on service quotas, see Quotas in the Amazon Keyspaces Developer Guide.
HTTP Status Code: 400
- ValidationException
-
The operation failed due to an invalid or malformed request.
HTTP Status Code: 400
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: