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/GlobalSecondaryIndexUpdate.h> 17 #include <aws/dynamodb/model/ReplicationGroupUpdate.h> 18 #include <utility> 19 20 namespace Aws 21 { 22 namespace DynamoDB 23 { 24 namespace Model 25 { 26 27 /** 28 * <p>Represents the input of an <code>UpdateTable</code> operation.</p><p><h3>See 29 * Also:</h3> <a 30 * href="http://docs.aws.amazon.com/goto/WebAPI/dynamodb-2012-08-10/UpdateTableInput">AWS 31 * API Reference</a></p> 32 */ 33 class AWS_DYNAMODB_API UpdateTableRequest : public DynamoDBRequest 34 { 35 public: 36 UpdateTableRequest(); 37 38 // Service request name is the Operation name which will send this request out, 39 // each operation should has unique request name, so that we can get operation's name from this request. 40 // Note: this is not true for response, multiple operations may have the same response name, 41 // so we can not get operation's name from response. GetServiceRequestName()42 inline virtual const char* GetServiceRequestName() const override { return "UpdateTable"; } 43 44 Aws::String SerializePayload() const override; 45 46 Aws::Http::HeaderValueCollection GetRequestSpecificHeaders() const override; 47 48 49 /** 50 * <p>An array of attributes that describe the key schema for the table and 51 * indexes. If you are adding a new global secondary index to the table, 52 * <code>AttributeDefinitions</code> must include the key element(s) of the new 53 * index.</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. If you are adding a new global secondary index to the table, 60 * <code>AttributeDefinitions</code> must include the key element(s) of the new 61 * index.</p> 62 */ AttributeDefinitionsHasBeenSet()63 inline bool AttributeDefinitionsHasBeenSet() const { return m_attributeDefinitionsHasBeenSet; } 64 65 /** 66 * <p>An array of attributes that describe the key schema for the table and 67 * indexes. If you are adding a new global secondary index to the table, 68 * <code>AttributeDefinitions</code> must include the key element(s) of the new 69 * index.</p> 70 */ SetAttributeDefinitions(const Aws::Vector<AttributeDefinition> & value)71 inline void SetAttributeDefinitions(const Aws::Vector<AttributeDefinition>& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions = value; } 72 73 /** 74 * <p>An array of attributes that describe the key schema for the table and 75 * indexes. If you are adding a new global secondary index to the table, 76 * <code>AttributeDefinitions</code> must include the key element(s) of the new 77 * index.</p> 78 */ SetAttributeDefinitions(Aws::Vector<AttributeDefinition> && value)79 inline void SetAttributeDefinitions(Aws::Vector<AttributeDefinition>&& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions = std::move(value); } 80 81 /** 82 * <p>An array of attributes that describe the key schema for the table and 83 * indexes. If you are adding a new global secondary index to the table, 84 * <code>AttributeDefinitions</code> must include the key element(s) of the new 85 * index.</p> 86 */ WithAttributeDefinitions(const Aws::Vector<AttributeDefinition> & value)87 inline UpdateTableRequest& WithAttributeDefinitions(const Aws::Vector<AttributeDefinition>& value) { SetAttributeDefinitions(value); return *this;} 88 89 /** 90 * <p>An array of attributes that describe the key schema for the table and 91 * indexes. If you are adding a new global secondary index to the table, 92 * <code>AttributeDefinitions</code> must include the key element(s) of the new 93 * index.</p> 94 */ WithAttributeDefinitions(Aws::Vector<AttributeDefinition> && value)95 inline UpdateTableRequest& WithAttributeDefinitions(Aws::Vector<AttributeDefinition>&& value) { SetAttributeDefinitions(std::move(value)); return *this;} 96 97 /** 98 * <p>An array of attributes that describe the key schema for the table and 99 * indexes. If you are adding a new global secondary index to the table, 100 * <code>AttributeDefinitions</code> must include the key element(s) of the new 101 * index.</p> 102 */ AddAttributeDefinitions(const AttributeDefinition & value)103 inline UpdateTableRequest& AddAttributeDefinitions(const AttributeDefinition& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions.push_back(value); return *this; } 104 105 /** 106 * <p>An array of attributes that describe the key schema for the table and 107 * indexes. If you are adding a new global secondary index to the table, 108 * <code>AttributeDefinitions</code> must include the key element(s) of the new 109 * index.</p> 110 */ AddAttributeDefinitions(AttributeDefinition && value)111 inline UpdateTableRequest& AddAttributeDefinitions(AttributeDefinition&& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions.push_back(std::move(value)); return *this; } 112 113 114 /** 115 * <p>The name of the table to be updated.</p> 116 */ GetTableName()117 inline const Aws::String& GetTableName() const{ return m_tableName; } 118 119 /** 120 * <p>The name of the table to be updated.</p> 121 */ TableNameHasBeenSet()122 inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; } 123 124 /** 125 * <p>The name of the table to be updated.</p> 126 */ SetTableName(const Aws::String & value)127 inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; } 128 129 /** 130 * <p>The name of the table to be updated.</p> 131 */ SetTableName(Aws::String && value)132 inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); } 133 134 /** 135 * <p>The name of the table to be updated.</p> 136 */ SetTableName(const char * value)137 inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); } 138 139 /** 140 * <p>The name of the table to be updated.</p> 141 */ WithTableName(const Aws::String & value)142 inline UpdateTableRequest& WithTableName(const Aws::String& value) { SetTableName(value); return *this;} 143 144 /** 145 * <p>The name of the table to be updated.</p> 146 */ WithTableName(Aws::String && value)147 inline UpdateTableRequest& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;} 148 149 /** 150 * <p>The name of the table to be updated.</p> 151 */ WithTableName(const char * value)152 inline UpdateTableRequest& WithTableName(const char* value) { SetTableName(value); return *this;} 153 154 155 /** 156 * <p>Controls how you are charged for read and write throughput and how you manage 157 * capacity. When switching from pay-per-request to provisioned capacity, initial 158 * provisioned capacity values must be set. The initial provisioned capacity values 159 * are estimated based on the consumed read and write capacity of your table and 160 * global secondary indexes over the past 30 minutes.</p> <ul> <li> <p> 161 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 162 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 163 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 164 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 165 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 166 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 167 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 168 * Mode</a>. </p> </li> </ul> 169 */ GetBillingMode()170 inline const BillingMode& GetBillingMode() const{ return m_billingMode; } 171 172 /** 173 * <p>Controls how you are charged for read and write throughput and how you manage 174 * capacity. When switching from pay-per-request to provisioned capacity, initial 175 * provisioned capacity values must be set. The initial provisioned capacity values 176 * are estimated based on the consumed read and write capacity of your table and 177 * global secondary indexes over the past 30 minutes.</p> <ul> <li> <p> 178 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 179 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 180 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 181 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 182 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 183 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 184 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 185 * Mode</a>. </p> </li> </ul> 186 */ BillingModeHasBeenSet()187 inline bool BillingModeHasBeenSet() const { return m_billingModeHasBeenSet; } 188 189 /** 190 * <p>Controls how you are charged for read and write throughput and how you manage 191 * capacity. When switching from pay-per-request to provisioned capacity, initial 192 * provisioned capacity values must be set. The initial provisioned capacity values 193 * are estimated based on the consumed read and write capacity of your table and 194 * global secondary indexes over the past 30 minutes.</p> <ul> <li> <p> 195 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 196 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 197 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 198 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 199 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 200 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 201 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 202 * Mode</a>. </p> </li> </ul> 203 */ SetBillingMode(const BillingMode & value)204 inline void SetBillingMode(const BillingMode& value) { m_billingModeHasBeenSet = true; m_billingMode = value; } 205 206 /** 207 * <p>Controls how you are charged for read and write throughput and how you manage 208 * capacity. When switching from pay-per-request to provisioned capacity, initial 209 * provisioned capacity values must be set. The initial provisioned capacity values 210 * are estimated based on the consumed read and write capacity of your table and 211 * global secondary indexes over the past 30 minutes.</p> <ul> <li> <p> 212 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 213 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 214 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 215 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 216 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 217 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 218 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 219 * Mode</a>. </p> </li> </ul> 220 */ SetBillingMode(BillingMode && value)221 inline void SetBillingMode(BillingMode&& value) { m_billingModeHasBeenSet = true; m_billingMode = std::move(value); } 222 223 /** 224 * <p>Controls how you are charged for read and write throughput and how you manage 225 * capacity. When switching from pay-per-request to provisioned capacity, initial 226 * provisioned capacity values must be set. The initial provisioned capacity values 227 * are estimated based on the consumed read and write capacity of your table and 228 * global secondary indexes over the past 30 minutes.</p> <ul> <li> <p> 229 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 230 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 231 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 232 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 233 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 234 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 235 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 236 * Mode</a>. </p> </li> </ul> 237 */ WithBillingMode(const BillingMode & value)238 inline UpdateTableRequest& WithBillingMode(const BillingMode& value) { SetBillingMode(value); return *this;} 239 240 /** 241 * <p>Controls how you are charged for read and write throughput and how you manage 242 * capacity. When switching from pay-per-request to provisioned capacity, initial 243 * provisioned capacity values must be set. The initial provisioned capacity values 244 * are estimated based on the consumed read and write capacity of your table and 245 * global secondary indexes over the past 30 minutes.</p> <ul> <li> <p> 246 * <code>PROVISIONED</code> - We recommend using <code>PROVISIONED</code> for 247 * predictable workloads. <code>PROVISIONED</code> sets the billing mode to <a 248 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.ProvisionedThroughput.Manual">Provisioned 249 * Mode</a>.</p> </li> <li> <p> <code>PAY_PER_REQUEST</code> - We recommend using 250 * <code>PAY_PER_REQUEST</code> for unpredictable workloads. 251 * <code>PAY_PER_REQUEST</code> sets the billing mode to <a 252 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadWriteCapacityMode.html#HowItWorks.OnDemand">On-Demand 253 * Mode</a>. </p> </li> </ul> 254 */ WithBillingMode(BillingMode && value)255 inline UpdateTableRequest& WithBillingMode(BillingMode&& value) { SetBillingMode(std::move(value)); return *this;} 256 257 258 /** 259 * <p>The new provisioned throughput settings for the specified table or index.</p> 260 */ GetProvisionedThroughput()261 inline const ProvisionedThroughput& GetProvisionedThroughput() const{ return m_provisionedThroughput; } 262 263 /** 264 * <p>The new provisioned throughput settings for the specified table or index.</p> 265 */ ProvisionedThroughputHasBeenSet()266 inline bool ProvisionedThroughputHasBeenSet() const { return m_provisionedThroughputHasBeenSet; } 267 268 /** 269 * <p>The new provisioned throughput settings for the specified table or index.</p> 270 */ SetProvisionedThroughput(const ProvisionedThroughput & value)271 inline void SetProvisionedThroughput(const ProvisionedThroughput& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = value; } 272 273 /** 274 * <p>The new provisioned throughput settings for the specified table or index.</p> 275 */ SetProvisionedThroughput(ProvisionedThroughput && value)276 inline void SetProvisionedThroughput(ProvisionedThroughput&& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = std::move(value); } 277 278 /** 279 * <p>The new provisioned throughput settings for the specified table or index.</p> 280 */ WithProvisionedThroughput(const ProvisionedThroughput & value)281 inline UpdateTableRequest& WithProvisionedThroughput(const ProvisionedThroughput& value) { SetProvisionedThroughput(value); return *this;} 282 283 /** 284 * <p>The new provisioned throughput settings for the specified table or index.</p> 285 */ WithProvisionedThroughput(ProvisionedThroughput && value)286 inline UpdateTableRequest& WithProvisionedThroughput(ProvisionedThroughput&& value) { SetProvisionedThroughput(std::move(value)); return *this;} 287 288 289 /** 290 * <p>An array of one or more global secondary indexes for the table. For each 291 * index in the array, you can request one action:</p> <ul> <li> <p> 292 * <code>Create</code> - add a new global secondary index to the table.</p> </li> 293 * <li> <p> <code>Update</code> - modify the provisioned throughput settings of an 294 * existing global secondary index.</p> </li> <li> <p> <code>Delete</code> - remove 295 * a global secondary index from the table.</p> </li> </ul> <p>You can create or 296 * delete only one global secondary index per <code>UpdateTable</code> 297 * operation.</p> <p>For more information, see <a 298 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing 299 * Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p> 300 */ GetGlobalSecondaryIndexUpdates()301 inline const Aws::Vector<GlobalSecondaryIndexUpdate>& GetGlobalSecondaryIndexUpdates() const{ return m_globalSecondaryIndexUpdates; } 302 303 /** 304 * <p>An array of one or more global secondary indexes for the table. For each 305 * index in the array, you can request one action:</p> <ul> <li> <p> 306 * <code>Create</code> - add a new global secondary index to the table.</p> </li> 307 * <li> <p> <code>Update</code> - modify the provisioned throughput settings of an 308 * existing global secondary index.</p> </li> <li> <p> <code>Delete</code> - remove 309 * a global secondary index from the table.</p> </li> </ul> <p>You can create or 310 * delete only one global secondary index per <code>UpdateTable</code> 311 * operation.</p> <p>For more information, see <a 312 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing 313 * Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p> 314 */ GlobalSecondaryIndexUpdatesHasBeenSet()315 inline bool GlobalSecondaryIndexUpdatesHasBeenSet() const { return m_globalSecondaryIndexUpdatesHasBeenSet; } 316 317 /** 318 * <p>An array of one or more global secondary indexes for the table. For each 319 * index in the array, you can request one action:</p> <ul> <li> <p> 320 * <code>Create</code> - add a new global secondary index to the table.</p> </li> 321 * <li> <p> <code>Update</code> - modify the provisioned throughput settings of an 322 * existing global secondary index.</p> </li> <li> <p> <code>Delete</code> - remove 323 * a global secondary index from the table.</p> </li> </ul> <p>You can create or 324 * delete only one global secondary index per <code>UpdateTable</code> 325 * operation.</p> <p>For more information, see <a 326 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing 327 * Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p> 328 */ SetGlobalSecondaryIndexUpdates(const Aws::Vector<GlobalSecondaryIndexUpdate> & value)329 inline void SetGlobalSecondaryIndexUpdates(const Aws::Vector<GlobalSecondaryIndexUpdate>& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates = value; } 330 331 /** 332 * <p>An array of one or more global secondary indexes for the table. For each 333 * index in the array, you can request one action:</p> <ul> <li> <p> 334 * <code>Create</code> - add a new global secondary index to the table.</p> </li> 335 * <li> <p> <code>Update</code> - modify the provisioned throughput settings of an 336 * existing global secondary index.</p> </li> <li> <p> <code>Delete</code> - remove 337 * a global secondary index from the table.</p> </li> </ul> <p>You can create or 338 * delete only one global secondary index per <code>UpdateTable</code> 339 * operation.</p> <p>For more information, see <a 340 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing 341 * Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p> 342 */ SetGlobalSecondaryIndexUpdates(Aws::Vector<GlobalSecondaryIndexUpdate> && value)343 inline void SetGlobalSecondaryIndexUpdates(Aws::Vector<GlobalSecondaryIndexUpdate>&& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates = std::move(value); } 344 345 /** 346 * <p>An array of one or more global secondary indexes for the table. For each 347 * index in the array, you can request one action:</p> <ul> <li> <p> 348 * <code>Create</code> - add a new global secondary index to the table.</p> </li> 349 * <li> <p> <code>Update</code> - modify the provisioned throughput settings of an 350 * existing global secondary index.</p> </li> <li> <p> <code>Delete</code> - remove 351 * a global secondary index from the table.</p> </li> </ul> <p>You can create or 352 * delete only one global secondary index per <code>UpdateTable</code> 353 * operation.</p> <p>For more information, see <a 354 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing 355 * Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p> 356 */ WithGlobalSecondaryIndexUpdates(const Aws::Vector<GlobalSecondaryIndexUpdate> & value)357 inline UpdateTableRequest& WithGlobalSecondaryIndexUpdates(const Aws::Vector<GlobalSecondaryIndexUpdate>& value) { SetGlobalSecondaryIndexUpdates(value); return *this;} 358 359 /** 360 * <p>An array of one or more global secondary indexes for the table. For each 361 * index in the array, you can request one action:</p> <ul> <li> <p> 362 * <code>Create</code> - add a new global secondary index to the table.</p> </li> 363 * <li> <p> <code>Update</code> - modify the provisioned throughput settings of an 364 * existing global secondary index.</p> </li> <li> <p> <code>Delete</code> - remove 365 * a global secondary index from the table.</p> </li> </ul> <p>You can create or 366 * delete only one global secondary index per <code>UpdateTable</code> 367 * operation.</p> <p>For more information, see <a 368 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing 369 * Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p> 370 */ WithGlobalSecondaryIndexUpdates(Aws::Vector<GlobalSecondaryIndexUpdate> && value)371 inline UpdateTableRequest& WithGlobalSecondaryIndexUpdates(Aws::Vector<GlobalSecondaryIndexUpdate>&& value) { SetGlobalSecondaryIndexUpdates(std::move(value)); return *this;} 372 373 /** 374 * <p>An array of one or more global secondary indexes for the table. For each 375 * index in the array, you can request one action:</p> <ul> <li> <p> 376 * <code>Create</code> - add a new global secondary index to the table.</p> </li> 377 * <li> <p> <code>Update</code> - modify the provisioned throughput settings of an 378 * existing global secondary index.</p> </li> <li> <p> <code>Delete</code> - remove 379 * a global secondary index from the table.</p> </li> </ul> <p>You can create or 380 * delete only one global secondary index per <code>UpdateTable</code> 381 * operation.</p> <p>For more information, see <a 382 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing 383 * Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p> 384 */ AddGlobalSecondaryIndexUpdates(const GlobalSecondaryIndexUpdate & value)385 inline UpdateTableRequest& AddGlobalSecondaryIndexUpdates(const GlobalSecondaryIndexUpdate& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates.push_back(value); return *this; } 386 387 /** 388 * <p>An array of one or more global secondary indexes for the table. For each 389 * index in the array, you can request one action:</p> <ul> <li> <p> 390 * <code>Create</code> - add a new global secondary index to the table.</p> </li> 391 * <li> <p> <code>Update</code> - modify the provisioned throughput settings of an 392 * existing global secondary index.</p> </li> <li> <p> <code>Delete</code> - remove 393 * a global secondary index from the table.</p> </li> </ul> <p>You can create or 394 * delete only one global secondary index per <code>UpdateTable</code> 395 * operation.</p> <p>For more information, see <a 396 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.OnlineOps.html">Managing 397 * Global Secondary Indexes</a> in the <i>Amazon DynamoDB Developer Guide</i>. </p> 398 */ AddGlobalSecondaryIndexUpdates(GlobalSecondaryIndexUpdate && value)399 inline UpdateTableRequest& AddGlobalSecondaryIndexUpdates(GlobalSecondaryIndexUpdate&& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates.push_back(std::move(value)); return *this; } 400 401 402 /** 403 * <p>Represents the DynamoDB Streams configuration for the table.</p> 404 * <p>You receive a <code>ResourceInUseException</code> if you try to enable a 405 * stream on a table that already has a stream, or if you try to disable a stream 406 * on a table that doesn't have a stream.</p> 407 */ GetStreamSpecification()408 inline const StreamSpecification& GetStreamSpecification() const{ return m_streamSpecification; } 409 410 /** 411 * <p>Represents the DynamoDB Streams configuration for the table.</p> 412 * <p>You receive a <code>ResourceInUseException</code> if you try to enable a 413 * stream on a table that already has a stream, or if you try to disable a stream 414 * on a table that doesn't have a stream.</p> 415 */ StreamSpecificationHasBeenSet()416 inline bool StreamSpecificationHasBeenSet() const { return m_streamSpecificationHasBeenSet; } 417 418 /** 419 * <p>Represents the DynamoDB Streams configuration for the table.</p> 420 * <p>You receive a <code>ResourceInUseException</code> if you try to enable a 421 * stream on a table that already has a stream, or if you try to disable a stream 422 * on a table that doesn't have a stream.</p> 423 */ SetStreamSpecification(const StreamSpecification & value)424 inline void SetStreamSpecification(const StreamSpecification& value) { m_streamSpecificationHasBeenSet = true; m_streamSpecification = value; } 425 426 /** 427 * <p>Represents the DynamoDB Streams configuration for the table.</p> 428 * <p>You receive a <code>ResourceInUseException</code> if you try to enable a 429 * stream on a table that already has a stream, or if you try to disable a stream 430 * on a table that doesn't have a stream.</p> 431 */ SetStreamSpecification(StreamSpecification && value)432 inline void SetStreamSpecification(StreamSpecification&& value) { m_streamSpecificationHasBeenSet = true; m_streamSpecification = std::move(value); } 433 434 /** 435 * <p>Represents the DynamoDB Streams configuration for the table.</p> 436 * <p>You receive a <code>ResourceInUseException</code> if you try to enable a 437 * stream on a table that already has a stream, or if you try to disable a stream 438 * on a table that doesn't have a stream.</p> 439 */ WithStreamSpecification(const StreamSpecification & value)440 inline UpdateTableRequest& WithStreamSpecification(const StreamSpecification& value) { SetStreamSpecification(value); return *this;} 441 442 /** 443 * <p>Represents the DynamoDB Streams configuration for the table.</p> 444 * <p>You receive a <code>ResourceInUseException</code> if you try to enable a 445 * stream on a table that already has a stream, or if you try to disable a stream 446 * on a table that doesn't have a stream.</p> 447 */ WithStreamSpecification(StreamSpecification && value)448 inline UpdateTableRequest& WithStreamSpecification(StreamSpecification&& value) { SetStreamSpecification(std::move(value)); return *this;} 449 450 451 /** 452 * <p>The new server-side encryption settings for the specified table.</p> 453 */ GetSSESpecification()454 inline const SSESpecification& GetSSESpecification() const{ return m_sSESpecification; } 455 456 /** 457 * <p>The new server-side encryption settings for the specified table.</p> 458 */ SSESpecificationHasBeenSet()459 inline bool SSESpecificationHasBeenSet() const { return m_sSESpecificationHasBeenSet; } 460 461 /** 462 * <p>The new server-side encryption settings for the specified table.</p> 463 */ SetSSESpecification(const SSESpecification & value)464 inline void SetSSESpecification(const SSESpecification& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = value; } 465 466 /** 467 * <p>The new server-side encryption settings for the specified table.</p> 468 */ SetSSESpecification(SSESpecification && value)469 inline void SetSSESpecification(SSESpecification&& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = std::move(value); } 470 471 /** 472 * <p>The new server-side encryption settings for the specified table.</p> 473 */ WithSSESpecification(const SSESpecification & value)474 inline UpdateTableRequest& WithSSESpecification(const SSESpecification& value) { SetSSESpecification(value); return *this;} 475 476 /** 477 * <p>The new server-side encryption settings for the specified table.</p> 478 */ WithSSESpecification(SSESpecification && value)479 inline UpdateTableRequest& WithSSESpecification(SSESpecification&& value) { SetSSESpecification(std::move(value)); return *this;} 480 481 482 /** 483 * <p>A list of replica update actions (create, delete, or update) for the 484 * table.</p> <p>This property only applies to <a 485 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 486 * 2019.11.21</a> of global tables.</p> 487 */ GetReplicaUpdates()488 inline const Aws::Vector<ReplicationGroupUpdate>& GetReplicaUpdates() const{ return m_replicaUpdates; } 489 490 /** 491 * <p>A list of replica update actions (create, delete, or update) for the 492 * table.</p> <p>This property only applies to <a 493 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 494 * 2019.11.21</a> of global tables.</p> 495 */ ReplicaUpdatesHasBeenSet()496 inline bool ReplicaUpdatesHasBeenSet() const { return m_replicaUpdatesHasBeenSet; } 497 498 /** 499 * <p>A list of replica update actions (create, delete, or update) for the 500 * table.</p> <p>This property only applies to <a 501 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 502 * 2019.11.21</a> of global tables.</p> 503 */ SetReplicaUpdates(const Aws::Vector<ReplicationGroupUpdate> & value)504 inline void SetReplicaUpdates(const Aws::Vector<ReplicationGroupUpdate>& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates = value; } 505 506 /** 507 * <p>A list of replica update actions (create, delete, or update) for the 508 * table.</p> <p>This property only applies to <a 509 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 510 * 2019.11.21</a> of global tables.</p> 511 */ SetReplicaUpdates(Aws::Vector<ReplicationGroupUpdate> && value)512 inline void SetReplicaUpdates(Aws::Vector<ReplicationGroupUpdate>&& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates = std::move(value); } 513 514 /** 515 * <p>A list of replica update actions (create, delete, or update) for the 516 * table.</p> <p>This property only applies to <a 517 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 518 * 2019.11.21</a> of global tables.</p> 519 */ WithReplicaUpdates(const Aws::Vector<ReplicationGroupUpdate> & value)520 inline UpdateTableRequest& WithReplicaUpdates(const Aws::Vector<ReplicationGroupUpdate>& value) { SetReplicaUpdates(value); return *this;} 521 522 /** 523 * <p>A list of replica update actions (create, delete, or update) for the 524 * table.</p> <p>This property only applies to <a 525 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 526 * 2019.11.21</a> of global tables.</p> 527 */ WithReplicaUpdates(Aws::Vector<ReplicationGroupUpdate> && value)528 inline UpdateTableRequest& WithReplicaUpdates(Aws::Vector<ReplicationGroupUpdate>&& value) { SetReplicaUpdates(std::move(value)); return *this;} 529 530 /** 531 * <p>A list of replica update actions (create, delete, or update) for the 532 * table.</p> <p>This property only applies to <a 533 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 534 * 2019.11.21</a> of global tables.</p> 535 */ AddReplicaUpdates(const ReplicationGroupUpdate & value)536 inline UpdateTableRequest& AddReplicaUpdates(const ReplicationGroupUpdate& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates.push_back(value); return *this; } 537 538 /** 539 * <p>A list of replica update actions (create, delete, or update) for the 540 * table.</p> <p>This property only applies to <a 541 * href="https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/globaltables.V2.html">Version 542 * 2019.11.21</a> of global tables.</p> 543 */ AddReplicaUpdates(ReplicationGroupUpdate && value)544 inline UpdateTableRequest& AddReplicaUpdates(ReplicationGroupUpdate&& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates.push_back(std::move(value)); return *this; } 545 546 private: 547 548 Aws::Vector<AttributeDefinition> m_attributeDefinitions; 549 bool m_attributeDefinitionsHasBeenSet; 550 551 Aws::String m_tableName; 552 bool m_tableNameHasBeenSet; 553 554 BillingMode m_billingMode; 555 bool m_billingModeHasBeenSet; 556 557 ProvisionedThroughput m_provisionedThroughput; 558 bool m_provisionedThroughputHasBeenSet; 559 560 Aws::Vector<GlobalSecondaryIndexUpdate> m_globalSecondaryIndexUpdates; 561 bool m_globalSecondaryIndexUpdatesHasBeenSet; 562 563 StreamSpecification m_streamSpecification; 564 bool m_streamSpecificationHasBeenSet; 565 566 SSESpecification m_sSESpecification; 567 bool m_sSESpecificationHasBeenSet; 568 569 Aws::Vector<ReplicationGroupUpdate> m_replicaUpdates; 570 bool m_replicaUpdatesHasBeenSet; 571 }; 572 573 } // namespace Model 574 } // namespace DynamoDB 575 } // namespace Aws 576