/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace DynamoDB { namespace Model { /** *

Represents the input of a CreateTable operation.

See * Also:

AWS * API Reference

*/ class CreateTableRequest : public DynamoDBRequest { public: AWS_DYNAMODB_API CreateTableRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "CreateTable"; } AWS_DYNAMODB_API Aws::String SerializePayload() const override; AWS_DYNAMODB_API Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; /** *

An array of attributes that describe the key schema for the table and * indexes.

*/ inline const Aws::Vector& GetAttributeDefinitions() const{ return m_attributeDefinitions; } /** *

An 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::Vector& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions = value; } /** *

An array of attributes that describe the key schema for the table and * indexes.

*/ inline void SetAttributeDefinitions(Aws::Vector&& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions = std::move(value); } /** *

An array of attributes that describe the key schema for the table and * indexes.

*/ inline CreateTableRequest& WithAttributeDefinitions(const Aws::Vector& value) { SetAttributeDefinitions(value); return *this;} /** *

An array of attributes that describe the key schema for the table and * indexes.

*/ inline CreateTableRequest& WithAttributeDefinitions(Aws::Vector&& value) { SetAttributeDefinitions(std::move(value)); return *this;} /** *

An 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::Vector& GetKeySchema() const{ return m_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 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::Vector& value) { m_keySchemaHasBeenSet = true; m_keySchema = value; } /** *

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(Aws::Vector&& value) { m_keySchemaHasBeenSet = true; m_keySchema = std::move(value); } /** *

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& WithKeySchema(const Aws::Vector& value) { SetKeySchema(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& WithKeySchema(Aws::Vector&& value) { SetKeySchema(std::move(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(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.

*/ inline const Aws::Vector& GetLocalSecondaryIndexes() const{ return m_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 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.

*/ inline bool LocalSecondaryIndexesHasBeenSet() const { return m_localSecondaryIndexesHasBeenSet; } /** *

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.

*/ inline void SetLocalSecondaryIndexes(const Aws::Vector& value) { m_localSecondaryIndexesHasBeenSet = true; m_localSecondaryIndexes = value; } /** *

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.

*/ inline void SetLocalSecondaryIndexes(Aws::Vector&& value) { m_localSecondaryIndexesHasBeenSet = true; m_localSecondaryIndexes = std::move(value); } /** *

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.

*/ inline CreateTableRequest& WithLocalSecondaryIndexes(const Aws::Vector& value) { SetLocalSecondaryIndexes(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.

*/ inline CreateTableRequest& WithLocalSecondaryIndexes(Aws::Vector&& value) { SetLocalSecondaryIndexes(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.

*/ inline CreateTableRequest& AddLocalSecondaryIndexes(const LocalSecondaryIndex& value) { m_localSecondaryIndexesHasBeenSet = true; m_localSecondaryIndexes.push_back(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.

*/ inline CreateTableRequest& AddLocalSecondaryIndexes(LocalSecondaryIndex&& value) { m_localSecondaryIndexesHasBeenSet = true; m_localSecondaryIndexes.push_back(std::move(value)); return *this; } /** *

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.

*/ inline const Aws::Vector& GetGlobalSecondaryIndexes() const{ return m_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 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.

*/ inline bool GlobalSecondaryIndexesHasBeenSet() const { return m_globalSecondaryIndexesHasBeenSet; } /** *

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.

*/ inline void SetGlobalSecondaryIndexes(const Aws::Vector& value) { m_globalSecondaryIndexesHasBeenSet = true; m_globalSecondaryIndexes = value; } /** *

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.

*/ inline void SetGlobalSecondaryIndexes(Aws::Vector&& value) { m_globalSecondaryIndexesHasBeenSet = true; m_globalSecondaryIndexes = std::move(value); } /** *

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.

*/ inline CreateTableRequest& WithGlobalSecondaryIndexes(const Aws::Vector& value) { SetGlobalSecondaryIndexes(value); return *this;} /** *

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.

*/ inline CreateTableRequest& WithGlobalSecondaryIndexes(Aws::Vector&& value) { SetGlobalSecondaryIndexes(std::move(value)); return *this;} /** *

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.

*/ inline CreateTableRequest& AddGlobalSecondaryIndexes(const GlobalSecondaryIndex& value) { m_globalSecondaryIndexesHasBeenSet = true; m_globalSecondaryIndexes.push_back(value); return *this; } /** *

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.

*/ inline CreateTableRequest& AddGlobalSecondaryIndexes(GlobalSecondaryIndex&& value) { m_globalSecondaryIndexesHasBeenSet = true; m_globalSecondaryIndexes.push_back(std::move(value)); return *this; } /** *

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.

*/ inline const BillingMode& GetBillingMode() const{ return m_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 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.

*/ inline bool BillingModeHasBeenSet() const { return m_billingModeHasBeenSet; } /** *

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.

*/ inline void SetBillingMode(const BillingMode& value) { m_billingModeHasBeenSet = true; m_billingMode = value; } /** *

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.

*/ inline void SetBillingMode(BillingMode&& value) { m_billingModeHasBeenSet = true; m_billingMode = std::move(value); } /** *

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.

*/ inline CreateTableRequest& WithBillingMode(const BillingMode& value) { SetBillingMode(value); return *this;} /** *

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.

*/ inline CreateTableRequest& WithBillingMode(BillingMode&& value) { SetBillingMode(std::move(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 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.

*/ inline const StreamSpecification& GetStreamSpecification() const{ return m_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 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.

*/ inline bool StreamSpecificationHasBeenSet() const { return m_streamSpecificationHasBeenSet; } /** *

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.

*/ inline void SetStreamSpecification(const StreamSpecification& value) { m_streamSpecificationHasBeenSet = true; m_streamSpecification = value; } /** *

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.

*/ inline void SetStreamSpecification(StreamSpecification&& value) { m_streamSpecificationHasBeenSet = true; m_streamSpecification = std::move(value); } /** *

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.

*/ inline CreateTableRequest& WithStreamSpecification(const StreamSpecification& value) { SetStreamSpecification(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.

*/ inline CreateTableRequest& WithStreamSpecification(StreamSpecification&& value) { SetStreamSpecification(std::move(value)); return *this;} /** *

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::Vector& GetTags() const{ return m_tags; } /** *

A 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::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.

*/ inline CreateTableRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of key-value pairs to label the table. For more information, see Tagging * for DynamoDB.

*/ inline CreateTableRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A 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.

*/ inline const TableClass& GetTableClass() const{ return m_tableClass; } /** *

The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS.

*/ inline bool TableClassHasBeenSet() const { return m_tableClassHasBeenSet; } /** *

The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS.

*/ inline void SetTableClass(const TableClass& value) { m_tableClassHasBeenSet = true; m_tableClass = value; } /** *

The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS.

*/ inline void SetTableClass(TableClass&& value) { m_tableClassHasBeenSet = true; m_tableClass = std::move(value); } /** *

The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS.

*/ inline CreateTableRequest& WithTableClass(const TableClass& value) { SetTableClass(value); return *this;} /** *

The table class of the new table. Valid values are STANDARD and * STANDARD_INFREQUENT_ACCESS.

*/ inline CreateTableRequest& WithTableClass(TableClass&& value) { SetTableClass(std::move(value)); return *this;} /** *

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 m_attributeDefinitions; bool m_attributeDefinitionsHasBeenSet = false; Aws::String m_tableName; bool m_tableNameHasBeenSet = false; Aws::Vector m_keySchema; bool m_keySchemaHasBeenSet = false; Aws::Vector m_localSecondaryIndexes; bool m_localSecondaryIndexesHasBeenSet = false; Aws::Vector m_globalSecondaryIndexes; bool m_globalSecondaryIndexesHasBeenSet = false; BillingMode m_billingMode; bool m_billingModeHasBeenSet = false; ProvisionedThroughput m_provisionedThroughput; bool m_provisionedThroughputHasBeenSet = false; StreamSpecification m_streamSpecification; bool m_streamSpecificationHasBeenSet = false; SSESpecification m_sSESpecification; bool m_sSESpecificationHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; TableClass m_tableClass; bool m_tableClassHasBeenSet = false; bool m_deletionProtectionEnabled; bool m_deletionProtectionEnabledHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws