Class CreateTableRequest
- java.lang.Object
-
- software.amazon.awssdk.core.SdkRequest
-
- software.amazon.awssdk.awscore.AwsRequest
-
- software.amazon.awssdk.services.dynamodb.model.DynamoDbRequest
-
- software.amazon.awssdk.services.dynamodb.model.CreateTableRequest
-
- All Implemented Interfaces:
SdkPojo
,ToCopyableBuilder<CreateTableRequest.Builder,CreateTableRequest>
@Generated("software.amazon.awssdk:codegen") public final class CreateTableRequest extends DynamoDbRequest implements ToCopyableBuilder<CreateTableRequest.Builder,CreateTableRequest>
Represents the input of a
CreateTable
operation.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
CreateTableRequest.Builder
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description List<AttributeDefinition>
attributeDefinitions()
An array of attributes that describe the key schema for the table and indexes.BillingMode
billingMode()
Controls how you are charged for read and write throughput and how you manage capacity.String
billingModeAsString()
Controls how you are charged for read and write throughput and how you manage capacity.static CreateTableRequest.Builder
builder()
Boolean
deletionProtectionEnabled()
Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table.boolean
equals(Object obj)
boolean
equalsBySdkFields(Object obj)
<T> Optional<T>
getValueForField(String fieldName, Class<T> clazz)
List<GlobalSecondaryIndex>
globalSecondaryIndexes()
One or more global secondary indexes (the maximum is 20) to be created on the table.boolean
hasAttributeDefinitions()
For responses, this returns true if the service returned a value for the AttributeDefinitions property.boolean
hasGlobalSecondaryIndexes()
For responses, this returns true if the service returned a value for the GlobalSecondaryIndexes property.int
hashCode()
boolean
hasKeySchema()
For responses, this returns true if the service returned a value for the KeySchema property.boolean
hasLocalSecondaryIndexes()
For responses, this returns true if the service returned a value for the LocalSecondaryIndexes property.boolean
hasTags()
For responses, this returns true if the service returned a value for the Tags property.List<KeySchemaElement>
keySchema()
Specifies the attributes that make up the primary key for a table or an index.List<LocalSecondaryIndex>
localSecondaryIndexes()
One or more local secondary indexes (the maximum is 5) to be created on the table.OnDemandThroughput
onDemandThroughput()
Sets the maximum number of read and write units for the specified table in on-demand capacity mode.ProvisionedThroughput
provisionedThroughput()
Represents the provisioned throughput settings for a specified table or index.String
resourcePolicy()
An Amazon Web Services resource-based policy document in JSON format that will be attached to the table.List<SdkField<?>>
sdkFields()
static Class<? extends CreateTableRequest.Builder>
serializableBuilderClass()
SSESpecification
sseSpecification()
Represents the settings used to enable server-side encryption.StreamSpecification
streamSpecification()
The settings for DynamoDB Streams on the table.TableClass
tableClass()
The table class of the new table.String
tableClassAsString()
The table class of the new table.String
tableName()
The name of the table to create.List<Tag>
tags()
A list of key-value pairs to label the table.CreateTableRequest.Builder
toBuilder()
String
toString()
Returns a string representation of this object.-
Methods inherited from class software.amazon.awssdk.awscore.AwsRequest
overrideConfiguration
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface software.amazon.awssdk.utils.builder.ToCopyableBuilder
copy
-
-
-
-
Method Detail
-
hasAttributeDefinitions
public final boolean hasAttributeDefinitions()
For responses, this returns true if the service returned a value for the AttributeDefinitions property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
-
attributeDefinitions
public final List<AttributeDefinition> attributeDefinitions()
An array of attributes that describe the key schema for the table and indexes.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasAttributeDefinitions()
method.- Returns:
- An array of attributes that describe the key schema for the table and indexes.
-
tableName
public final String tableName()
The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.
- Returns:
- The name of the table to create. You can also provide the Amazon Resource Name (ARN) of the table in this parameter.
-
hasKeySchema
public final boolean hasKeySchema()
For responses, this returns true if the service returned a value for the KeySchema property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
-
keySchema
public final List<KeySchemaElement> keySchema()
Specifies the attributes that make up the primary key for a table or an index. The attributes in
KeySchema
must also be defined in theAttributeDefinitions
array. For more information, see Data Model in the Amazon DynamoDB Developer Guide.Each
KeySchemaElement
in the array is composed of:-
AttributeName
- The name of this key attribute. -
KeyType
- The role that the key attribute will assume:-
HASH
- partition key -
RANGE
- sort key
-
The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from the 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
ofHASH
.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
ofHASH
, and the second element must have aKeyType
ofRANGE
.For more information, see Working with Tables in the Amazon DynamoDB Developer Guide.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasKeySchema()
method.- Returns:
- Specifies the attributes that make up the primary key for a table or an index. The attributes in
KeySchema
must also be defined in theAttributeDefinitions
array. For more information, see Data Model in the Amazon DynamoDB Developer Guide.Each
KeySchemaElement
in the array is composed of:-
AttributeName
- The name of this key attribute. -
KeyType
- The role that the key attribute will assume:-
HASH
- partition key -
RANGE
- sort key
-
The partition key of an item is also known as its hash attribute. The term "hash attribute" derives from the 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
ofHASH
.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
ofHASH
, and the second element must have aKeyType
ofRANGE
.For more information, see Working with Tables in the Amazon DynamoDB Developer Guide.
-
-
-
hasLocalSecondaryIndexes
public final boolean hasLocalSecondaryIndexes()
For responses, this returns true if the service returned a value for the LocalSecondaryIndexes property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
-
localSecondaryIndexes
public final List<LocalSecondaryIndex> localSecondaryIndexes()
One or more local secondary indexes (the maximum is 5) 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:
-
IndexName
- The name of the local secondary index. Must be unique only for this table. -
KeySchema
- Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table. -
Projection
- Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:-
ProjectionType
- One of the following:-
KEYS_ONLY
- Only the index and primary keys are projected into the index. -
INCLUDE
- Only the specified table attributes are projected into the index. The list of projected attributes is inNonKeyAttributes
. -
ALL
- All of the table attributes are projected into the index.
-
-
NonKeyAttributes
- A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided inNonKeyAttributes
, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.
-
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasLocalSecondaryIndexes()
method.- Returns:
- One or more local secondary indexes (the maximum is 5) 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:
-
IndexName
- The name of the local secondary index. Must be unique only for this table. -
KeySchema
- Specifies the key schema for the local secondary index. The key schema must begin with the same partition key as the table. -
Projection
- Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:-
ProjectionType
- One of the following:-
KEYS_ONLY
- Only the index and primary keys are projected into the index. -
INCLUDE
- Only the specified table attributes are projected into the index. The list of projected attributes is inNonKeyAttributes
. -
ALL
- All of the table attributes are projected into the index.
-
-
NonKeyAttributes
- A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided inNonKeyAttributes
, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.
-
-
-
-
hasGlobalSecondaryIndexes
public final boolean hasGlobalSecondaryIndexes()
For responses, this returns true if the service returned a value for the GlobalSecondaryIndexes property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
-
globalSecondaryIndexes
public final List<GlobalSecondaryIndex> globalSecondaryIndexes()
One or more global secondary indexes (the maximum is 20) to be created on the table. Each global secondary index in the array includes the following:
-
IndexName
- The name of the global secondary index. Must be unique only for this table. -
KeySchema
- Specifies the key schema for the global secondary index. -
Projection
- Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:-
ProjectionType
- One of the following:-
KEYS_ONLY
- Only the index and primary keys are projected into the index. -
INCLUDE
- Only the specified table attributes are projected into the index. The list of projected attributes is inNonKeyAttributes
. -
ALL
- All of the table attributes are projected into the index.
-
-
NonKeyAttributes
- A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided inNonKeyAttributes
, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.
-
-
ProvisionedThroughput
- The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasGlobalSecondaryIndexes()
method.- Returns:
- One or more global secondary indexes (the maximum is 20) to be created on the table. Each global
secondary index in the array includes the following:
-
IndexName
- The name of the global secondary index. Must be unique only for this table. -
KeySchema
- Specifies the key schema for the global secondary index. -
Projection
- Specifies attributes that are copied (projected) from the table into the index. These are in addition to the primary key attributes and index key attributes, which are automatically projected. Each attribute specification is composed of:-
ProjectionType
- One of the following:-
KEYS_ONLY
- Only the index and primary keys are projected into the index. -
INCLUDE
- Only the specified table attributes are projected into the index. The list of projected attributes is inNonKeyAttributes
. -
ALL
- All of the table attributes are projected into the index.
-
-
NonKeyAttributes
- A list of one or more non-key attribute names that are projected into the secondary index. The total count of attributes provided inNonKeyAttributes
, summed across all of the secondary indexes, must not exceed 100. If you project the same attribute into two different indexes, this counts as two distinct attributes when determining the total.
-
-
ProvisionedThroughput
- The provisioned throughput settings for the global secondary index, consisting of read and write capacity units.
-
-
-
billingMode
public final BillingMode billingMode()
Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.
-
PROVISIONED
- We recommend usingPROVISIONED
for predictable workloads.PROVISIONED
sets the billing mode to Provisioned capacity mode. -
PAY_PER_REQUEST
- We recommend usingPAY_PER_REQUEST
for unpredictable workloads.PAY_PER_REQUEST
sets the billing mode to On-demand capacity mode.
If the service returns an enum value that is not available in the current SDK version,
billingMode
will returnBillingMode.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available frombillingModeAsString()
.- Returns:
- Controls how you are charged for read and write throughput and how you manage capacity. This setting can
be changed later.
-
PROVISIONED
- We recommend usingPROVISIONED
for predictable workloads.PROVISIONED
sets the billing mode to Provisioned capacity mode. -
PAY_PER_REQUEST
- We recommend usingPAY_PER_REQUEST
for unpredictable workloads.PAY_PER_REQUEST
sets the billing mode to On-demand capacity mode.
-
- See Also:
BillingMode
-
-
billingModeAsString
public final String billingModeAsString()
Controls how you are charged for read and write throughput and how you manage capacity. This setting can be changed later.
-
PROVISIONED
- We recommend usingPROVISIONED
for predictable workloads.PROVISIONED
sets the billing mode to Provisioned capacity mode. -
PAY_PER_REQUEST
- We recommend usingPAY_PER_REQUEST
for unpredictable workloads.PAY_PER_REQUEST
sets the billing mode to On-demand capacity mode.
If the service returns an enum value that is not available in the current SDK version,
billingMode
will returnBillingMode.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available frombillingModeAsString()
.- Returns:
- Controls how you are charged for read and write throughput and how you manage capacity. This setting can
be changed later.
-
PROVISIONED
- We recommend usingPROVISIONED
for predictable workloads.PROVISIONED
sets the billing mode to Provisioned capacity mode. -
PAY_PER_REQUEST
- We recommend usingPAY_PER_REQUEST
for unpredictable workloads.PAY_PER_REQUEST
sets the billing mode to On-demand capacity mode.
-
- See Also:
BillingMode
-
-
provisionedThroughput
public final ProvisionedThroughput provisionedThroughput()
Represents the provisioned throughput settings for a specified table or index. The settings can be modified using the
UpdateTable
operation.If you set BillingMode as
PROVISIONED
, you must specify this property. If you set BillingMode asPAY_PER_REQUEST
, you cannot specify this property.For current minimum and maximum provisioned throughput values, see Service, Account, and Table Quotas in the Amazon DynamoDB Developer Guide.
- Returns:
- Represents the provisioned throughput settings for a specified table or index. The settings can be
modified using the
UpdateTable
operation.If you set BillingMode as
PROVISIONED
, you must specify this property. If you set BillingMode asPAY_PER_REQUEST
, you cannot specify this property.For current minimum and maximum provisioned throughput values, see Service, Account, and Table Quotas in the Amazon DynamoDB Developer Guide.
-
streamSpecification
public final StreamSpecification streamSpecification()
The settings for DynamoDB Streams on the table. These settings consist of:
-
StreamEnabled
- Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false). -
StreamViewType
- When an item in the table is modified,StreamViewType
determines what information is written to the table's stream. Valid values forStreamViewType
are:-
KEYS_ONLY
- Only the key attributes of the modified item are written to the stream. -
NEW_IMAGE
- The entire item, as it appears after it was modified, is written to the stream. -
OLD_IMAGE
- The entire item, as it appeared before it was modified, is written to the stream. -
NEW_AND_OLD_IMAGES
- Both the new and the old item images of the item are written to the stream.
-
- Returns:
- The settings for DynamoDB Streams on the table. These settings consist of:
-
StreamEnabled
- Indicates whether DynamoDB Streams is to be enabled (true) or disabled (false). -
StreamViewType
- When an item in the table is modified,StreamViewType
determines what information is written to the table's stream. Valid values forStreamViewType
are:-
KEYS_ONLY
- Only the key attributes of the modified item are written to the stream. -
NEW_IMAGE
- The entire item, as it appears after it was modified, is written to the stream. -
OLD_IMAGE
- The entire item, as it appeared before it was modified, is written to the stream. -
NEW_AND_OLD_IMAGES
- Both the new and the old item images of the item are written to the stream.
-
-
-
-
sseSpecification
public final SSESpecification sseSpecification()
Represents the settings used to enable server-side encryption.
- Returns:
- Represents the settings used to enable server-side encryption.
-
hasTags
public final boolean hasTags()
For responses, this returns true if the service returned a value for the Tags property. This DOES NOT check that the value is non-empty (for which, you should check theisEmpty()
method on the property). This is useful because the SDK will never return a null collection or map, but you may need to differentiate between the service returning nothing (or null) and the service returning an empty collection or map. For requests, this returns true if a value for the property was specified in the request builder, and false if a value was not specified.
-
tags
public final List<Tag> tags()
A list of key-value pairs to label the table. For more information, see Tagging for DynamoDB.
Attempts to modify the collection returned by this method will result in an UnsupportedOperationException.
This method will never return null. If you would like to know whether the service returned this field (so that you can differentiate between null and empty), you can use the
hasTags()
method.- Returns:
- A list of key-value pairs to label the table. For more information, see Tagging for DynamoDB.
-
tableClass
public final TableClass tableClass()
The table class of the new table. Valid values are
STANDARD
andSTANDARD_INFREQUENT_ACCESS
.If the service returns an enum value that is not available in the current SDK version,
tableClass
will returnTableClass.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromtableClassAsString()
.- Returns:
- The table class of the new table. Valid values are
STANDARD
andSTANDARD_INFREQUENT_ACCESS
. - See Also:
TableClass
-
tableClassAsString
public final String tableClassAsString()
The table class of the new table. Valid values are
STANDARD
andSTANDARD_INFREQUENT_ACCESS
.If the service returns an enum value that is not available in the current SDK version,
tableClass
will returnTableClass.UNKNOWN_TO_SDK_VERSION
. The raw value returned by the service is available fromtableClassAsString()
.- Returns:
- The table class of the new table. Valid values are
STANDARD
andSTANDARD_INFREQUENT_ACCESS
. - See Also:
TableClass
-
deletionProtectionEnabled
public final Boolean deletionProtectionEnabled()
Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table.
- Returns:
- Indicates whether deletion protection is to be enabled (true) or disabled (false) on the table.
-
resourcePolicy
public final String resourcePolicy()
An Amazon Web Services resource-based policy document in JSON format that will be attached to the table.
When you attach a resource-based policy while creating a table, the policy application is strongly consistent.
The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that apply for resource-based policies, see Resource-based policy considerations.
You need to specify the
CreateTable
andPutResourcePolicy
IAM actions for authorizing a user to create a table with a resource-based policy.- Returns:
- An Amazon Web Services resource-based policy document in JSON format that will be attached to the
table.
When you attach a resource-based policy while creating a table, the policy application is strongly consistent.
The maximum size supported for a resource-based policy document is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit. For a full list of all considerations that apply for resource-based policies, see Resource-based policy considerations.
You need to specify the
CreateTable
andPutResourcePolicy
IAM actions for authorizing a user to create a table with a resource-based policy.
-
onDemandThroughput
public final OnDemandThroughput onDemandThroughput()
Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If you use this parameter, you must specify
MaxReadRequestUnits
,MaxWriteRequestUnits
, or both.- Returns:
- Sets the maximum number of read and write units for the specified table in on-demand capacity mode. If
you use this parameter, you must specify
MaxReadRequestUnits
,MaxWriteRequestUnits
, or both.
-
toBuilder
public CreateTableRequest.Builder toBuilder()
- Specified by:
toBuilder
in interfaceToCopyableBuilder<CreateTableRequest.Builder,CreateTableRequest>
- Specified by:
toBuilder
in classDynamoDbRequest
-
builder
public static CreateTableRequest.Builder builder()
-
serializableBuilderClass
public static Class<? extends CreateTableRequest.Builder> serializableBuilderClass()
-
hashCode
public final int hashCode()
- Overrides:
hashCode
in classAwsRequest
-
equals
public final boolean equals(Object obj)
- Overrides:
equals
in classAwsRequest
-
equalsBySdkFields
public final boolean equalsBySdkFields(Object obj)
- Specified by:
equalsBySdkFields
in interfaceSdkPojo
-
toString
public final String toString()
Returns a string representation of this object. This is useful for testing and debugging. Sensitive data will be redacted from this string using a placeholder value.
-
getValueForField
public final <T> Optional<T> getValueForField(String fieldName, Class<T> clazz)
- Overrides:
getValueForField
in classSdkRequest
-
-