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

Represents the input of an UpdateTable operation.

See * Also:

AWS * API Reference

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

An array of attributes that describe the key schema for the table and * indexes. If you are adding a new global secondary index to the table, * AttributeDefinitions must include the key element(s) of the new * index.

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

An array of attributes that describe the key schema for the table and * indexes. If you are adding a new global secondary index to the table, * AttributeDefinitions must include the key element(s) of the new * index.

*/ inline bool AttributeDefinitionsHasBeenSet() const { return m_attributeDefinitionsHasBeenSet; } /** *

An array of attributes that describe the key schema for the table and * indexes. If you are adding a new global secondary index to the table, * AttributeDefinitions must include the key element(s) of the new * index.

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

An array of attributes that describe the key schema for the table and * indexes. If you are adding a new global secondary index to the table, * AttributeDefinitions must include the key element(s) of the new * index.

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

An array of attributes that describe the key schema for the table and * indexes. If you are adding a new global secondary index to the table, * AttributeDefinitions must include the key element(s) of the new * index.

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

An array of attributes that describe the key schema for the table and * indexes. If you are adding a new global secondary index to the table, * AttributeDefinitions must include the key element(s) of the new * index.

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

An array of attributes that describe the key schema for the table and * indexes. If you are adding a new global secondary index to the table, * AttributeDefinitions must include the key element(s) of the new * index.

*/ inline UpdateTableRequest& AddAttributeDefinitions(const AttributeDefinition& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions.push_back(value); return *this; } /** *

An array of attributes that describe the key schema for the table and * indexes. If you are adding a new global secondary index to the table, * AttributeDefinitions must include the key element(s) of the new * index.

*/ inline UpdateTableRequest& AddAttributeDefinitions(AttributeDefinition&& value) { m_attributeDefinitionsHasBeenSet = true; m_attributeDefinitions.push_back(std::move(value)); return *this; } /** *

The name of the table to be updated.

*/ inline const Aws::String& GetTableName() const{ return m_tableName; } /** *

The name of the table to be updated.

*/ inline bool TableNameHasBeenSet() const { return m_tableNameHasBeenSet; } /** *

The name of the table to be updated.

*/ inline void SetTableName(const Aws::String& value) { m_tableNameHasBeenSet = true; m_tableName = value; } /** *

The name of the table to be updated.

*/ inline void SetTableName(Aws::String&& value) { m_tableNameHasBeenSet = true; m_tableName = std::move(value); } /** *

The name of the table to be updated.

*/ inline void SetTableName(const char* value) { m_tableNameHasBeenSet = true; m_tableName.assign(value); } /** *

The name of the table to be updated.

*/ inline UpdateTableRequest& WithTableName(const Aws::String& value) { SetTableName(value); return *this;} /** *

The name of the table to be updated.

*/ inline UpdateTableRequest& WithTableName(Aws::String&& value) { SetTableName(std::move(value)); return *this;} /** *

The name of the table to be updated.

*/ inline UpdateTableRequest& WithTableName(const char* value) { SetTableName(value); return *this;} /** *

Controls how you are charged for read and write throughput and how you manage * capacity. When switching from pay-per-request to provisioned capacity, initial * provisioned capacity values must be set. The initial provisioned capacity values * are estimated based on the consumed read and write capacity of your table and * global secondary indexes over the past 30 minutes.

  • * PROVISIONED - We recommend using PROVISIONED for * predictable workloads. PROVISIONED sets the billing mode to Provisioned * Mode.

  • PAY_PER_REQUEST - We recommend using * PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-Demand * Mode.

*/ inline const BillingMode& GetBillingMode() const{ return m_billingMode; } /** *

Controls how you are charged for read and write throughput and how you manage * capacity. When switching from pay-per-request to provisioned capacity, initial * provisioned capacity values must be set. The initial provisioned capacity values * are estimated based on the consumed read and write capacity of your table and * global secondary indexes over the past 30 minutes.

  • * PROVISIONED - We recommend using PROVISIONED for * predictable workloads. PROVISIONED sets the billing mode to Provisioned * Mode.

  • PAY_PER_REQUEST - We recommend using * PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-Demand * Mode.

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

Controls how you are charged for read and write throughput and how you manage * capacity. When switching from pay-per-request to provisioned capacity, initial * provisioned capacity values must be set. The initial provisioned capacity values * are estimated based on the consumed read and write capacity of your table and * global secondary indexes over the past 30 minutes.

  • * PROVISIONED - We recommend using PROVISIONED for * predictable workloads. PROVISIONED sets the billing mode to Provisioned * Mode.

  • PAY_PER_REQUEST - We recommend using * PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-Demand * Mode.

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

Controls how you are charged for read and write throughput and how you manage * capacity. When switching from pay-per-request to provisioned capacity, initial * provisioned capacity values must be set. The initial provisioned capacity values * are estimated based on the consumed read and write capacity of your table and * global secondary indexes over the past 30 minutes.

  • * PROVISIONED - We recommend using PROVISIONED for * predictable workloads. PROVISIONED sets the billing mode to Provisioned * Mode.

  • PAY_PER_REQUEST - We recommend using * PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-Demand * Mode.

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

Controls how you are charged for read and write throughput and how you manage * capacity. When switching from pay-per-request to provisioned capacity, initial * provisioned capacity values must be set. The initial provisioned capacity values * are estimated based on the consumed read and write capacity of your table and * global secondary indexes over the past 30 minutes.

  • * PROVISIONED - We recommend using PROVISIONED for * predictable workloads. PROVISIONED sets the billing mode to Provisioned * Mode.

  • PAY_PER_REQUEST - We recommend using * PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-Demand * Mode.

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

Controls how you are charged for read and write throughput and how you manage * capacity. When switching from pay-per-request to provisioned capacity, initial * provisioned capacity values must be set. The initial provisioned capacity values * are estimated based on the consumed read and write capacity of your table and * global secondary indexes over the past 30 minutes.

  • * PROVISIONED - We recommend using PROVISIONED for * predictable workloads. PROVISIONED sets the billing mode to Provisioned * Mode.

  • PAY_PER_REQUEST - We recommend using * PAY_PER_REQUEST for unpredictable workloads. * PAY_PER_REQUEST sets the billing mode to On-Demand * Mode.

*/ inline UpdateTableRequest& WithBillingMode(BillingMode&& value) { SetBillingMode(std::move(value)); return *this;} /** *

The new provisioned throughput settings for the specified table or index.

*/ inline const ProvisionedThroughput& GetProvisionedThroughput() const{ return m_provisionedThroughput; } /** *

The new provisioned throughput settings for the specified table or index.

*/ inline bool ProvisionedThroughputHasBeenSet() const { return m_provisionedThroughputHasBeenSet; } /** *

The new provisioned throughput settings for the specified table or index.

*/ inline void SetProvisionedThroughput(const ProvisionedThroughput& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = value; } /** *

The new provisioned throughput settings for the specified table or index.

*/ inline void SetProvisionedThroughput(ProvisionedThroughput&& value) { m_provisionedThroughputHasBeenSet = true; m_provisionedThroughput = std::move(value); } /** *

The new provisioned throughput settings for the specified table or index.

*/ inline UpdateTableRequest& WithProvisionedThroughput(const ProvisionedThroughput& value) { SetProvisionedThroughput(value); return *this;} /** *

The new provisioned throughput settings for the specified table or index.

*/ inline UpdateTableRequest& WithProvisionedThroughput(ProvisionedThroughput&& value) { SetProvisionedThroughput(std::move(value)); return *this;} /** *

An array of one or more global secondary indexes for the table. For each * index in the array, you can request one action:

  • * Create - add a new global secondary index to the table.

  • *
  • Update - modify the provisioned throughput settings of an * existing global secondary index.

  • Delete - remove * a global secondary index from the table.

You can create or * delete only one global secondary index per UpdateTable * operation.

For more information, see Managing * Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

*/ inline const Aws::Vector& GetGlobalSecondaryIndexUpdates() const{ return m_globalSecondaryIndexUpdates; } /** *

An array of one or more global secondary indexes for the table. For each * index in the array, you can request one action:

  • * Create - add a new global secondary index to the table.

  • *
  • Update - modify the provisioned throughput settings of an * existing global secondary index.

  • Delete - remove * a global secondary index from the table.

You can create or * delete only one global secondary index per UpdateTable * operation.

For more information, see Managing * Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

*/ inline bool GlobalSecondaryIndexUpdatesHasBeenSet() const { return m_globalSecondaryIndexUpdatesHasBeenSet; } /** *

An array of one or more global secondary indexes for the table. For each * index in the array, you can request one action:

  • * Create - add a new global secondary index to the table.

  • *
  • Update - modify the provisioned throughput settings of an * existing global secondary index.

  • Delete - remove * a global secondary index from the table.

You can create or * delete only one global secondary index per UpdateTable * operation.

For more information, see Managing * Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

*/ inline void SetGlobalSecondaryIndexUpdates(const Aws::Vector& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates = value; } /** *

An array of one or more global secondary indexes for the table. For each * index in the array, you can request one action:

  • * Create - add a new global secondary index to the table.

  • *
  • Update - modify the provisioned throughput settings of an * existing global secondary index.

  • Delete - remove * a global secondary index from the table.

You can create or * delete only one global secondary index per UpdateTable * operation.

For more information, see Managing * Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

*/ inline void SetGlobalSecondaryIndexUpdates(Aws::Vector&& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates = std::move(value); } /** *

An array of one or more global secondary indexes for the table. For each * index in the array, you can request one action:

  • * Create - add a new global secondary index to the table.

  • *
  • Update - modify the provisioned throughput settings of an * existing global secondary index.

  • Delete - remove * a global secondary index from the table.

You can create or * delete only one global secondary index per UpdateTable * operation.

For more information, see Managing * Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

*/ inline UpdateTableRequest& WithGlobalSecondaryIndexUpdates(const Aws::Vector& value) { SetGlobalSecondaryIndexUpdates(value); return *this;} /** *

An array of one or more global secondary indexes for the table. For each * index in the array, you can request one action:

  • * Create - add a new global secondary index to the table.

  • *
  • Update - modify the provisioned throughput settings of an * existing global secondary index.

  • Delete - remove * a global secondary index from the table.

You can create or * delete only one global secondary index per UpdateTable * operation.

For more information, see Managing * Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

*/ inline UpdateTableRequest& WithGlobalSecondaryIndexUpdates(Aws::Vector&& value) { SetGlobalSecondaryIndexUpdates(std::move(value)); return *this;} /** *

An array of one or more global secondary indexes for the table. For each * index in the array, you can request one action:

  • * Create - add a new global secondary index to the table.

  • *
  • Update - modify the provisioned throughput settings of an * existing global secondary index.

  • Delete - remove * a global secondary index from the table.

You can create or * delete only one global secondary index per UpdateTable * operation.

For more information, see Managing * Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

*/ inline UpdateTableRequest& AddGlobalSecondaryIndexUpdates(const GlobalSecondaryIndexUpdate& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates.push_back(value); return *this; } /** *

An array of one or more global secondary indexes for the table. For each * index in the array, you can request one action:

  • * Create - add a new global secondary index to the table.

  • *
  • Update - modify the provisioned throughput settings of an * existing global secondary index.

  • Delete - remove * a global secondary index from the table.

You can create or * delete only one global secondary index per UpdateTable * operation.

For more information, see Managing * Global Secondary Indexes in the Amazon DynamoDB Developer Guide.

*/ inline UpdateTableRequest& AddGlobalSecondaryIndexUpdates(GlobalSecondaryIndexUpdate&& value) { m_globalSecondaryIndexUpdatesHasBeenSet = true; m_globalSecondaryIndexUpdates.push_back(std::move(value)); return *this; } /** *

Represents the DynamoDB Streams configuration for the table.

*

You receive a ResourceInUseException if you try to enable a * stream on a table that already has a stream, or if you try to disable a stream * on a table that doesn't have a stream.

*/ inline const StreamSpecification& GetStreamSpecification() const{ return m_streamSpecification; } /** *

Represents the DynamoDB Streams configuration for the table.

*

You receive a ResourceInUseException if you try to enable a * stream on a table that already has a stream, or if you try to disable a stream * on a table that doesn't have a stream.

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

Represents the DynamoDB Streams configuration for the table.

*

You receive a ResourceInUseException if you try to enable a * stream on a table that already has a stream, or if you try to disable a stream * on a table that doesn't have a stream.

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

Represents the DynamoDB Streams configuration for the table.

*

You receive a ResourceInUseException if you try to enable a * stream on a table that already has a stream, or if you try to disable a stream * on a table that doesn't have a stream.

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

Represents the DynamoDB Streams configuration for the table.

*

You receive a ResourceInUseException if you try to enable a * stream on a table that already has a stream, or if you try to disable a stream * on a table that doesn't have a stream.

*/ inline UpdateTableRequest& WithStreamSpecification(const StreamSpecification& value) { SetStreamSpecification(value); return *this;} /** *

Represents the DynamoDB Streams configuration for the table.

*

You receive a ResourceInUseException if you try to enable a * stream on a table that already has a stream, or if you try to disable a stream * on a table that doesn't have a stream.

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

The new server-side encryption settings for the specified table.

*/ inline const SSESpecification& GetSSESpecification() const{ return m_sSESpecification; } /** *

The new server-side encryption settings for the specified table.

*/ inline bool SSESpecificationHasBeenSet() const { return m_sSESpecificationHasBeenSet; } /** *

The new server-side encryption settings for the specified table.

*/ inline void SetSSESpecification(const SSESpecification& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = value; } /** *

The new server-side encryption settings for the specified table.

*/ inline void SetSSESpecification(SSESpecification&& value) { m_sSESpecificationHasBeenSet = true; m_sSESpecification = std::move(value); } /** *

The new server-side encryption settings for the specified table.

*/ inline UpdateTableRequest& WithSSESpecification(const SSESpecification& value) { SetSSESpecification(value); return *this;} /** *

The new server-side encryption settings for the specified table.

*/ inline UpdateTableRequest& WithSSESpecification(SSESpecification&& value) { SetSSESpecification(std::move(value)); return *this;} /** *

A list of replica update actions (create, delete, or update) for the * table.

This property only applies to Version * 2019.11.21 (Current) of global tables.

*/ inline const Aws::Vector& GetReplicaUpdates() const{ return m_replicaUpdates; } /** *

A list of replica update actions (create, delete, or update) for the * table.

This property only applies to Version * 2019.11.21 (Current) of global tables.

*/ inline bool ReplicaUpdatesHasBeenSet() const { return m_replicaUpdatesHasBeenSet; } /** *

A list of replica update actions (create, delete, or update) for the * table.

This property only applies to Version * 2019.11.21 (Current) of global tables.

*/ inline void SetReplicaUpdates(const Aws::Vector& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates = value; } /** *

A list of replica update actions (create, delete, or update) for the * table.

This property only applies to Version * 2019.11.21 (Current) of global tables.

*/ inline void SetReplicaUpdates(Aws::Vector&& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates = std::move(value); } /** *

A list of replica update actions (create, delete, or update) for the * table.

This property only applies to Version * 2019.11.21 (Current) of global tables.

*/ inline UpdateTableRequest& WithReplicaUpdates(const Aws::Vector& value) { SetReplicaUpdates(value); return *this;} /** *

A list of replica update actions (create, delete, or update) for the * table.

This property only applies to Version * 2019.11.21 (Current) of global tables.

*/ inline UpdateTableRequest& WithReplicaUpdates(Aws::Vector&& value) { SetReplicaUpdates(std::move(value)); return *this;} /** *

A list of replica update actions (create, delete, or update) for the * table.

This property only applies to Version * 2019.11.21 (Current) of global tables.

*/ inline UpdateTableRequest& AddReplicaUpdates(const ReplicationGroupUpdate& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates.push_back(value); return *this; } /** *

A list of replica update actions (create, delete, or update) for the * table.

This property only applies to Version * 2019.11.21 (Current) of global tables.

*/ inline UpdateTableRequest& AddReplicaUpdates(ReplicationGroupUpdate&& value) { m_replicaUpdatesHasBeenSet = true; m_replicaUpdates.push_back(std::move(value)); return *this; } /** *

The table class of the table to be updated. Valid values are * STANDARD and STANDARD_INFREQUENT_ACCESS.

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

The table class of the table to be updated. Valid values are * STANDARD and STANDARD_INFREQUENT_ACCESS.

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

The table class of the table to be updated. Valid values are * STANDARD and STANDARD_INFREQUENT_ACCESS.

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

The table class of the table to be updated. Valid values are * STANDARD and STANDARD_INFREQUENT_ACCESS.

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

The table class of the table to be updated. Valid values are * STANDARD and STANDARD_INFREQUENT_ACCESS.

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

The table class of the table to be updated. Valid values are * STANDARD and STANDARD_INFREQUENT_ACCESS.

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

Indicates whether deletion protection is to be enabled (true) or disabled * (false) on the table.

*/ inline bool GetDeletionProtectionEnabled() const{ return m_deletionProtectionEnabled; } /** *

Indicates whether deletion protection is to be enabled (true) or disabled * (false) on the table.

*/ inline bool DeletionProtectionEnabledHasBeenSet() const { return m_deletionProtectionEnabledHasBeenSet; } /** *

Indicates whether deletion protection is to be enabled (true) or disabled * (false) on the table.

*/ inline void SetDeletionProtectionEnabled(bool value) { m_deletionProtectionEnabledHasBeenSet = true; m_deletionProtectionEnabled = value; } /** *

Indicates whether deletion protection is to be enabled (true) or disabled * (false) on the table.

*/ inline UpdateTableRequest& WithDeletionProtectionEnabled(bool value) { SetDeletionProtectionEnabled(value); return *this;} private: Aws::Vector m_attributeDefinitions; bool m_attributeDefinitionsHasBeenSet = false; Aws::String m_tableName; bool m_tableNameHasBeenSet = false; BillingMode m_billingMode; bool m_billingModeHasBeenSet = false; ProvisionedThroughput m_provisionedThroughput; bool m_provisionedThroughputHasBeenSet = false; Aws::Vector m_globalSecondaryIndexUpdates; bool m_globalSecondaryIndexUpdatesHasBeenSet = false; StreamSpecification m_streamSpecification; bool m_streamSpecificationHasBeenSet = false; SSESpecification m_sSESpecification; bool m_sSESpecificationHasBeenSet = false; Aws::Vector m_replicaUpdates; bool m_replicaUpdatesHasBeenSet = false; TableClass m_tableClass; bool m_tableClassHasBeenSet = false; bool m_deletionProtectionEnabled; bool m_deletionProtectionEnabledHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws