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

Represents one of the following:

  • A new global secondary * index to be added to an existing table.

  • New provisioned * throughput parameters for an existing global secondary index.

  • *

    An existing global secondary index to be removed from an existing table.

    *

See Also:

AWS * API Reference

*/ class GlobalSecondaryIndexUpdate { public: AWS_DYNAMODB_API GlobalSecondaryIndexUpdate(); AWS_DYNAMODB_API GlobalSecondaryIndexUpdate(Aws::Utils::Json::JsonView jsonValue); AWS_DYNAMODB_API GlobalSecondaryIndexUpdate& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_DYNAMODB_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

The name of an existing global secondary index, along with new provisioned * throughput settings to be applied to that index.

*/ inline const UpdateGlobalSecondaryIndexAction& GetUpdate() const{ return m_update; } /** *

The name of an existing global secondary index, along with new provisioned * throughput settings to be applied to that index.

*/ inline bool UpdateHasBeenSet() const { return m_updateHasBeenSet; } /** *

The name of an existing global secondary index, along with new provisioned * throughput settings to be applied to that index.

*/ inline void SetUpdate(const UpdateGlobalSecondaryIndexAction& value) { m_updateHasBeenSet = true; m_update = value; } /** *

The name of an existing global secondary index, along with new provisioned * throughput settings to be applied to that index.

*/ inline void SetUpdate(UpdateGlobalSecondaryIndexAction&& value) { m_updateHasBeenSet = true; m_update = std::move(value); } /** *

The name of an existing global secondary index, along with new provisioned * throughput settings to be applied to that index.

*/ inline GlobalSecondaryIndexUpdate& WithUpdate(const UpdateGlobalSecondaryIndexAction& value) { SetUpdate(value); return *this;} /** *

The name of an existing global secondary index, along with new provisioned * throughput settings to be applied to that index.

*/ inline GlobalSecondaryIndexUpdate& WithUpdate(UpdateGlobalSecondaryIndexAction&& value) { SetUpdate(std::move(value)); return *this;} /** *

The parameters required for creating a global secondary index on an existing * table:

  • IndexName

  • * KeySchema

  • AttributeDefinitions *

  • Projection

  • * ProvisionedThroughput

*/ inline const CreateGlobalSecondaryIndexAction& GetCreate() const{ return m_create; } /** *

The parameters required for creating a global secondary index on an existing * table:

  • IndexName

  • * KeySchema

  • AttributeDefinitions *

  • Projection

  • * ProvisionedThroughput

*/ inline bool CreateHasBeenSet() const { return m_createHasBeenSet; } /** *

The parameters required for creating a global secondary index on an existing * table:

  • IndexName

  • * KeySchema

  • AttributeDefinitions *

  • Projection

  • * ProvisionedThroughput

*/ inline void SetCreate(const CreateGlobalSecondaryIndexAction& value) { m_createHasBeenSet = true; m_create = value; } /** *

The parameters required for creating a global secondary index on an existing * table:

  • IndexName

  • * KeySchema

  • AttributeDefinitions *

  • Projection

  • * ProvisionedThroughput

*/ inline void SetCreate(CreateGlobalSecondaryIndexAction&& value) { m_createHasBeenSet = true; m_create = std::move(value); } /** *

The parameters required for creating a global secondary index on an existing * table:

  • IndexName

  • * KeySchema

  • AttributeDefinitions *

  • Projection

  • * ProvisionedThroughput

*/ inline GlobalSecondaryIndexUpdate& WithCreate(const CreateGlobalSecondaryIndexAction& value) { SetCreate(value); return *this;} /** *

The parameters required for creating a global secondary index on an existing * table:

  • IndexName

  • * KeySchema

  • AttributeDefinitions *

  • Projection

  • * ProvisionedThroughput

*/ inline GlobalSecondaryIndexUpdate& WithCreate(CreateGlobalSecondaryIndexAction&& value) { SetCreate(std::move(value)); return *this;} /** *

The name of an existing global secondary index to be removed.

*/ inline const DeleteGlobalSecondaryIndexAction& GetDelete() const{ return m_delete; } /** *

The name of an existing global secondary index to be removed.

*/ inline bool DeleteHasBeenSet() const { return m_deleteHasBeenSet; } /** *

The name of an existing global secondary index to be removed.

*/ inline void SetDelete(const DeleteGlobalSecondaryIndexAction& value) { m_deleteHasBeenSet = true; m_delete = value; } /** *

The name of an existing global secondary index to be removed.

*/ inline void SetDelete(DeleteGlobalSecondaryIndexAction&& value) { m_deleteHasBeenSet = true; m_delete = std::move(value); } /** *

The name of an existing global secondary index to be removed.

*/ inline GlobalSecondaryIndexUpdate& WithDelete(const DeleteGlobalSecondaryIndexAction& value) { SetDelete(value); return *this;} /** *

The name of an existing global secondary index to be removed.

*/ inline GlobalSecondaryIndexUpdate& WithDelete(DeleteGlobalSecondaryIndexAction&& value) { SetDelete(std::move(value)); return *this;} private: UpdateGlobalSecondaryIndexAction m_update; bool m_updateHasBeenSet = false; CreateGlobalSecondaryIndexAction m_create; bool m_createHasBeenSet = false; DeleteGlobalSecondaryIndexAction m_delete; bool m_deleteHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws