/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include Represents the input of a CreateTable
operation.See
* Also:
AWS
* API Reference
An array of attributes that describe the key schema for the table and * indexes.
*/ inline const Aws::VectorAn array of attributes that describe the key schema for the table and * indexes.
*/ inline bool AttributeDefinitionsHasBeenSet() const { return m_attributeDefinitionsHasBeenSet; } /** *An array of attributes that describe the key schema for the table and * indexes.
*/ inline void SetAttributeDefinitions(const Aws::VectorAn array of attributes that describe the key schema for the table and * indexes.
*/ inline void SetAttributeDefinitions(Aws::VectorAn array of attributes that describe the key schema for the table and * indexes.
*/ inline CreateTableRequest& WithAttributeDefinitions(const Aws::VectorAn array of attributes that describe the key schema for the table and * indexes.
*/ inline CreateTableRequest& WithAttributeDefinitions(Aws::VectorAn array of attributes that describe the key schema for the table and * indexes.
*/ inline CreateTableRequest& AddAttributeDefinitions(const AttributeDefinition& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions.push_back(value); return *this; } /** *An array of attributes that describe the key schema for the table and * indexes.
*/ inline CreateTableRequest& AddAttributeDefinitions(AttributeDefinition&& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions.push_back(std::move(value)); return *this; } /** *The name of the table to create.
*/ inline const Aws::String& GetTableName() const{ return m_tableName; } /** *The name of the table to create.
*/ inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; } /** *The name of the table to create.
*/ inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; } /** *The name of the table to create.
*/ inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); } /** *The name of the table to create.
*/ inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); } /** *The name of the table to create.
*/ inline CreateTableRequest& WithTableName(const Aws::String& value) { SetTableName(value); return *this;} /** *The name of the table to create.
*/ inline CreateTableRequest& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;} /** *The name of the table to create.
*/ inline CreateTableRequest& WithTableName(const char* value) { SetTableName(value); return *this;} /** *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:
* 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
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 Working * with Tables in the Amazon DynamoDB Developer Guide.
*/ inline const Aws::VectorSpecifies 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:
* 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
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 Working * with Tables in the Amazon DynamoDB Developer Guide.
*/ inline bool KeySchemaHasBeenSet() const { return m_keySchemaHasBeenSet; } /** *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:
* 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
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 Working * with Tables in the Amazon DynamoDB Developer Guide.
*/ inline void SetKeySchema(const Aws::VectorSpecifies 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:
* 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
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 Working * with Tables in the Amazon DynamoDB Developer Guide.
*/ inline void SetKeySchema(Aws::VectorSpecifies 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:
* 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
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 Working * with Tables in the Amazon DynamoDB Developer Guide.
*/ inline CreateTableRequest& WithKeySchema(const Aws::VectorSpecifies 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:
* 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
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 Working * with Tables in the Amazon DynamoDB Developer Guide.
*/ inline CreateTableRequest& WithKeySchema(Aws::VectorSpecifies 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:
* 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
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 Working * with Tables in the Amazon DynamoDB Developer Guide.
*/ inline CreateTableRequest& AddKeySchema(const KeySchemaElement& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(value); return *this; } /** *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:
* 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
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 Working * with Tables in the Amazon DynamoDB Developer Guide.
*/ inline CreateTableRequest& AddKeySchema(KeySchemaElement&& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(std::move(value)); return *this; } /** *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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
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 in
* NonKeyAttributes
.
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 in NonKeyAttributes
, 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.
Controls how you are charged for read and write throughput and how you manage * capacity. This setting can be changed later.
* PROVISIONED
- We recommend using PROVISIONED
for
* predictable workloads. PROVISIONED
sets the billing mode to Provisioned
* Mode.
PAY_PER_REQUEST
- We recommend using
* PAY_PER_REQUEST
for unpredictable workloads.
* PAY_PER_REQUEST
sets the billing mode to On-Demand
* Mode.
Controls how you are charged for read and write throughput and how you manage * capacity. This setting can be changed later.
* PROVISIONED
- We recommend using PROVISIONED
for
* predictable workloads. PROVISIONED
sets the billing mode to Provisioned
* Mode.
PAY_PER_REQUEST
- We recommend using
* PAY_PER_REQUEST
for unpredictable workloads.
* PAY_PER_REQUEST
sets the billing mode to On-Demand
* Mode.
Controls how you are charged for read and write throughput and how you manage * capacity. This setting can be changed later.
* PROVISIONED
- We recommend using PROVISIONED
for
* predictable workloads. PROVISIONED
sets the billing mode to Provisioned
* Mode.
PAY_PER_REQUEST
- We recommend using
* PAY_PER_REQUEST
for unpredictable workloads.
* PAY_PER_REQUEST
sets the billing mode to On-Demand
* Mode.
Controls how you are charged for read and write throughput and how you manage * capacity. This setting can be changed later.
* PROVISIONED
- We recommend using PROVISIONED
for
* predictable workloads. PROVISIONED
sets the billing mode to Provisioned
* Mode.
PAY_PER_REQUEST
- We recommend using
* PAY_PER_REQUEST
for unpredictable workloads.
* PAY_PER_REQUEST
sets the billing mode to On-Demand
* Mode.
Controls how you are charged for read and write throughput and how you manage * capacity. This setting can be changed later.
* PROVISIONED
- We recommend using PROVISIONED
for
* predictable workloads. PROVISIONED
sets the billing mode to Provisioned
* Mode.
PAY_PER_REQUEST
- We recommend using
* PAY_PER_REQUEST
for unpredictable workloads.
* PAY_PER_REQUEST
sets the billing mode to On-Demand
* Mode.
Controls how you are charged for read and write throughput and how you manage * capacity. This setting can be changed later.
* PROVISIONED
- We recommend using PROVISIONED
for
* predictable workloads. PROVISIONED
sets the billing mode to Provisioned
* Mode.
PAY_PER_REQUEST
- We recommend using
* PAY_PER_REQUEST
for unpredictable workloads.
* PAY_PER_REQUEST
sets the billing mode to On-Demand
* Mode.
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 as PAY_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.
*/ inline const ProvisionedThroughput& GetProvisionedThroughput() const{ return m_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 as PAY_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.
*/ inline bool ProvisionedThroughputHasBeenSet() const { return m_provisionedThroughputHasBeenSet; } /** *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 as PAY_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.
*/ inline void SetProvisionedThroughput(const ProvisionedThroughput& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = value; } /** *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 as PAY_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.
*/ inline void SetProvisionedThroughput(ProvisionedThroughput&& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = std::move(value); } /** *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 as PAY_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.
*/ inline CreateTableRequest& WithProvisionedThroughput(const ProvisionedThroughput& value) { SetProvisionedThroughput(value); return *this;} /** *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 as PAY_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.
*/ inline CreateTableRequest& WithProvisionedThroughput(ProvisionedThroughput&& value) { SetProvisionedThroughput(std::move(value)); return *this;} /** *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 for StreamViewType
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.
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 for StreamViewType
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.
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 for StreamViewType
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.
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 for StreamViewType
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.
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 for StreamViewType
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.
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 for StreamViewType
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.
Represents the settings used to enable server-side encryption.
*/ inline const SSESpecification& GetSSESpecification() const{ return m_sSESpecification; } /** *Represents the settings used to enable server-side encryption.
*/ inline bool SSESpecificationHasBeenSet() const { return m_sSESpecificationHasBeenSet; } /** *Represents the settings used to enable server-side encryption.
*/ inline void SetSSESpecification(const SSESpecification& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = value; } /** *Represents the settings used to enable server-side encryption.
*/ inline void SetSSESpecification(SSESpecification&& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = std::move(value); } /** *Represents the settings used to enable server-side encryption.
*/ inline CreateTableRequest& WithSSESpecification(const SSESpecification& value) { SetSSESpecification(value); return *this;} /** *Represents the settings used to enable server-side encryption.
*/ inline CreateTableRequest& WithSSESpecification(SSESpecification&& value) { SetSSESpecification(std::move(value)); return *this;} /** *A list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.
*/ inline const Aws::VectorA list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.
*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *A list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.
*/ inline void SetTags(const Aws::VectorA list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.
*/ inline void SetTags(Aws::VectorA list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.
*/ inline CreateTableRequest& WithTags(const Aws::VectorA list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.
*/ inline CreateTableRequest& WithTags(Aws::VectorA list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.
*/ inline CreateTableRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *A list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.
*/ inline CreateTableRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *The table class of the new table. Valid values are STANDARD
and
* STANDARD_INFREQUENT_ACCESS
.
The table class of the new table. Valid values are STANDARD
and
* STANDARD_INFREQUENT_ACCESS
.
The table class of the new table. Valid values are STANDARD
and
* STANDARD_INFREQUENT_ACCESS
.
The table class of the new table. Valid values are STANDARD
and
* STANDARD_INFREQUENT_ACCESS
.
The table class of the new table. Valid values are STANDARD
and
* STANDARD_INFREQUENT_ACCESS
.
The table class of the new table. Valid values are STANDARD
and
* STANDARD_INFREQUENT_ACCESS
.
Indicates whether deletion protection is to be enabled (true) or disabled * (false) on the table.
*/ inline bool GetDeletionProtectionEnabled() const{ return m_deletionProtectionEnabled; } /** *Indicates whether deletion protection is to be enabled (true) or disabled * (false) on the table.
*/ inline bool DeletionProtectionEnabledHasBeenSet() const { return m_deletionProtectionEnabledHasBeenSet; } /** *Indicates whether deletion protection is to be enabled (true) or disabled * (false) on the table.
*/ inline void SetDeletionProtectionEnabled(bool value) { m_deletionProtectionEnabledHasBeenSet = true; m_deletionProtectionEnabled = value; } /** *Indicates whether deletion protection is to be enabled (true) or disabled * (false) on the table.
*/ inline CreateTableRequest& WithDeletionProtectionEnabled(bool value) { SetDeletionProtectionEnabled(value); return *this;} private: Aws::Vector