1 /** 2 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. 3 * SPDX-License-Identifier: Apache-2.0. 4 */ 5 6 #pragma once 7 #include <aws/dynamodb/DynamoDB_EXPORTS.h> 8 #include <aws/dynamodb/DynamoDBRequest.h> 9 #include <aws/core/utils/memory/stl/AWSVector.h> 10 #include <aws/core/utils/memory/stl/AWSString.h> 11 #include <aws/dynamodb/model/BillingMode.h> 12 #include <aws/dynamodb/model/ProvisionedThroughput.h> 13 #include <aws/dynamodb/model/StreamSpecification.h> 14 #include <aws/dynamodb/model/SSESpecification.h> 15 #include <aws/dynamodb/model/AttributeDefinition.h> 16 #include <aws/dynamodb/model/KeySchemaElement.h> 17 #include <aws/dynamodb/model/LocalSecondaryIndex.h> 18 #include <aws/dynamodb/model/GlobalSecondaryIndex.h> 19 #include <aws/dynamodb/model/Tag.h> 20 #include <utility> 21 22 namespace Aws 23 { 24 namespace DynamoDB 25 { 26 namespace Model 27 { 28 29 /** 30 * <p>Represents the input of a <code>CreateTable</code> operation.</p><p><h3>See 31 * Also:</h3> <a 32 * href="http://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/CreateTableInput">AWS 33 * API Reference</a></p> 34 */ 35 class AWS_DYNAMODB_API CreateTableRequest : public DynamoDBRequest 36 { 37 public: 38 CreateTableRequest(); 39 40 // Service request name is the Operation name which will send this request out, 41 // each operation should has unique request name, so that we can get operation's name from this request. 42 // Note: this is not true for response, multiple operations may have the same response name, 43 // so we can not get operation's name from response. GetServiceRequestName()44 inline virtual const char* GetServiceRequestName() const override { return "CreateTable"; } 45 46 Aws::String SerializePayload() const override; 47 48 Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; 49 50 51 /** 52 * <p>An array of attributes that describe the key schema for the table and 53 * indexes.</p> 54 */ GetAttributeDefinitions()55 inline const Aws::Vector<AttributeDefinition>& GetAttributeDefinitions() const{ return m_attributeDefinitions; } 56 57 /** 58 * <p>An array of attributes that describe the key schema for the table and 59 * indexes.</p> 60 */ AttributeDefinitionsHasBeenSet()61 inline bool AttributeDefinitionsHasBeenSet() const { return m_attributeDefinitionsHasBeenSet; } 62 63 /** 64 * <p>An array of attributes that describe the key schema for the table and 65 * indexes.</p> 66 */ SetAttributeDefinitions(const Aws::Vector<AttributeDefinition> & value)67 inline void SetAttributeDefinitions(const Aws::Vector<AttributeDefinition>& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions = value; } 68 69 /** 70 * <p>An array of attributes that describe the key schema for the table and 71 * indexes.</p> 72 */ SetAttributeDefinitions(Aws::Vector<AttributeDefinition> && value)73 inline void SetAttributeDefinitions(Aws::Vector<AttributeDefinition>&& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions = std::move(value); } 74 75 /** 76 * <p>An array of attributes that describe the key schema for the table and 77 * indexes.</p> 78 */ WithAttributeDefinitions(const Aws::Vector<AttributeDefinition> & value)79 inline CreateTableRequest& WithAttributeDefinitions(const Aws::Vector<AttributeDefinition>& value) { SetAttributeDefinitions(value); return *this;} 80 81 /** 82 * <p>An array of attributes that describe the key schema for the table and 83 * indexes.</p> 84 */ WithAttributeDefinitions(Aws::Vector<AttributeDefinition> && value)85 inline CreateTableRequest& WithAttributeDefinitions(Aws::Vector<AttributeDefinition>&& value) { SetAttributeDefinitions(std::move(value)); return *this;} 86 87 /** 88 * <p>An array of attributes that describe the key schema for the table and 89 * indexes.</p> 90 */ AddAttributeDefinitions(const AttributeDefinition & value)91 inline CreateTableRequest& AddAttributeDefinitions(const AttributeDefinition& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions.push_back(value); return *this; } 92 93 /** 94 * <p>An array of attributes that describe the key schema for the table and 95 * indexes.</p> 96 */ AddAttributeDefinitions(AttributeDefinition && value)97 inline CreateTableRequest& AddAttributeDefinitions(AttributeDefinition&& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions.push_back(std::move(value)); return *this; } 98 99 100 /** 101 * <p>The name of the table to create.</p> 102 */ GetTableName()103 inline const Aws::String& GetTableName() const{ return m_tableName; } 104 105 /** 106 * <p>The name of the table to create.</p> 107 */ TableNameHasBeenSet()108 inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; } 109 110 /** 111 * <p>The name of the table to create.</p> 112 */ SetTableName(const Aws::String & value)113 inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; } 114 115 /** 116 * <p>The name of the table to create.</p> 117 */ SetTableName(Aws::String && value)118 inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); } 119 120 /** 121 * <p>The name of the table to create.</p> 122 */ SetTableName(const char * value)123 inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); } 124 125 /** 126 * <p>The name of the table to create.</p> 127 */ WithTableName(const Aws::String & value)128 inline CreateTableRequest& WithTableName(const Aws::String& value) { SetTableName(value); return *this;} 129 130 /** 131 * <p>The name of the table to create.</p> 132 */ WithTableName(Aws::String && value)133 inline CreateTableRequest& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;} 134 135 /** 136 * <p>The name of the table to create.</p> 137 */ WithTableName(const char * value)138 inline CreateTableRequest& WithTableName(const char* value) { SetTableName(value); return *this;} 139 140 141 /** 142 * <p>Specifies the attributes that make up the primary key for a table or an 143 * index. The attributes in <code>KeySchema</code> must also be defined in the 144 * <code>AttributeDefinitions</code> array. For more information, see <a 145 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data 146 * Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> <p>Each 147 * <code>KeySchemaElement</code> in the array is composed of:</p> <ul> <li> <p> 148 * <code>AttributeName</code> - The name of this key attribute.</p> </li> <li> <p> 149 * <code>KeyType</code> - The role that the key attribute will assume:</p> <ul> 150 * <li> <p> <code>HASH</code> - partition key</p> </li> <li> <p> <code>RANGE</code> 151 * - sort key</p> </li> </ul> </li> </ul> <p>The partition key of an item is 152 * also known as its <i>hash attribute</i>. The term "hash attribute" derives from 153 * the DynamoDB usage of an internal hash function to evenly distribute data items 154 * across partitions, based on their partition key values.</p> <p>The sort key of 155 * an item is also known as its <i>range attribute</i>. The term "range attribute" 156 * derives from the way DynamoDB stores items with the same partition key 157 * physically close together, in sorted order by the sort key value.</p> 158 * <p>For a simple primary key (partition key), you must provide exactly one 159 * element with a <code>KeyType</code> of <code>HASH</code>.</p> <p>For a composite 160 * primary key (partition key and sort key), you must provide exactly two elements, 161 * in this order: The first element must have a <code>KeyType</code> of 162 * <code>HASH</code>, and the second element must have a <code>KeyType</code> of 163 * <code>RANGE</code>.</p> <p>For more information, see <a 164 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working 165 * with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 166 */ GetKeySchema()167 inline const Aws::Vector<KeySchemaElement>& GetKeySchema() const{ return m_keySchema; } 168 169 /** 170 * <p>Specifies the attributes that make up the primary key for a table or an 171 * index. The attributes in <code>KeySchema</code> must also be defined in the 172 * <code>AttributeDefinitions</code> array. For more information, see <a 173 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data 174 * Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> <p>Each 175 * <code>KeySchemaElement</code> in the array is composed of:</p> <ul> <li> <p> 176 * <code>AttributeName</code> - The name of this key attribute.</p> </li> <li> <p> 177 * <code>KeyType</code> - The role that the key attribute will assume:</p> <ul> 178 * <li> <p> <code>HASH</code> - partition key</p> </li> <li> <p> <code>RANGE</code> 179 * - sort key</p> </li> </ul> </li> </ul> <p>The partition key of an item is 180 * also known as its <i>hash attribute</i>. The term "hash attribute" derives from 181 * the DynamoDB usage of an internal hash function to evenly distribute data items 182 * across partitions, based on their partition key values.</p> <p>The sort key of 183 * an item is also known as its <i>range attribute</i>. The term "range attribute" 184 * derives from the way DynamoDB stores items with the same partition key 185 * physically close together, in sorted order by the sort key value.</p> 186 * <p>For a simple primary key (partition key), you must provide exactly one 187 * element with a <code>KeyType</code> of <code>HASH</code>.</p> <p>For a composite 188 * primary key (partition key and sort key), you must provide exactly two elements, 189 * in this order: The first element must have a <code>KeyType</code> of 190 * <code>HASH</code>, and the second element must have a <code>KeyType</code> of 191 * <code>RANGE</code>.</p> <p>For more information, see <a 192 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working 193 * with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 194 */ KeySchemaHasBeenSet()195 inline bool KeySchemaHasBeenSet() const { return m_keySchemaHasBeenSet; } 196 197 /** 198 * <p>Specifies the attributes that make up the primary key for a table or an 199 * index. The attributes in <code>KeySchema</code> must also be defined in the 200 * <code>AttributeDefinitions</code> array. For more information, see <a 201 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data 202 * Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> <p>Each 203 * <code>KeySchemaElement</code> in the array is composed of:</p> <ul> <li> <p> 204 * <code>AttributeName</code> - The name of this key attribute.</p> </li> <li> <p> 205 * <code>KeyType</code> - The role that the key attribute will assume:</p> <ul> 206 * <li> <p> <code>HASH</code> - partition key</p> </li> <li> <p> <code>RANGE</code> 207 * - sort key</p> </li> </ul> </li> </ul> <p>The partition key of an item is 208 * also known as its <i>hash attribute</i>. The term "hash attribute" derives from 209 * the DynamoDB usage of an internal hash function to evenly distribute data items 210 * across partitions, based on their partition key values.</p> <p>The sort key of 211 * an item is also known as its <i>range attribute</i>. The term "range attribute" 212 * derives from the way DynamoDB stores items with the same partition key 213 * physically close together, in sorted order by the sort key value.</p> 214 * <p>For a simple primary key (partition key), you must provide exactly one 215 * element with a <code>KeyType</code> of <code>HASH</code>.</p> <p>For a composite 216 * primary key (partition key and sort key), you must provide exactly two elements, 217 * in this order: The first element must have a <code>KeyType</code> of 218 * <code>HASH</code>, and the second element must have a <code>KeyType</code> of 219 * <code>RANGE</code>.</p> <p>For more information, see <a 220 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working 221 * with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 222 */ SetKeySchema(const Aws::Vector<KeySchemaElement> & value)223 inline void SetKeySchema(const Aws::Vector<KeySchemaElement>& value) { m_keySchemaHasBeenSet = true; m_keySchema = value; } 224 225 /** 226 * <p>Specifies the attributes that make up the primary key for a table or an 227 * index. The attributes in <code>KeySchema</code> must also be defined in the 228 * <code>AttributeDefinitions</code> array. For more information, see <a 229 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data 230 * Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> <p>Each 231 * <code>KeySchemaElement</code> in the array is composed of:</p> <ul> <li> <p> 232 * <code>AttributeName</code> - The name of this key attribute.</p> </li> <li> <p> 233 * <code>KeyType</code> - The role that the key attribute will assume:</p> <ul> 234 * <li> <p> <code>HASH</code> - partition key</p> </li> <li> <p> <code>RANGE</code> 235 * - sort key</p> </li> </ul> </li> </ul> <p>The partition key of an item is 236 * also known as its <i>hash attribute</i>. The term "hash attribute" derives from 237 * the DynamoDB usage of an internal hash function to evenly distribute data items 238 * across partitions, based on their partition key values.</p> <p>The sort key of 239 * an item is also known as its <i>range attribute</i>. The term "range attribute" 240 * derives from the way DynamoDB stores items with the same partition key 241 * physically close together, in sorted order by the sort key value.</p> 242 * <p>For a simple primary key (partition key), you must provide exactly one 243 * element with a <code>KeyType</code> of <code>HASH</code>.</p> <p>For a composite 244 * primary key (partition key and sort key), you must provide exactly two elements, 245 * in this order: The first element must have a <code>KeyType</code> of 246 * <code>HASH</code>, and the second element must have a <code>KeyType</code> of 247 * <code>RANGE</code>.</p> <p>For more information, see <a 248 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working 249 * with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 250 */ SetKeySchema(Aws::Vector<KeySchemaElement> && value)251 inline void SetKeySchema(Aws::Vector<KeySchemaElement>&& value) { m_keySchemaHasBeenSet = true; m_keySchema = std::move(value); } 252 253 /** 254 * <p>Specifies the attributes that make up the primary key for a table or an 255 * index. The attributes in <code>KeySchema</code> must also be defined in the 256 * <code>AttributeDefinitions</code> array. For more information, see <a 257 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data 258 * Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> <p>Each 259 * <code>KeySchemaElement</code> in the array is composed of:</p> <ul> <li> <p> 260 * <code>AttributeName</code> - The name of this key attribute.</p> </li> <li> <p> 261 * <code>KeyType</code> - The role that the key attribute will assume:</p> <ul> 262 * <li> <p> <code>HASH</code> - partition key</p> </li> <li> <p> <code>RANGE</code> 263 * - sort key</p> </li> </ul> </li> </ul> <p>The partition key of an item is 264 * also known as its <i>hash attribute</i>. The term "hash attribute" derives from 265 * the DynamoDB usage of an internal hash function to evenly distribute data items 266 * across partitions, based on their partition key values.</p> <p>The sort key of 267 * an item is also known as its <i>range attribute</i>. The term "range attribute" 268 * derives from the way DynamoDB stores items with the same partition key 269 * physically close together, in sorted order by the sort key value.</p> 270 * <p>For a simple primary key (partition key), you must provide exactly one 271 * element with a <code>KeyType</code> of <code>HASH</code>.</p> <p>For a composite 272 * primary key (partition key and sort key), you must provide exactly two elements, 273 * in this order: The first element must have a <code>KeyType</code> of 274 * <code>HASH</code>, and the second element must have a <code>KeyType</code> of 275 * <code>RANGE</code>.</p> <p>For more information, see <a 276 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working 277 * with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 278 */ WithKeySchema(const Aws::Vector<KeySchemaElement> & value)279 inline CreateTableRequest& WithKeySchema(const Aws::Vector<KeySchemaElement>& value) { SetKeySchema(value); return *this;} 280 281 /** 282 * <p>Specifies the attributes that make up the primary key for a table or an 283 * index. The attributes in <code>KeySchema</code> must also be defined in the 284 * <code>AttributeDefinitions</code> array. For more information, see <a 285 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data 286 * Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> <p>Each 287 * <code>KeySchemaElement</code> in the array is composed of:</p> <ul> <li> <p> 288 * <code>AttributeName</code> - The name of this key attribute.</p> </li> <li> <p> 289 * <code>KeyType</code> - The role that the key attribute will assume:</p> <ul> 290 * <li> <p> <code>HASH</code> - partition key</p> </li> <li> <p> <code>RANGE</code> 291 * - sort key</p> </li> </ul> </li> </ul> <p>The partition key of an item is 292 * also known as its <i>hash attribute</i>. The term "hash attribute" derives from 293 * the DynamoDB usage of an internal hash function to evenly distribute data items 294 * across partitions, based on their partition key values.</p> <p>The sort key of 295 * an item is also known as its <i>range attribute</i>. The term "range attribute" 296 * derives from the way DynamoDB stores items with the same partition key 297 * physically close together, in sorted order by the sort key value.</p> 298 * <p>For a simple primary key (partition key), you must provide exactly one 299 * element with a <code>KeyType</code> of <code>HASH</code>.</p> <p>For a composite 300 * primary key (partition key and sort key), you must provide exactly two elements, 301 * in this order: The first element must have a <code>KeyType</code> of 302 * <code>HASH</code>, and the second element must have a <code>KeyType</code> of 303 * <code>RANGE</code>.</p> <p>For more information, see <a 304 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working 305 * with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 306 */ WithKeySchema(Aws::Vector<KeySchemaElement> && value)307 inline CreateTableRequest& WithKeySchema(Aws::Vector<KeySchemaElement>&& value) { SetKeySchema(std::move(value)); return *this;} 308 309 /** 310 * <p>Specifies the attributes that make up the primary key for a table or an 311 * index. The attributes in <code>KeySchema</code> must also be defined in the 312 * <code>AttributeDefinitions</code> array. For more information, see <a 313 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data 314 * Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> <p>Each 315 * <code>KeySchemaElement</code> in the array is composed of:</p> <ul> <li> <p> 316 * <code>AttributeName</code> - The name of this key attribute.</p> </li> <li> <p> 317 * <code>KeyType</code> - The role that the key attribute will assume:</p> <ul> 318 * <li> <p> <code>HASH</code> - partition key</p> </li> <li> <p> <code>RANGE</code> 319 * - sort key</p> </li> </ul> </li> </ul> <p>The partition key of an item is 320 * also known as its <i>hash attribute</i>. The term "hash attribute" derives from 321 * the DynamoDB usage of an internal hash function to evenly distribute data items 322 * across partitions, based on their partition key values.</p> <p>The sort key of 323 * an item is also known as its <i>range attribute</i>. The term "range attribute" 324 * derives from the way DynamoDB stores items with the same partition key 325 * physically close together, in sorted order by the sort key value.</p> 326 * <p>For a simple primary key (partition key), you must provide exactly one 327 * element with a <code>KeyType</code> of <code>HASH</code>.</p> <p>For a composite 328 * primary key (partition key and sort key), you must provide exactly two elements, 329 * in this order: The first element must have a <code>KeyType</code> of 330 * <code>HASH</code>, and the second element must have a <code>KeyType</code> of 331 * <code>RANGE</code>.</p> <p>For more information, see <a 332 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working 333 * with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 334 */ AddKeySchema(const KeySchemaElement & value)335 inline CreateTableRequest& AddKeySchema(const KeySchemaElement& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(value); return *this; } 336 337 /** 338 * <p>Specifies the attributes that make up the primary key for a table or an 339 * index. The attributes in <code>KeySchema</code> must also be defined in the 340 * <code>AttributeDefinitions</code> array. For more information, see <a 341 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html">Data 342 * Model</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> <p>Each 343 * <code>KeySchemaElement</code> in the array is composed of:</p> <ul> <li> <p> 344 * <code>AttributeName</code> - The name of this key attribute.</p> </li> <li> <p> 345 * <code>KeyType</code> - The role that the key attribute will assume:</p> <ul> 346 * <li> <p> <code>HASH</code> - partition key</p> </li> <li> <p> <code>RANGE</code> 347 * - sort key</p> </li> </ul> </li> </ul> <p>The partition key of an item is 348 * also known as its <i>hash attribute</i>. The term "hash attribute" derives from 349 * the DynamoDB usage of an internal hash function to evenly distribute data items 350 * across partitions, based on their partition key values.</p> <p>The sort key of 351 * an item is also known as its <i>range attribute</i>. The term "range attribute" 352 * derives from the way DynamoDB stores items with the same partition key 353 * physically close together, in sorted order by the sort key value.</p> 354 * <p>For a simple primary key (partition key), you must provide exactly one 355 * element with a <code>KeyType</code> of <code>HASH</code>.</p> <p>For a composite 356 * primary key (partition key and sort key), you must provide exactly two elements, 357 * in this order: The first element must have a <code>KeyType</code> of 358 * <code>HASH</code>, and the second element must have a <code>KeyType</code> of 359 * <code>RANGE</code>.</p> <p>For more information, see <a 360 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html#WorkingWithTables.primary.key">Working 361 * with Tables</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 362 */ AddKeySchema(KeySchemaElement && value)363 inline CreateTableRequest& AddKeySchema(KeySchemaElement&& value) { m_keySchemaHasBeenSet = true; m_keySchema.push_back(std::move(value)); return *this; } 364 365 366 /** 367 * <p>One or more local secondary indexes (the maximum is 5) to be created on the 368 * table. Each index is scoped to a given partition key value. There is a 10 GB 369 * size limit per partition key value; otherwise, the size of a local secondary 370 * index is unconstrained.</p> <p>Each local secondary index in the array includes 371 * the following:</p> <ul> <li> <p> <code>IndexName</code> - The name of the local 372 * secondary index. Must be unique only for this table.</p> <p/> </li> <li> <p> 373 * <code>KeySchema</code> - Specifies the key schema for the local secondary index. 374 * The key schema must begin with the same partition key as the table.</p> </li> 375 * <li> <p> <code>Projection</code> - Specifies attributes that are copied 376 * (projected) from the table into the index. These are in addition to the primary 377 * key attributes and index key attributes, which are automatically projected. Each 378 * attribute specification is composed of:</p> <ul> <li> <p> 379 * <code>ProjectionType</code> - One of the following:</p> <ul> <li> <p> 380 * <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the 381 * index.</p> </li> <li> <p> <code>INCLUDE</code> - Only the specified table 382 * attributes are projected into the index. The list of projected attributes is in 383 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 384 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 385 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 386 * that are projected into the secondary index. The total count of attributes 387 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 388 * indexes, must not exceed 100. If you project the same attribute into two 389 * different indexes, this counts as two distinct attributes when determining the 390 * total.</p> </li> </ul> </li> </ul> 391 */ GetLocalSecondaryIndexes()392 inline const Aws::Vector<LocalSecondaryIndex>& GetLocalSecondaryIndexes() const{ return m_localSecondaryIndexes; } 393 394 /** 395 * <p>One or more local secondary indexes (the maximum is 5) to be created on the 396 * table. Each index is scoped to a given partition key value. There is a 10 GB 397 * size limit per partition key value; otherwise, the size of a local secondary 398 * index is unconstrained.</p> <p>Each local secondary index in the array includes 399 * the following:</p> <ul> <li> <p> <code>IndexName</code> - The name of the local 400 * secondary index. Must be unique only for this table.</p> <p/> </li> <li> <p> 401 * <code>KeySchema</code> - Specifies the key schema for the local secondary index. 402 * The key schema must begin with the same partition key as the table.</p> </li> 403 * <li> <p> <code>Projection</code> - Specifies attributes that are copied 404 * (projected) from the table into the index. These are in addition to the primary 405 * key attributes and index key attributes, which are automatically projected. Each 406 * attribute specification is composed of:</p> <ul> <li> <p> 407 * <code>ProjectionType</code> - One of the following:</p> <ul> <li> <p> 408 * <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the 409 * index.</p> </li> <li> <p> <code>INCLUDE</code> - Only the specified table 410 * attributes are projected into the index. The list of projected attributes is in 411 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 412 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 413 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 414 * that are projected into the secondary index. The total count of attributes 415 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 416 * indexes, must not exceed 100. If you project the same attribute into two 417 * different indexes, this counts as two distinct attributes when determining the 418 * total.</p> </li> </ul> </li> </ul> 419 */ LocalSecondaryIndexesHasBeenSet()420 inline bool LocalSecondaryIndexesHasBeenSet() const { return m_localSecondaryIndexesHasBeenSet; } 421 422 /** 423 * <p>One or more local secondary indexes (the maximum is 5) to be created on the 424 * table. Each index is scoped to a given partition key value. There is a 10 GB 425 * size limit per partition key value; otherwise, the size of a local secondary 426 * index is unconstrained.</p> <p>Each local secondary index in the array includes 427 * the following:</p> <ul> <li> <p> <code>IndexName</code> - The name of the local 428 * secondary index. Must be unique only for this table.</p> <p/> </li> <li> <p> 429 * <code>KeySchema</code> - Specifies the key schema for the local secondary index. 430 * The key schema must begin with the same partition key as the table.</p> </li> 431 * <li> <p> <code>Projection</code> - Specifies attributes that are copied 432 * (projected) from the table into the index. These are in addition to the primary 433 * key attributes and index key attributes, which are automatically projected. Each 434 * attribute specification is composed of:</p> <ul> <li> <p> 435 * <code>ProjectionType</code> - One of the following:</p> <ul> <li> <p> 436 * <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the 437 * index.</p> </li> <li> <p> <code>INCLUDE</code> - Only the specified table 438 * attributes are projected into the index. The list of projected attributes is in 439 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 440 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 441 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 442 * that are projected into the secondary index. The total count of attributes 443 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 444 * indexes, must not exceed 100. If you project the same attribute into two 445 * different indexes, this counts as two distinct attributes when determining the 446 * total.</p> </li> </ul> </li> </ul> 447 */ SetLocalSecondaryIndexes(const Aws::Vector<LocalSecondaryIndex> & value)448 inline void SetLocalSecondaryIndexes(const Aws::Vector<LocalSecondaryIndex>& value) { m_localSecondaryIndexesHasBeenSet = true; m_localSecondaryIndexes = value; } 449 450 /** 451 * <p>One or more local secondary indexes (the maximum is 5) to be created on the 452 * table. Each index is scoped to a given partition key value. There is a 10 GB 453 * size limit per partition key value; otherwise, the size of a local secondary 454 * index is unconstrained.</p> <p>Each local secondary index in the array includes 455 * the following:</p> <ul> <li> <p> <code>IndexName</code> - The name of the local 456 * secondary index. Must be unique only for this table.</p> <p/> </li> <li> <p> 457 * <code>KeySchema</code> - Specifies the key schema for the local secondary index. 458 * The key schema must begin with the same partition key as the table.</p> </li> 459 * <li> <p> <code>Projection</code> - Specifies attributes that are copied 460 * (projected) from the table into the index. These are in addition to the primary 461 * key attributes and index key attributes, which are automatically projected. Each 462 * attribute specification is composed of:</p> <ul> <li> <p> 463 * <code>ProjectionType</code> - One of the following:</p> <ul> <li> <p> 464 * <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the 465 * index.</p> </li> <li> <p> <code>INCLUDE</code> - Only the specified table 466 * attributes are projected into the index. The list of projected attributes is in 467 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 468 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 469 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 470 * that are projected into the secondary index. The total count of attributes 471 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 472 * indexes, must not exceed 100. If you project the same attribute into two 473 * different indexes, this counts as two distinct attributes when determining the 474 * total.</p> </li> </ul> </li> </ul> 475 */ SetLocalSecondaryIndexes(Aws::Vector<LocalSecondaryIndex> && value)476 inline void SetLocalSecondaryIndexes(Aws::Vector<LocalSecondaryIndex>&& value) { m_localSecondaryIndexesHasBeenSet = true; m_localSecondaryIndexes = std::move(value); } 477 478 /** 479 * <p>One or more local secondary indexes (the maximum is 5) to be created on the 480 * table. Each index is scoped to a given partition key value. There is a 10 GB 481 * size limit per partition key value; otherwise, the size of a local secondary 482 * index is unconstrained.</p> <p>Each local secondary index in the array includes 483 * the following:</p> <ul> <li> <p> <code>IndexName</code> - The name of the local 484 * secondary index. Must be unique only for this table.</p> <p/> </li> <li> <p> 485 * <code>KeySchema</code> - Specifies the key schema for the local secondary index. 486 * The key schema must begin with the same partition key as the table.</p> </li> 487 * <li> <p> <code>Projection</code> - Specifies attributes that are copied 488 * (projected) from the table into the index. These are in addition to the primary 489 * key attributes and index key attributes, which are automatically projected. Each 490 * attribute specification is composed of:</p> <ul> <li> <p> 491 * <code>ProjectionType</code> - One of the following:</p> <ul> <li> <p> 492 * <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the 493 * index.</p> </li> <li> <p> <code>INCLUDE</code> - Only the specified table 494 * attributes are projected into the index. The list of projected attributes is in 495 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 496 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 497 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 498 * that are projected into the secondary index. The total count of attributes 499 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 500 * indexes, must not exceed 100. If you project the same attribute into two 501 * different indexes, this counts as two distinct attributes when determining the 502 * total.</p> </li> </ul> </li> </ul> 503 */ WithLocalSecondaryIndexes(const Aws::Vector<LocalSecondaryIndex> & value)504 inline CreateTableRequest& WithLocalSecondaryIndexes(const Aws::Vector<LocalSecondaryIndex>& value) { SetLocalSecondaryIndexes(value); return *this;} 505 506 /** 507 * <p>One or more local secondary indexes (the maximum is 5) to be created on the 508 * table. Each index is scoped to a given partition key value. There is a 10 GB 509 * size limit per partition key value; otherwise, the size of a local secondary 510 * index is unconstrained.</p> <p>Each local secondary index in the array includes 511 * the following:</p> <ul> <li> <p> <code>IndexName</code> - The name of the local 512 * secondary index. Must be unique only for this table.</p> <p/> </li> <li> <p> 513 * <code>KeySchema</code> - Specifies the key schema for the local secondary index. 514 * The key schema must begin with the same partition key as the table.</p> </li> 515 * <li> <p> <code>Projection</code> - Specifies attributes that are copied 516 * (projected) from the table into the index. These are in addition to the primary 517 * key attributes and index key attributes, which are automatically projected. Each 518 * attribute specification is composed of:</p> <ul> <li> <p> 519 * <code>ProjectionType</code> - One of the following:</p> <ul> <li> <p> 520 * <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the 521 * index.</p> </li> <li> <p> <code>INCLUDE</code> - Only the specified table 522 * attributes are projected into the index. The list of projected attributes is in 523 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 524 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 525 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 526 * that are projected into the secondary index. The total count of attributes 527 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 528 * indexes, must not exceed 100. If you project the same attribute into two 529 * different indexes, this counts as two distinct attributes when determining the 530 * total.</p> </li> </ul> </li> </ul> 531 */ WithLocalSecondaryIndexes(Aws::Vector<LocalSecondaryIndex> && value)532 inline CreateTableRequest& WithLocalSecondaryIndexes(Aws::Vector<LocalSecondaryIndex>&& value) { SetLocalSecondaryIndexes(std::move(value)); return *this;} 533 534 /** 535 * <p>One or more local secondary indexes (the maximum is 5) to be created on the 536 * table. Each index is scoped to a given partition key value. There is a 10 GB 537 * size limit per partition key value; otherwise, the size of a local secondary 538 * index is unconstrained.</p> <p>Each local secondary index in the array includes 539 * the following:</p> <ul> <li> <p> <code>IndexName</code> - The name of the local 540 * secondary index. Must be unique only for this table.</p> <p/> </li> <li> <p> 541 * <code>KeySchema</code> - Specifies the key schema for the local secondary index. 542 * The key schema must begin with the same partition key as the table.</p> </li> 543 * <li> <p> <code>Projection</code> - Specifies attributes that are copied 544 * (projected) from the table into the index. These are in addition to the primary 545 * key attributes and index key attributes, which are automatically projected. Each 546 * attribute specification is composed of:</p> <ul> <li> <p> 547 * <code>ProjectionType</code> - One of the following:</p> <ul> <li> <p> 548 * <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the 549 * index.</p> </li> <li> <p> <code>INCLUDE</code> - Only the specified table 550 * attributes are projected into the index. The list of projected attributes is in 551 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 552 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 553 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 554 * that are projected into the secondary index. The total count of attributes 555 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 556 * indexes, must not exceed 100. If you project the same attribute into two 557 * different indexes, this counts as two distinct attributes when determining the 558 * total.</p> </li> </ul> </li> </ul> 559 */ AddLocalSecondaryIndexes(const LocalSecondaryIndex & value)560 inline CreateTableRequest& AddLocalSecondaryIndexes(const LocalSecondaryIndex& value) { m_localSecondaryIndexesHasBeenSet = true; m_localSecondaryIndexes.push_back(value); return *this; } 561 562 /** 563 * <p>One or more local secondary indexes (the maximum is 5) to be created on the 564 * table. Each index is scoped to a given partition key value. There is a 10 GB 565 * size limit per partition key value; otherwise, the size of a local secondary 566 * index is unconstrained.</p> <p>Each local secondary index in the array includes 567 * the following:</p> <ul> <li> <p> <code>IndexName</code> - The name of the local 568 * secondary index. Must be unique only for this table.</p> <p/> </li> <li> <p> 569 * <code>KeySchema</code> - Specifies the key schema for the local secondary index. 570 * The key schema must begin with the same partition key as the table.</p> </li> 571 * <li> <p> <code>Projection</code> - Specifies attributes that are copied 572 * (projected) from the table into the index. These are in addition to the primary 573 * key attributes and index key attributes, which are automatically projected. Each 574 * attribute specification is composed of:</p> <ul> <li> <p> 575 * <code>ProjectionType</code> - One of the following:</p> <ul> <li> <p> 576 * <code>KEYS_ONLY</code> - Only the index and primary keys are projected into the 577 * index.</p> </li> <li> <p> <code>INCLUDE</code> - Only the specified table 578 * attributes are projected into the index. The list of projected attributes is in 579 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 580 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 581 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 582 * that are projected into the secondary index. The total count of attributes 583 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 584 * indexes, must not exceed 100. If you project the same attribute into two 585 * different indexes, this counts as two distinct attributes when determining the 586 * total.</p> </li> </ul> </li> </ul> 587 */ AddLocalSecondaryIndexes(LocalSecondaryIndex && value)588 inline CreateTableRequest& AddLocalSecondaryIndexes(LocalSecondaryIndex&& value) { m_localSecondaryIndexesHasBeenSet = true; m_localSecondaryIndexes.push_back(std::move(value)); return *this; } 589 590 591 /** 592 * <p>One or more global secondary indexes (the maximum is 20) to be created on the 593 * table. Each global secondary index in the array includes the following:</p> <ul> 594 * <li> <p> <code>IndexName</code> - The name of the global secondary index. Must 595 * be unique only for this table.</p> <p/> </li> <li> <p> <code>KeySchema</code> - 596 * Specifies the key schema for the global secondary index.</p> </li> <li> <p> 597 * <code>Projection</code> - Specifies attributes that are copied (projected) from 598 * the table into the index. These are in addition to the primary key attributes 599 * and index key attributes, which are automatically projected. Each attribute 600 * specification is composed of:</p> <ul> <li> <p> <code>ProjectionType</code> - 601 * One of the following:</p> <ul> <li> <p> <code>KEYS_ONLY</code> - Only the index 602 * and primary keys are projected into the index.</p> </li> <li> <p> 603 * <code>INCLUDE</code> - Only the specified table attributes are projected into 604 * the index. The list of projected attributes is in 605 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 606 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 607 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 608 * that are projected into the secondary index. The total count of attributes 609 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 610 * indexes, must not exceed 100. If you project the same attribute into two 611 * different indexes, this counts as two distinct attributes when determining the 612 * total.</p> </li> </ul> </li> <li> <p> <code>ProvisionedThroughput</code> - The 613 * provisioned throughput settings for the global secondary index, consisting of 614 * read and write capacity units.</p> </li> </ul> 615 */ GetGlobalSecondaryIndexes()616 inline const Aws::Vector<GlobalSecondaryIndex>& GetGlobalSecondaryIndexes() const{ return m_globalSecondaryIndexes; } 617 618 /** 619 * <p>One or more global secondary indexes (the maximum is 20) to be created on the 620 * table. Each global secondary index in the array includes the following:</p> <ul> 621 * <li> <p> <code>IndexName</code> - The name of the global secondary index. Must 622 * be unique only for this table.</p> <p/> </li> <li> <p> <code>KeySchema</code> - 623 * Specifies the key schema for the global secondary index.</p> </li> <li> <p> 624 * <code>Projection</code> - Specifies attributes that are copied (projected) from 625 * the table into the index. These are in addition to the primary key attributes 626 * and index key attributes, which are automatically projected. Each attribute 627 * specification is composed of:</p> <ul> <li> <p> <code>ProjectionType</code> - 628 * One of the following:</p> <ul> <li> <p> <code>KEYS_ONLY</code> - Only the index 629 * and primary keys are projected into the index.</p> </li> <li> <p> 630 * <code>INCLUDE</code> - Only the specified table attributes are projected into 631 * the index. The list of projected attributes is in 632 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 633 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 634 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 635 * that are projected into the secondary index. The total count of attributes 636 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 637 * indexes, must not exceed 100. If you project the same attribute into two 638 * different indexes, this counts as two distinct attributes when determining the 639 * total.</p> </li> </ul> </li> <li> <p> <code>ProvisionedThroughput</code> - The 640 * provisioned throughput settings for the global secondary index, consisting of 641 * read and write capacity units.</p> </li> </ul> 642 */ GlobalSecondaryIndexesHasBeenSet()643 inline bool GlobalSecondaryIndexesHasBeenSet() const { return m_globalSecondaryIndexesHasBeenSet; } 644 645 /** 646 * <p>One or more global secondary indexes (the maximum is 20) to be created on the 647 * table. Each global secondary index in the array includes the following:</p> <ul> 648 * <li> <p> <code>IndexName</code> - The name of the global secondary index. Must 649 * be unique only for this table.</p> <p/> </li> <li> <p> <code>KeySchema</code> - 650 * Specifies the key schema for the global secondary index.</p> </li> <li> <p> 651 * <code>Projection</code> - Specifies attributes that are copied (projected) from 652 * the table into the index. These are in addition to the primary key attributes 653 * and index key attributes, which are automatically projected. Each attribute 654 * specification is composed of:</p> <ul> <li> <p> <code>ProjectionType</code> - 655 * One of the following:</p> <ul> <li> <p> <code>KEYS_ONLY</code> - Only the index 656 * and primary keys are projected into the index.</p> </li> <li> <p> 657 * <code>INCLUDE</code> - Only the specified table attributes are projected into 658 * the index. The list of projected attributes is in 659 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 660 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 661 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 662 * that are projected into the secondary index. The total count of attributes 663 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 664 * indexes, must not exceed 100. If you project the same attribute into two 665 * different indexes, this counts as two distinct attributes when determining the 666 * total.</p> </li> </ul> </li> <li> <p> <code>ProvisionedThroughput</code> - The 667 * provisioned throughput settings for the global secondary index, consisting of 668 * read and write capacity units.</p> </li> </ul> 669 */ SetGlobalSecondaryIndexes(const Aws::Vector<GlobalSecondaryIndex> & value)670 inline void SetGlobalSecondaryIndexes(const Aws::Vector<GlobalSecondaryIndex>& value) { m_globalSecondaryIndexesHasBeenSet = true; m_globalSecondaryIndexes = value; } 671 672 /** 673 * <p>One or more global secondary indexes (the maximum is 20) to be created on the 674 * table. Each global secondary index in the array includes the following:</p> <ul> 675 * <li> <p> <code>IndexName</code> - The name of the global secondary index. Must 676 * be unique only for this table.</p> <p/> </li> <li> <p> <code>KeySchema</code> - 677 * Specifies the key schema for the global secondary index.</p> </li> <li> <p> 678 * <code>Projection</code> - Specifies attributes that are copied (projected) from 679 * the table into the index. These are in addition to the primary key attributes 680 * and index key attributes, which are automatically projected. Each attribute 681 * specification is composed of:</p> <ul> <li> <p> <code>ProjectionType</code> - 682 * One of the following:</p> <ul> <li> <p> <code>KEYS_ONLY</code> - Only the index 683 * and primary keys are projected into the index.</p> </li> <li> <p> 684 * <code>INCLUDE</code> - Only the specified table attributes are projected into 685 * the index. The list of projected attributes is in 686 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 687 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 688 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 689 * that are projected into the secondary index. The total count of attributes 690 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 691 * indexes, must not exceed 100. If you project the same attribute into two 692 * different indexes, this counts as two distinct attributes when determining the 693 * total.</p> </li> </ul> </li> <li> <p> <code>ProvisionedThroughput</code> - The 694 * provisioned throughput settings for the global secondary index, consisting of 695 * read and write capacity units.</p> </li> </ul> 696 */ SetGlobalSecondaryIndexes(Aws::Vector<GlobalSecondaryIndex> && value)697 inline void SetGlobalSecondaryIndexes(Aws::Vector<GlobalSecondaryIndex>&& value) { m_globalSecondaryIndexesHasBeenSet = true; m_globalSecondaryIndexes = std::move(value); } 698 699 /** 700 * <p>One or more global secondary indexes (the maximum is 20) to be created on the 701 * table. Each global secondary index in the array includes the following:</p> <ul> 702 * <li> <p> <code>IndexName</code> - The name of the global secondary index. Must 703 * be unique only for this table.</p> <p/> </li> <li> <p> <code>KeySchema</code> - 704 * Specifies the key schema for the global secondary index.</p> </li> <li> <p> 705 * <code>Projection</code> - Specifies attributes that are copied (projected) from 706 * the table into the index. These are in addition to the primary key attributes 707 * and index key attributes, which are automatically projected. Each attribute 708 * specification is composed of:</p> <ul> <li> <p> <code>ProjectionType</code> - 709 * One of the following:</p> <ul> <li> <p> <code>KEYS_ONLY</code> - Only the index 710 * and primary keys are projected into the index.</p> </li> <li> <p> 711 * <code>INCLUDE</code> - Only the specified table attributes are projected into 712 * the index. The list of projected attributes is in 713 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 714 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 715 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 716 * that are projected into the secondary index. The total count of attributes 717 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 718 * indexes, must not exceed 100. If you project the same attribute into two 719 * different indexes, this counts as two distinct attributes when determining the 720 * total.</p> </li> </ul> </li> <li> <p> <code>ProvisionedThroughput</code> - The 721 * provisioned throughput settings for the global secondary index, consisting of 722 * read and write capacity units.</p> </li> </ul> 723 */ WithGlobalSecondaryIndexes(const Aws::Vector<GlobalSecondaryIndex> & value)724 inline CreateTableRequest& WithGlobalSecondaryIndexes(const Aws::Vector<GlobalSecondaryIndex>& value) { SetGlobalSecondaryIndexes(value); return *this;} 725 726 /** 727 * <p>One or more global secondary indexes (the maximum is 20) to be created on the 728 * table. Each global secondary index in the array includes the following:</p> <ul> 729 * <li> <p> <code>IndexName</code> - The name of the global secondary index. Must 730 * be unique only for this table.</p> <p/> </li> <li> <p> <code>KeySchema</code> - 731 * Specifies the key schema for the global secondary index.</p> </li> <li> <p> 732 * <code>Projection</code> - Specifies attributes that are copied (projected) from 733 * the table into the index. These are in addition to the primary key attributes 734 * and index key attributes, which are automatically projected. Each attribute 735 * specification is composed of:</p> <ul> <li> <p> <code>ProjectionType</code> - 736 * One of the following:</p> <ul> <li> <p> <code>KEYS_ONLY</code> - Only the index 737 * and primary keys are projected into the index.</p> </li> <li> <p> 738 * <code>INCLUDE</code> - Only the specified table attributes are projected into 739 * the index. The list of projected attributes is in 740 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 741 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 742 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 743 * that are projected into the secondary index. The total count of attributes 744 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 745 * indexes, must not exceed 100. If you project the same attribute into two 746 * different indexes, this counts as two distinct attributes when determining the 747 * total.</p> </li> </ul> </li> <li> <p> <code>ProvisionedThroughput</code> - The 748 * provisioned throughput settings for the global secondary index, consisting of 749 * read and write capacity units.</p> </li> </ul> 750 */ WithGlobalSecondaryIndexes(Aws::Vector<GlobalSecondaryIndex> && value)751 inline CreateTableRequest& WithGlobalSecondaryIndexes(Aws::Vector<GlobalSecondaryIndex>&& value) { SetGlobalSecondaryIndexes(std::move(value)); return *this;} 752 753 /** 754 * <p>One or more global secondary indexes (the maximum is 20) to be created on the 755 * table. Each global secondary index in the array includes the following:</p> <ul> 756 * <li> <p> <code>IndexName</code> - The name of the global secondary index. Must 757 * be unique only for this table.</p> <p/> </li> <li> <p> <code>KeySchema</code> - 758 * Specifies the key schema for the global secondary index.</p> </li> <li> <p> 759 * <code>Projection</code> - Specifies attributes that are copied (projected) from 760 * the table into the index. These are in addition to the primary key attributes 761 * and index key attributes, which are automatically projected. Each attribute 762 * specification is composed of:</p> <ul> <li> <p> <code>ProjectionType</code> - 763 * One of the following:</p> <ul> <li> <p> <code>KEYS_ONLY</code> - Only the index 764 * and primary keys are projected into the index.</p> </li> <li> <p> 765 * <code>INCLUDE</code> - Only the specified table attributes are projected into 766 * the index. The list of projected attributes is in 767 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 768 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 769 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 770 * that are projected into the secondary index. The total count of attributes 771 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 772 * indexes, must not exceed 100. If you project the same attribute into two 773 * different indexes, this counts as two distinct attributes when determining the 774 * total.</p> </li> </ul> </li> <li> <p> <code>ProvisionedThroughput</code> - The 775 * provisioned throughput settings for the global secondary index, consisting of 776 * read and write capacity units.</p> </li> </ul> 777 */ AddGlobalSecondaryIndexes(const GlobalSecondaryIndex & value)778 inline CreateTableRequest& AddGlobalSecondaryIndexes(const GlobalSecondaryIndex& value) { m_globalSecondaryIndexesHasBeenSet = true; m_globalSecondaryIndexes.push_back(value); return *this; } 779 780 /** 781 * <p>One or more global secondary indexes (the maximum is 20) to be created on the 782 * table. Each global secondary index in the array includes the following:</p> <ul> 783 * <li> <p> <code>IndexName</code> - The name of the global secondary index. Must 784 * be unique only for this table.</p> <p/> </li> <li> <p> <code>KeySchema</code> - 785 * Specifies the key schema for the global secondary index.</p> </li> <li> <p> 786 * <code>Projection</code> - Specifies attributes that are copied (projected) from 787 * the table into the index. These are in addition to the primary key attributes 788 * and index key attributes, which are automatically projected. Each attribute 789 * specification is composed of:</p> <ul> <li> <p> <code>ProjectionType</code> - 790 * One of the following:</p> <ul> <li> <p> <code>KEYS_ONLY</code> - Only the index 791 * and primary keys are projected into the index.</p> </li> <li> <p> 792 * <code>INCLUDE</code> - Only the specified table attributes are projected into 793 * the index. The list of projected attributes is in 794 * <code>NonKeyAttributes</code>.</p> </li> <li> <p> <code>ALL</code> - All of the 795 * table attributes are projected into the index.</p> </li> </ul> </li> <li> <p> 796 * <code>NonKeyAttributes</code> - A list of one or more non-key attribute names 797 * that are projected into the secondary index. The total count of attributes 798 * provided in <code>NonKeyAttributes</code>, summed across all of the secondary 799 * indexes, must not exceed 100. If you project the same attribute into two 800 * different indexes, this counts as two distinct attributes when determining the 801 * total.</p> </li> </ul> </li> <li> <p> <code>ProvisionedThroughput</code> - The 802 * provisioned throughput settings for the global secondary index, consisting of 803 * read and write capacity units.</p> </li> </ul> 804 */ AddGlobalSecondaryIndexes(GlobalSecondaryIndex && value)805 inline CreateTableRequest& AddGlobalSecondaryIndexes(GlobalSecondaryIndex&& value) { m_globalSecondaryIndexesHasBeenSet = true; m_globalSecondaryIndexes.push_back(std::move(value)); return *this; } 806 807 808 /** 809 * <p>Controls how you are charged for read and write throughput and how you manage 810 * capacity. This setting can be changed later.</p> <ul> <li> <p> 811 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 812 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 813 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 814 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 815 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 816 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 817 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 818 * Mode</a>. </p> </li> </ul> 819 */ GetBillingMode()820 inline const BillingMode& GetBillingMode() const{ return m_billingMode; } 821 822 /** 823 * <p>Controls how you are charged for read and write throughput and how you manage 824 * capacity. This setting can be changed later.</p> <ul> <li> <p> 825 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 826 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 827 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 828 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 829 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 830 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 831 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 832 * Mode</a>. </p> </li> </ul> 833 */ BillingModeHasBeenSet()834 inline bool BillingModeHasBeenSet() const { return m_billingModeHasBeenSet; } 835 836 /** 837 * <p>Controls how you are charged for read and write throughput and how you manage 838 * capacity. This setting can be changed later.</p> <ul> <li> <p> 839 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 840 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 841 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 842 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 843 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 844 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 845 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 846 * Mode</a>. </p> </li> </ul> 847 */ SetBillingMode(const BillingMode & value)848 inline void SetBillingMode(const BillingMode& value) { m_billingModeHasBeenSet = true; m_billingMode = value; } 849 850 /** 851 * <p>Controls how you are charged for read and write throughput and how you manage 852 * capacity. This setting can be changed later.</p> <ul> <li> <p> 853 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 854 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 855 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 856 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 857 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 858 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 859 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 860 * Mode</a>. </p> </li> </ul> 861 */ SetBillingMode(BillingMode && value)862 inline void SetBillingMode(BillingMode&& value) { m_billingModeHasBeenSet = true; m_billingMode = std::move(value); } 863 864 /** 865 * <p>Controls how you are charged for read and write throughput and how you manage 866 * capacity. This setting can be changed later.</p> <ul> <li> <p> 867 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 868 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 869 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 870 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 871 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 872 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 873 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 874 * Mode</a>. </p> </li> </ul> 875 */ WithBillingMode(const BillingMode & value)876 inline CreateTableRequest& WithBillingMode(const BillingMode& value) { SetBillingMode(value); return *this;} 877 878 /** 879 * <p>Controls how you are charged for read and write throughput and how you manage 880 * capacity. This setting can be changed later.</p> <ul> <li> <p> 881 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 882 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 883 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 884 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 885 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 886 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 887 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 888 * Mode</a>. </p> </li> </ul> 889 */ WithBillingMode(BillingMode && value)890 inline CreateTableRequest& WithBillingMode(BillingMode&& value) { SetBillingMode(std::move(value)); return *this;} 891 892 893 /** 894 * <p>Represents the provisioned throughput settings for a specified table or 895 * index. The settings can be modified using the <code>UpdateTable</code> 896 * operation.</p> <p> If you set BillingMode as <code>PROVISIONED</code>, you must 897 * specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, 898 * you cannot specify this property.</p> <p>For current minimum and maximum 899 * provisioned throughput values, see <a 900 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, 901 * Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 902 */ GetProvisionedThroughput()903 inline const ProvisionedThroughput& GetProvisionedThroughput() const{ return m_provisionedThroughput; } 904 905 /** 906 * <p>Represents the provisioned throughput settings for a specified table or 907 * index. The settings can be modified using the <code>UpdateTable</code> 908 * operation.</p> <p> If you set BillingMode as <code>PROVISIONED</code>, you must 909 * specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, 910 * you cannot specify this property.</p> <p>For current minimum and maximum 911 * provisioned throughput values, see <a 912 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, 913 * Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 914 */ ProvisionedThroughputHasBeenSet()915 inline bool ProvisionedThroughputHasBeenSet() const { return m_provisionedThroughputHasBeenSet; } 916 917 /** 918 * <p>Represents the provisioned throughput settings for a specified table or 919 * index. The settings can be modified using the <code>UpdateTable</code> 920 * operation.</p> <p> If you set BillingMode as <code>PROVISIONED</code>, you must 921 * specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, 922 * you cannot specify this property.</p> <p>For current minimum and maximum 923 * provisioned throughput values, see <a 924 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, 925 * Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 926 */ SetProvisionedThroughput(const ProvisionedThroughput & value)927 inline void SetProvisionedThroughput(const ProvisionedThroughput& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = value; } 928 929 /** 930 * <p>Represents the provisioned throughput settings for a specified table or 931 * index. The settings can be modified using the <code>UpdateTable</code> 932 * operation.</p> <p> If you set BillingMode as <code>PROVISIONED</code>, you must 933 * specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, 934 * you cannot specify this property.</p> <p>For current minimum and maximum 935 * provisioned throughput values, see <a 936 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, 937 * Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 938 */ SetProvisionedThroughput(ProvisionedThroughput && value)939 inline void SetProvisionedThroughput(ProvisionedThroughput&& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = std::move(value); } 940 941 /** 942 * <p>Represents the provisioned throughput settings for a specified table or 943 * index. The settings can be modified using the <code>UpdateTable</code> 944 * operation.</p> <p> If you set BillingMode as <code>PROVISIONED</code>, you must 945 * specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, 946 * you cannot specify this property.</p> <p>For current minimum and maximum 947 * provisioned throughput values, see <a 948 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, 949 * Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 950 */ WithProvisionedThroughput(const ProvisionedThroughput & value)951 inline CreateTableRequest& WithProvisionedThroughput(const ProvisionedThroughput& value) { SetProvisionedThroughput(value); return *this;} 952 953 /** 954 * <p>Represents the provisioned throughput settings for a specified table or 955 * index. The settings can be modified using the <code>UpdateTable</code> 956 * operation.</p> <p> If you set BillingMode as <code>PROVISIONED</code>, you must 957 * specify this property. If you set BillingMode as <code>PAY_PER_REQUEST</code>, 958 * you cannot specify this property.</p> <p>For current minimum and maximum 959 * provisioned throughput values, see <a 960 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html">Service, 961 * Account, and Table Quotas</a> in the <i>Amazon DynamoDB Developer Guide</i>.</p> 962 */ WithProvisionedThroughput(ProvisionedThroughput && value)963 inline CreateTableRequest& WithProvisionedThroughput(ProvisionedThroughput&& value) { SetProvisionedThroughput(std::move(value)); return *this;} 964 965 966 /** 967 * <p>The settings for DynamoDB Streams on the table. These settings consist 968 * of:</p> <ul> <li> <p> <code>StreamEnabled</code> - Indicates whether DynamoDB 969 * Streams is to be enabled (true) or disabled (false).</p> </li> <li> <p> 970 * <code>StreamViewType</code> - When an item in the table is modified, 971 * <code>StreamViewType</code> determines what information is written to the 972 * table's stream. Valid values for <code>StreamViewType</code> are:</p> <ul> <li> 973 * <p> <code>KEYS_ONLY</code> - Only the key attributes of the modified item are 974 * written to the stream.</p> </li> <li> <p> <code>NEW_IMAGE</code> - The entire 975 * item, as it appears after it was modified, is written to the stream.</p> </li> 976 * <li> <p> <code>OLD_IMAGE</code> - The entire item, as it appeared before it was 977 * modified, is written to the stream.</p> </li> <li> <p> 978 * <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the 979 * item are written to the stream.</p> </li> </ul> </li> </ul> 980 */ GetStreamSpecification()981 inline const StreamSpecification& GetStreamSpecification() const{ return m_streamSpecification; } 982 983 /** 984 * <p>The settings for DynamoDB Streams on the table. These settings consist 985 * of:</p> <ul> <li> <p> <code>StreamEnabled</code> - Indicates whether DynamoDB 986 * Streams is to be enabled (true) or disabled (false).</p> </li> <li> <p> 987 * <code>StreamViewType</code> - When an item in the table is modified, 988 * <code>StreamViewType</code> determines what information is written to the 989 * table's stream. Valid values for <code>StreamViewType</code> are:</p> <ul> <li> 990 * <p> <code>KEYS_ONLY</code> - Only the key attributes of the modified item are 991 * written to the stream.</p> </li> <li> <p> <code>NEW_IMAGE</code> - The entire 992 * item, as it appears after it was modified, is written to the stream.</p> </li> 993 * <li> <p> <code>OLD_IMAGE</code> - The entire item, as it appeared before it was 994 * modified, is written to the stream.</p> </li> <li> <p> 995 * <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the 996 * item are written to the stream.</p> </li> </ul> </li> </ul> 997 */ StreamSpecificationHasBeenSet()998 inline bool StreamSpecificationHasBeenSet() const { return m_streamSpecificationHasBeenSet; } 999 1000 /** 1001 * <p>The settings for DynamoDB Streams on the table. These settings consist 1002 * of:</p> <ul> <li> <p> <code>StreamEnabled</code> - Indicates whether DynamoDB 1003 * Streams is to be enabled (true) or disabled (false).</p> </li> <li> <p> 1004 * <code>StreamViewType</code> - When an item in the table is modified, 1005 * <code>StreamViewType</code> determines what information is written to the 1006 * table's stream. Valid values for <code>StreamViewType</code> are:</p> <ul> <li> 1007 * <p> <code>KEYS_ONLY</code> - Only the key attributes of the modified item are 1008 * written to the stream.</p> </li> <li> <p> <code>NEW_IMAGE</code> - The entire 1009 * item, as it appears after it was modified, is written to the stream.</p> </li> 1010 * <li> <p> <code>OLD_IMAGE</code> - The entire item, as it appeared before it was 1011 * modified, is written to the stream.</p> </li> <li> <p> 1012 * <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the 1013 * item are written to the stream.</p> </li> </ul> </li> </ul> 1014 */ SetStreamSpecification(const StreamSpecification & value)1015 inline void SetStreamSpecification(const StreamSpecification& value) { m_streamSpecificationHasBeenSet = true; m_streamSpecification = value; } 1016 1017 /** 1018 * <p>The settings for DynamoDB Streams on the table. These settings consist 1019 * of:</p> <ul> <li> <p> <code>StreamEnabled</code> - Indicates whether DynamoDB 1020 * Streams is to be enabled (true) or disabled (false).</p> </li> <li> <p> 1021 * <code>StreamViewType</code> - When an item in the table is modified, 1022 * <code>StreamViewType</code> determines what information is written to the 1023 * table's stream. Valid values for <code>StreamViewType</code> are:</p> <ul> <li> 1024 * <p> <code>KEYS_ONLY</code> - Only the key attributes of the modified item are 1025 * written to the stream.</p> </li> <li> <p> <code>NEW_IMAGE</code> - The entire 1026 * item, as it appears after it was modified, is written to the stream.</p> </li> 1027 * <li> <p> <code>OLD_IMAGE</code> - The entire item, as it appeared before it was 1028 * modified, is written to the stream.</p> </li> <li> <p> 1029 * <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the 1030 * item are written to the stream.</p> </li> </ul> </li> </ul> 1031 */ SetStreamSpecification(StreamSpecification && value)1032 inline void SetStreamSpecification(StreamSpecification&& value) { m_streamSpecificationHasBeenSet = true; m_streamSpecification = std::move(value); } 1033 1034 /** 1035 * <p>The settings for DynamoDB Streams on the table. These settings consist 1036 * of:</p> <ul> <li> <p> <code>StreamEnabled</code> - Indicates whether DynamoDB 1037 * Streams is to be enabled (true) or disabled (false).</p> </li> <li> <p> 1038 * <code>StreamViewType</code> - When an item in the table is modified, 1039 * <code>StreamViewType</code> determines what information is written to the 1040 * table's stream. Valid values for <code>StreamViewType</code> are:</p> <ul> <li> 1041 * <p> <code>KEYS_ONLY</code> - Only the key attributes of the modified item are 1042 * written to the stream.</p> </li> <li> <p> <code>NEW_IMAGE</code> - The entire 1043 * item, as it appears after it was modified, is written to the stream.</p> </li> 1044 * <li> <p> <code>OLD_IMAGE</code> - The entire item, as it appeared before it was 1045 * modified, is written to the stream.</p> </li> <li> <p> 1046 * <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the 1047 * item are written to the stream.</p> </li> </ul> </li> </ul> 1048 */ WithStreamSpecification(const StreamSpecification & value)1049 inline CreateTableRequest& WithStreamSpecification(const StreamSpecification& value) { SetStreamSpecification(value); return *this;} 1050 1051 /** 1052 * <p>The settings for DynamoDB Streams on the table. These settings consist 1053 * of:</p> <ul> <li> <p> <code>StreamEnabled</code> - Indicates whether DynamoDB 1054 * Streams is to be enabled (true) or disabled (false).</p> </li> <li> <p> 1055 * <code>StreamViewType</code> - When an item in the table is modified, 1056 * <code>StreamViewType</code> determines what information is written to the 1057 * table's stream. Valid values for <code>StreamViewType</code> are:</p> <ul> <li> 1058 * <p> <code>KEYS_ONLY</code> - Only the key attributes of the modified item are 1059 * written to the stream.</p> </li> <li> <p> <code>NEW_IMAGE</code> - The entire 1060 * item, as it appears after it was modified, is written to the stream.</p> </li> 1061 * <li> <p> <code>OLD_IMAGE</code> - The entire item, as it appeared before it was 1062 * modified, is written to the stream.</p> </li> <li> <p> 1063 * <code>NEW_AND_OLD_IMAGES</code> - Both the new and the old item images of the 1064 * item are written to the stream.</p> </li> </ul> </li> </ul> 1065 */ WithStreamSpecification(StreamSpecification && value)1066 inline CreateTableRequest& WithStreamSpecification(StreamSpecification&& value) { SetStreamSpecification(std::move(value)); return *this;} 1067 1068 1069 /** 1070 * <p>Represents the settings used to enable server-side encryption.</p> 1071 */ GetSSESpecification()1072 inline const SSESpecification& GetSSESpecification() const{ return m_sSESpecification; } 1073 1074 /** 1075 * <p>Represents the settings used to enable server-side encryption.</p> 1076 */ SSESpecificationHasBeenSet()1077 inline bool SSESpecificationHasBeenSet() const { return m_sSESpecificationHasBeenSet; } 1078 1079 /** 1080 * <p>Represents the settings used to enable server-side encryption.</p> 1081 */ SetSSESpecification(const SSESpecification & value)1082 inline void SetSSESpecification(const SSESpecification& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = value; } 1083 1084 /** 1085 * <p>Represents the settings used to enable server-side encryption.</p> 1086 */ SetSSESpecification(SSESpecification && value)1087 inline void SetSSESpecification(SSESpecification&& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = std::move(value); } 1088 1089 /** 1090 * <p>Represents the settings used to enable server-side encryption.</p> 1091 */ WithSSESpecification(const SSESpecification & value)1092 inline CreateTableRequest& WithSSESpecification(const SSESpecification& value) { SetSSESpecification(value); return *this;} 1093 1094 /** 1095 * <p>Represents the settings used to enable server-side encryption.</p> 1096 */ WithSSESpecification(SSESpecification && value)1097 inline CreateTableRequest& WithSSESpecification(SSESpecification&& value) { SetSSESpecification(std::move(value)); return *this;} 1098 1099 1100 /** 1101 * <p>A list of key-value pairs to label the table. For more information, see <a 1102 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging 1103 * for DynamoDB</a>.</p> 1104 */ GetTags()1105 inline const Aws::Vector<Tag>& GetTags() const{ return m_tags; } 1106 1107 /** 1108 * <p>A list of key-value pairs to label the table. For more information, see <a 1109 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging 1110 * for DynamoDB</a>.</p> 1111 */ TagsHasBeenSet()1112 inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } 1113 1114 /** 1115 * <p>A list of key-value pairs to label the table. For more information, see <a 1116 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging 1117 * for DynamoDB</a>.</p> 1118 */ SetTags(const Aws::Vector<Tag> & value)1119 inline void SetTags(const Aws::Vector<Tag>& value) { m_tagsHasBeenSet = true; m_tags = value; } 1120 1121 /** 1122 * <p>A list of key-value pairs to label the table. For more information, see <a 1123 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging 1124 * for DynamoDB</a>.</p> 1125 */ SetTags(Aws::Vector<Tag> && value)1126 inline void SetTags(Aws::Vector<Tag>&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } 1127 1128 /** 1129 * <p>A list of key-value pairs to label the table. For more information, see <a 1130 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging 1131 * for DynamoDB</a>.</p> 1132 */ WithTags(const Aws::Vector<Tag> & value)1133 inline CreateTableRequest& WithTags(const Aws::Vector<Tag>& value) { SetTags(value); return *this;} 1134 1135 /** 1136 * <p>A list of key-value pairs to label the table. For more information, see <a 1137 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging 1138 * for DynamoDB</a>.</p> 1139 */ WithTags(Aws::Vector<Tag> && value)1140 inline CreateTableRequest& WithTags(Aws::Vector<Tag>&& value) { SetTags(std::move(value)); return *this;} 1141 1142 /** 1143 * <p>A list of key-value pairs to label the table. For more information, see <a 1144 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging 1145 * for DynamoDB</a>.</p> 1146 */ AddTags(const Tag & value)1147 inline CreateTableRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } 1148 1149 /** 1150 * <p>A list of key-value pairs to label the table. For more information, see <a 1151 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html">Tagging 1152 * for DynamoDB</a>.</p> 1153 */ AddTags(Tag && value)1154 inline CreateTableRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } 1155 1156 private: 1157 1158 Aws::Vector<AttributeDefinition> m_attributeDefinitions; 1159 bool m_attributeDefinitionsHasBeenSet; 1160 1161 Aws::String m_tableName; 1162 bool m_tableNameHasBeenSet; 1163 1164 Aws::Vector<KeySchemaElement> m_keySchema; 1165 bool m_keySchemaHasBeenSet; 1166 1167 Aws::Vector<LocalSecondaryIndex> m_localSecondaryIndexes; 1168 bool m_localSecondaryIndexesHasBeenSet; 1169 1170 Aws::Vector<GlobalSecondaryIndex> m_globalSecondaryIndexes; 1171 bool m_globalSecondaryIndexesHasBeenSet; 1172 1173 BillingMode m_billingMode; 1174 bool m_billingModeHasBeenSet; 1175 1176 ProvisionedThroughput m_provisionedThroughput; 1177 bool m_provisionedThroughputHasBeenSet; 1178 1179 StreamSpecification m_streamSpecification; 1180 bool m_streamSpecificationHasBeenSet; 1181 1182 SSESpecification m_sSESpecification; 1183 bool m_sSESpecificationHasBeenSet; 1184 1185 Aws::Vector<Tag> m_tags; 1186 bool m_tagsHasBeenSet; 1187 }; 1188 1189 } // namespace Model 1190 } // namespace DynamoDB 1191 } // namespace Aws 1192