/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace DynamoDB { namespace Model { /** *

Contains the details of the replica.

See Also:

AWS * API Reference

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

The name of the Region.

*/ inline const Aws::String& GetRegionName() const{ return m_regionName; } /** *

The name of the Region.

*/ inline bool RegionNameHasBeenSet() const { return m_regionNameHasBeenSet; } /** *

The name of the Region.

*/ inline void SetRegionName(const Aws::String& value) { m_regionNameHasBeenSet = true; m_regionName = value; } /** *

The name of the Region.

*/ inline void SetRegionName(Aws::String&& value) { m_regionNameHasBeenSet = true; m_regionName = std::move(value); } /** *

The name of the Region.

*/ inline void SetRegionName(const char* value) { m_regionNameHasBeenSet = true; m_regionName.assign(value); } /** *

The name of the Region.

*/ inline ReplicaDescription& WithRegionName(const Aws::String& value) { SetRegionName(value); return *this;} /** *

The name of the Region.

*/ inline ReplicaDescription& WithRegionName(Aws::String&& value) { SetRegionName(std::move(value)); return *this;} /** *

The name of the Region.

*/ inline ReplicaDescription& WithRegionName(const char* value) { SetRegionName(value); return *this;} /** *

The current state of the replica:

  • CREATING - * The replica is being created.

  • UPDATING - The * replica is being updated.

  • DELETING - The replica * is being deleted.

  • ACTIVE - The replica is ready * for use.

  • REGION_DISABLED - The replica is * inaccessible because the Amazon Web Services Region has been disabled.

    *

    If the Amazon Web Services Region remains inaccessible for more than * 20 hours, DynamoDB will remove this replica from the replication group. The * replica will not be deleted and replication will stop from and to this * region.

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS * - The KMS key used to encrypt the table is inaccessible.

    *

    If the KMS key remains inaccessible for more than 20 hours, DynamoDB will * remove this replica from the replication group. The replica will not be deleted * and replication will stop from and to this region.

*/ inline const ReplicaStatus& GetReplicaStatus() const{ return m_replicaStatus; } /** *

The current state of the replica:

  • CREATING - * The replica is being created.

  • UPDATING - The * replica is being updated.

  • DELETING - The replica * is being deleted.

  • ACTIVE - The replica is ready * for use.

  • REGION_DISABLED - The replica is * inaccessible because the Amazon Web Services Region has been disabled.

    *

    If the Amazon Web Services Region remains inaccessible for more than * 20 hours, DynamoDB will remove this replica from the replication group. The * replica will not be deleted and replication will stop from and to this * region.

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS * - The KMS key used to encrypt the table is inaccessible.

    *

    If the KMS key remains inaccessible for more than 20 hours, DynamoDB will * remove this replica from the replication group. The replica will not be deleted * and replication will stop from and to this region.

*/ inline bool ReplicaStatusHasBeenSet() const { return m_replicaStatusHasBeenSet; } /** *

The current state of the replica:

  • CREATING - * The replica is being created.

  • UPDATING - The * replica is being updated.

  • DELETING - The replica * is being deleted.

  • ACTIVE - The replica is ready * for use.

  • REGION_DISABLED - The replica is * inaccessible because the Amazon Web Services Region has been disabled.

    *

    If the Amazon Web Services Region remains inaccessible for more than * 20 hours, DynamoDB will remove this replica from the replication group. The * replica will not be deleted and replication will stop from and to this * region.

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS * - The KMS key used to encrypt the table is inaccessible.

    *

    If the KMS key remains inaccessible for more than 20 hours, DynamoDB will * remove this replica from the replication group. The replica will not be deleted * and replication will stop from and to this region.

*/ inline void SetReplicaStatus(const ReplicaStatus& value) { m_replicaStatusHasBeenSet = true; m_replicaStatus = value; } /** *

The current state of the replica:

  • CREATING - * The replica is being created.

  • UPDATING - The * replica is being updated.

  • DELETING - The replica * is being deleted.

  • ACTIVE - The replica is ready * for use.

  • REGION_DISABLED - The replica is * inaccessible because the Amazon Web Services Region has been disabled.

    *

    If the Amazon Web Services Region remains inaccessible for more than * 20 hours, DynamoDB will remove this replica from the replication group. The * replica will not be deleted and replication will stop from and to this * region.

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS * - The KMS key used to encrypt the table is inaccessible.

    *

    If the KMS key remains inaccessible for more than 20 hours, DynamoDB will * remove this replica from the replication group. The replica will not be deleted * and replication will stop from and to this region.

*/ inline void SetReplicaStatus(ReplicaStatus&& value) { m_replicaStatusHasBeenSet = true; m_replicaStatus = std::move(value); } /** *

The current state of the replica:

  • CREATING - * The replica is being created.

  • UPDATING - The * replica is being updated.

  • DELETING - The replica * is being deleted.

  • ACTIVE - The replica is ready * for use.

  • REGION_DISABLED - The replica is * inaccessible because the Amazon Web Services Region has been disabled.

    *

    If the Amazon Web Services Region remains inaccessible for more than * 20 hours, DynamoDB will remove this replica from the replication group. The * replica will not be deleted and replication will stop from and to this * region.

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS * - The KMS key used to encrypt the table is inaccessible.

    *

    If the KMS key remains inaccessible for more than 20 hours, DynamoDB will * remove this replica from the replication group. The replica will not be deleted * and replication will stop from and to this region.

*/ inline ReplicaDescription& WithReplicaStatus(const ReplicaStatus& value) { SetReplicaStatus(value); return *this;} /** *

The current state of the replica:

  • CREATING - * The replica is being created.

  • UPDATING - The * replica is being updated.

  • DELETING - The replica * is being deleted.

  • ACTIVE - The replica is ready * for use.

  • REGION_DISABLED - The replica is * inaccessible because the Amazon Web Services Region has been disabled.

    *

    If the Amazon Web Services Region remains inaccessible for more than * 20 hours, DynamoDB will remove this replica from the replication group. The * replica will not be deleted and replication will stop from and to this * region.

  • INACCESSIBLE_ENCRYPTION_CREDENTIALS * - The KMS key used to encrypt the table is inaccessible.

    *

    If the KMS key remains inaccessible for more than 20 hours, DynamoDB will * remove this replica from the replication group. The replica will not be deleted * and replication will stop from and to this region.

*/ inline ReplicaDescription& WithReplicaStatus(ReplicaStatus&& value) { SetReplicaStatus(std::move(value)); return *this;} /** *

Detailed information about the replica status.

*/ inline const Aws::String& GetReplicaStatusDescription() const{ return m_replicaStatusDescription; } /** *

Detailed information about the replica status.

*/ inline bool ReplicaStatusDescriptionHasBeenSet() const { return m_replicaStatusDescriptionHasBeenSet; } /** *

Detailed information about the replica status.

*/ inline void SetReplicaStatusDescription(const Aws::String& value) { m_replicaStatusDescriptionHasBeenSet = true; m_replicaStatusDescription = value; } /** *

Detailed information about the replica status.

*/ inline void SetReplicaStatusDescription(Aws::String&& value) { m_replicaStatusDescriptionHasBeenSet = true; m_replicaStatusDescription = std::move(value); } /** *

Detailed information about the replica status.

*/ inline void SetReplicaStatusDescription(const char* value) { m_replicaStatusDescriptionHasBeenSet = true; m_replicaStatusDescription.assign(value); } /** *

Detailed information about the replica status.

*/ inline ReplicaDescription& WithReplicaStatusDescription(const Aws::String& value) { SetReplicaStatusDescription(value); return *this;} /** *

Detailed information about the replica status.

*/ inline ReplicaDescription& WithReplicaStatusDescription(Aws::String&& value) { SetReplicaStatusDescription(std::move(value)); return *this;} /** *

Detailed information about the replica status.

*/ inline ReplicaDescription& WithReplicaStatusDescription(const char* value) { SetReplicaStatusDescription(value); return *this;} /** *

Specifies the progress of a Create, Update, or Delete action on the replica * as a percentage.

*/ inline const Aws::String& GetReplicaStatusPercentProgress() const{ return m_replicaStatusPercentProgress; } /** *

Specifies the progress of a Create, Update, or Delete action on the replica * as a percentage.

*/ inline bool ReplicaStatusPercentProgressHasBeenSet() const { return m_replicaStatusPercentProgressHasBeenSet; } /** *

Specifies the progress of a Create, Update, or Delete action on the replica * as a percentage.

*/ inline void SetReplicaStatusPercentProgress(const Aws::String& value) { m_replicaStatusPercentProgressHasBeenSet = true; m_replicaStatusPercentProgress = value; } /** *

Specifies the progress of a Create, Update, or Delete action on the replica * as a percentage.

*/ inline void SetReplicaStatusPercentProgress(Aws::String&& value) { m_replicaStatusPercentProgressHasBeenSet = true; m_replicaStatusPercentProgress = std::move(value); } /** *

Specifies the progress of a Create, Update, or Delete action on the replica * as a percentage.

*/ inline void SetReplicaStatusPercentProgress(const char* value) { m_replicaStatusPercentProgressHasBeenSet = true; m_replicaStatusPercentProgress.assign(value); } /** *

Specifies the progress of a Create, Update, or Delete action on the replica * as a percentage.

*/ inline ReplicaDescription& WithReplicaStatusPercentProgress(const Aws::String& value) { SetReplicaStatusPercentProgress(value); return *this;} /** *

Specifies the progress of a Create, Update, or Delete action on the replica * as a percentage.

*/ inline ReplicaDescription& WithReplicaStatusPercentProgress(Aws::String&& value) { SetReplicaStatusPercentProgress(std::move(value)); return *this;} /** *

Specifies the progress of a Create, Update, or Delete action on the replica * as a percentage.

*/ inline ReplicaDescription& WithReplicaStatusPercentProgress(const char* value) { SetReplicaStatusPercentProgress(value); return *this;} /** *

The KMS key of the replica that will be used for KMS encryption.

*/ inline const Aws::String& GetKMSMasterKeyId() const{ return m_kMSMasterKeyId; } /** *

The KMS key of the replica that will be used for KMS encryption.

*/ inline bool KMSMasterKeyIdHasBeenSet() const { return m_kMSMasterKeyIdHasBeenSet; } /** *

The KMS key of the replica that will be used for KMS encryption.

*/ inline void SetKMSMasterKeyId(const Aws::String& value) { m_kMSMasterKeyIdHasBeenSet = true; m_kMSMasterKeyId = value; } /** *

The KMS key of the replica that will be used for KMS encryption.

*/ inline void SetKMSMasterKeyId(Aws::String&& value) { m_kMSMasterKeyIdHasBeenSet = true; m_kMSMasterKeyId = std::move(value); } /** *

The KMS key of the replica that will be used for KMS encryption.

*/ inline void SetKMSMasterKeyId(const char* value) { m_kMSMasterKeyIdHasBeenSet = true; m_kMSMasterKeyId.assign(value); } /** *

The KMS key of the replica that will be used for KMS encryption.

*/ inline ReplicaDescription& WithKMSMasterKeyId(const Aws::String& value) { SetKMSMasterKeyId(value); return *this;} /** *

The KMS key of the replica that will be used for KMS encryption.

*/ inline ReplicaDescription& WithKMSMasterKeyId(Aws::String&& value) { SetKMSMasterKeyId(std::move(value)); return *this;} /** *

The KMS key of the replica that will be used for KMS encryption.

*/ inline ReplicaDescription& WithKMSMasterKeyId(const char* value) { SetKMSMasterKeyId(value); return *this;} /** *

Replica-specific provisioned throughput. If not described, uses the source * table's provisioned throughput settings.

*/ inline const ProvisionedThroughputOverride& GetProvisionedThroughputOverride() const{ return m_provisionedThroughputOverride; } /** *

Replica-specific provisioned throughput. If not described, uses the source * table's provisioned throughput settings.

*/ inline bool ProvisionedThroughputOverrideHasBeenSet() const { return m_provisionedThroughputOverrideHasBeenSet; } /** *

Replica-specific provisioned throughput. If not described, uses the source * table's provisioned throughput settings.

*/ inline void SetProvisionedThroughputOverride(const ProvisionedThroughputOverride& value) { m_provisionedThroughputOverrideHasBeenSet = true; m_provisionedThroughputOverride = value; } /** *

Replica-specific provisioned throughput. If not described, uses the source * table's provisioned throughput settings.

*/ inline void SetProvisionedThroughputOverride(ProvisionedThroughputOverride&& value) { m_provisionedThroughputOverrideHasBeenSet = true; m_provisionedThroughputOverride = std::move(value); } /** *

Replica-specific provisioned throughput. If not described, uses the source * table's provisioned throughput settings.

*/ inline ReplicaDescription& WithProvisionedThroughputOverride(const ProvisionedThroughputOverride& value) { SetProvisionedThroughputOverride(value); return *this;} /** *

Replica-specific provisioned throughput. If not described, uses the source * table's provisioned throughput settings.

*/ inline ReplicaDescription& WithProvisionedThroughputOverride(ProvisionedThroughputOverride&& value) { SetProvisionedThroughputOverride(std::move(value)); return *this;} /** *

Replica-specific global secondary index settings.

*/ inline const Aws::Vector& GetGlobalSecondaryIndexes() const{ return m_globalSecondaryIndexes; } /** *

Replica-specific global secondary index settings.

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

Replica-specific global secondary index settings.

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

Replica-specific global secondary index settings.

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

Replica-specific global secondary index settings.

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

Replica-specific global secondary index settings.

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

Replica-specific global secondary index settings.

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

Replica-specific global secondary index settings.

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

The time at which the replica was first detected as inaccessible. To * determine cause of inaccessibility check the ReplicaStatus * property.

*/ inline const Aws::Utils::DateTime& GetReplicaInaccessibleDateTime() const{ return m_replicaInaccessibleDateTime; } /** *

The time at which the replica was first detected as inaccessible. To * determine cause of inaccessibility check the ReplicaStatus * property.

*/ inline bool ReplicaInaccessibleDateTimeHasBeenSet() const { return m_replicaInaccessibleDateTimeHasBeenSet; } /** *

The time at which the replica was first detected as inaccessible. To * determine cause of inaccessibility check the ReplicaStatus * property.

*/ inline void SetReplicaInaccessibleDateTime(const Aws::Utils::DateTime& value) { m_replicaInaccessibleDateTimeHasBeenSet = true; m_replicaInaccessibleDateTime = value; } /** *

The time at which the replica was first detected as inaccessible. To * determine cause of inaccessibility check the ReplicaStatus * property.

*/ inline void SetReplicaInaccessibleDateTime(Aws::Utils::DateTime&& value) { m_replicaInaccessibleDateTimeHasBeenSet = true; m_replicaInaccessibleDateTime = std::move(value); } /** *

The time at which the replica was first detected as inaccessible. To * determine cause of inaccessibility check the ReplicaStatus * property.

*/ inline ReplicaDescription& WithReplicaInaccessibleDateTime(const Aws::Utils::DateTime& value) { SetReplicaInaccessibleDateTime(value); return *this;} /** *

The time at which the replica was first detected as inaccessible. To * determine cause of inaccessibility check the ReplicaStatus * property.

*/ inline ReplicaDescription& WithReplicaInaccessibleDateTime(Aws::Utils::DateTime&& value) { SetReplicaInaccessibleDateTime(std::move(value)); return *this;} inline const TableClassSummary& GetReplicaTableClassSummary() const{ return m_replicaTableClassSummary; } inline bool ReplicaTableClassSummaryHasBeenSet() const { return m_replicaTableClassSummaryHasBeenSet; } inline void SetReplicaTableClassSummary(const TableClassSummary& value) { m_replicaTableClassSummaryHasBeenSet = true; m_replicaTableClassSummary = value; } inline void SetReplicaTableClassSummary(TableClassSummary&& value) { m_replicaTableClassSummaryHasBeenSet = true; m_replicaTableClassSummary = std::move(value); } inline ReplicaDescription& WithReplicaTableClassSummary(const TableClassSummary& value) { SetReplicaTableClassSummary(value); return *this;} inline ReplicaDescription& WithReplicaTableClassSummary(TableClassSummary&& value) { SetReplicaTableClassSummary(std::move(value)); return *this;} private: Aws::String m_regionName; bool m_regionNameHasBeenSet = false; ReplicaStatus m_replicaStatus; bool m_replicaStatusHasBeenSet = false; Aws::String m_replicaStatusDescription; bool m_replicaStatusDescriptionHasBeenSet = false; Aws::String m_replicaStatusPercentProgress; bool m_replicaStatusPercentProgressHasBeenSet = false; Aws::String m_kMSMasterKeyId; bool m_kMSMasterKeyIdHasBeenSet = false; ProvisionedThroughputOverride m_provisionedThroughputOverride; bool m_provisionedThroughputOverrideHasBeenSet = false; Aws::Vector m_globalSecondaryIndexes; bool m_globalSecondaryIndexesHasBeenSet = false; Aws::Utils::DateTime m_replicaInaccessibleDateTime; bool m_replicaInaccessibleDateTimeHasBeenSet = false; TableClassSummary m_replicaTableClassSummary; bool m_replicaTableClassSummaryHasBeenSet = false; }; } // namespace Model } // namespace DynamoDB } // namespace Aws