/** * 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 #include #include #include #include #include namespace Aws { namespace Utils { namespace Xml { class XmlNode; } // namespace Xml } // namespace Utils namespace ElastiCache { namespace Model { /** *

Contains all of the attributes of a specific Redis replication * group.

See Also:

AWS * API Reference

*/ class ReplicationGroup { public: AWS_ELASTICACHE_API ReplicationGroup(); AWS_ELASTICACHE_API ReplicationGroup(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ELASTICACHE_API ReplicationGroup& operator=(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ELASTICACHE_API void OutputToStream(Aws::OStream& ostream, const char* location, unsigned index, const char* locationValue) const; AWS_ELASTICACHE_API void OutputToStream(Aws::OStream& oStream, const char* location) const; /** *

The identifier for the replication group.

*/ inline const Aws::String& GetReplicationGroupId() const{ return m_replicationGroupId; } /** *

The identifier for the replication group.

*/ inline bool ReplicationGroupIdHasBeenSet() const { return m_replicationGroupIdHasBeenSet; } /** *

The identifier for the replication group.

*/ inline void SetReplicationGroupId(const Aws::String& value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId = value; } /** *

The identifier for the replication group.

*/ inline void SetReplicationGroupId(Aws::String&& value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId = std::move(value); } /** *

The identifier for the replication group.

*/ inline void SetReplicationGroupId(const char* value) { m_replicationGroupIdHasBeenSet = true; m_replicationGroupId.assign(value); } /** *

The identifier for the replication group.

*/ inline ReplicationGroup& WithReplicationGroupId(const Aws::String& value) { SetReplicationGroupId(value); return *this;} /** *

The identifier for the replication group.

*/ inline ReplicationGroup& WithReplicationGroupId(Aws::String&& value) { SetReplicationGroupId(std::move(value)); return *this;} /** *

The identifier for the replication group.

*/ inline ReplicationGroup& WithReplicationGroupId(const char* value) { SetReplicationGroupId(value); return *this;} /** *

The user supplied description of the replication group.

*/ inline const Aws::String& GetDescription() const{ return m_description; } /** *

The user supplied description of the replication group.

*/ inline bool DescriptionHasBeenSet() const { return m_descriptionHasBeenSet; } /** *

The user supplied description of the replication group.

*/ inline void SetDescription(const Aws::String& value) { m_descriptionHasBeenSet = true; m_description = value; } /** *

The user supplied description of the replication group.

*/ inline void SetDescription(Aws::String&& value) { m_descriptionHasBeenSet = true; m_description = std::move(value); } /** *

The user supplied description of the replication group.

*/ inline void SetDescription(const char* value) { m_descriptionHasBeenSet = true; m_description.assign(value); } /** *

The user supplied description of the replication group.

*/ inline ReplicationGroup& WithDescription(const Aws::String& value) { SetDescription(value); return *this;} /** *

The user supplied description of the replication group.

*/ inline ReplicationGroup& WithDescription(Aws::String&& value) { SetDescription(std::move(value)); return *this;} /** *

The user supplied description of the replication group.

*/ inline ReplicationGroup& WithDescription(const char* value) { SetDescription(value); return *this;} /** *

The name of the Global datastore and role of this replication group in the * Global datastore.

*/ inline const GlobalReplicationGroupInfo& GetGlobalReplicationGroupInfo() const{ return m_globalReplicationGroupInfo; } /** *

The name of the Global datastore and role of this replication group in the * Global datastore.

*/ inline bool GlobalReplicationGroupInfoHasBeenSet() const { return m_globalReplicationGroupInfoHasBeenSet; } /** *

The name of the Global datastore and role of this replication group in the * Global datastore.

*/ inline void SetGlobalReplicationGroupInfo(const GlobalReplicationGroupInfo& value) { m_globalReplicationGroupInfoHasBeenSet = true; m_globalReplicationGroupInfo = value; } /** *

The name of the Global datastore and role of this replication group in the * Global datastore.

*/ inline void SetGlobalReplicationGroupInfo(GlobalReplicationGroupInfo&& value) { m_globalReplicationGroupInfoHasBeenSet = true; m_globalReplicationGroupInfo = std::move(value); } /** *

The name of the Global datastore and role of this replication group in the * Global datastore.

*/ inline ReplicationGroup& WithGlobalReplicationGroupInfo(const GlobalReplicationGroupInfo& value) { SetGlobalReplicationGroupInfo(value); return *this;} /** *

The name of the Global datastore and role of this replication group in the * Global datastore.

*/ inline ReplicationGroup& WithGlobalReplicationGroupInfo(GlobalReplicationGroupInfo&& value) { SetGlobalReplicationGroupInfo(std::move(value)); return *this;} /** *

The current state of this replication group - creating, * available, modifying, deleting, * create-failed, snapshotting.

*/ inline const Aws::String& GetStatus() const{ return m_status; } /** *

The current state of this replication group - creating, * available, modifying, deleting, * create-failed, snapshotting.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The current state of this replication group - creating, * available, modifying, deleting, * create-failed, snapshotting.

*/ inline void SetStatus(const Aws::String& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The current state of this replication group - creating, * available, modifying, deleting, * create-failed, snapshotting.

*/ inline void SetStatus(Aws::String&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The current state of this replication group - creating, * available, modifying, deleting, * create-failed, snapshotting.

*/ inline void SetStatus(const char* value) { m_statusHasBeenSet = true; m_status.assign(value); } /** *

The current state of this replication group - creating, * available, modifying, deleting, * create-failed, snapshotting.

*/ inline ReplicationGroup& WithStatus(const Aws::String& value) { SetStatus(value); return *this;} /** *

The current state of this replication group - creating, * available, modifying, deleting, * create-failed, snapshotting.

*/ inline ReplicationGroup& WithStatus(Aws::String&& value) { SetStatus(std::move(value)); return *this;} /** *

The current state of this replication group - creating, * available, modifying, deleting, * create-failed, snapshotting.

*/ inline ReplicationGroup& WithStatus(const char* value) { SetStatus(value); return *this;} /** *

A group of settings to be applied to the replication group, either * immediately or during the next maintenance window.

*/ inline const ReplicationGroupPendingModifiedValues& GetPendingModifiedValues() const{ return m_pendingModifiedValues; } /** *

A group of settings to be applied to the replication group, either * immediately or during the next maintenance window.

*/ inline bool PendingModifiedValuesHasBeenSet() const { return m_pendingModifiedValuesHasBeenSet; } /** *

A group of settings to be applied to the replication group, either * immediately or during the next maintenance window.

*/ inline void SetPendingModifiedValues(const ReplicationGroupPendingModifiedValues& value) { m_pendingModifiedValuesHasBeenSet = true; m_pendingModifiedValues = value; } /** *

A group of settings to be applied to the replication group, either * immediately or during the next maintenance window.

*/ inline void SetPendingModifiedValues(ReplicationGroupPendingModifiedValues&& value) { m_pendingModifiedValuesHasBeenSet = true; m_pendingModifiedValues = std::move(value); } /** *

A group of settings to be applied to the replication group, either * immediately or during the next maintenance window.

*/ inline ReplicationGroup& WithPendingModifiedValues(const ReplicationGroupPendingModifiedValues& value) { SetPendingModifiedValues(value); return *this;} /** *

A group of settings to be applied to the replication group, either * immediately or during the next maintenance window.

*/ inline ReplicationGroup& WithPendingModifiedValues(ReplicationGroupPendingModifiedValues&& value) { SetPendingModifiedValues(std::move(value)); return *this;} /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline const Aws::Vector& GetMemberClusters() const{ return m_memberClusters; } /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline bool MemberClustersHasBeenSet() const { return m_memberClustersHasBeenSet; } /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline void SetMemberClusters(const Aws::Vector& value) { m_memberClustersHasBeenSet = true; m_memberClusters = value; } /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline void SetMemberClusters(Aws::Vector&& value) { m_memberClustersHasBeenSet = true; m_memberClusters = std::move(value); } /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline ReplicationGroup& WithMemberClusters(const Aws::Vector& value) { SetMemberClusters(value); return *this;} /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline ReplicationGroup& WithMemberClusters(Aws::Vector&& value) { SetMemberClusters(std::move(value)); return *this;} /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline ReplicationGroup& AddMemberClusters(const Aws::String& value) { m_memberClustersHasBeenSet = true; m_memberClusters.push_back(value); return *this; } /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline ReplicationGroup& AddMemberClusters(Aws::String&& value) { m_memberClustersHasBeenSet = true; m_memberClusters.push_back(std::move(value)); return *this; } /** *

The names of all the cache clusters that are part of this replication * group.

*/ inline ReplicationGroup& AddMemberClusters(const char* value) { m_memberClustersHasBeenSet = true; m_memberClusters.push_back(value); return *this; } /** *

A list of node groups in this replication group. For Redis (cluster mode * disabled) replication groups, this is a single-element list. For Redis (cluster * mode enabled) replication groups, the list contains an entry for each node group * (shard).

*/ inline const Aws::Vector& GetNodeGroups() const{ return m_nodeGroups; } /** *

A list of node groups in this replication group. For Redis (cluster mode * disabled) replication groups, this is a single-element list. For Redis (cluster * mode enabled) replication groups, the list contains an entry for each node group * (shard).

*/ inline bool NodeGroupsHasBeenSet() const { return m_nodeGroupsHasBeenSet; } /** *

A list of node groups in this replication group. For Redis (cluster mode * disabled) replication groups, this is a single-element list. For Redis (cluster * mode enabled) replication groups, the list contains an entry for each node group * (shard).

*/ inline void SetNodeGroups(const Aws::Vector& value) { m_nodeGroupsHasBeenSet = true; m_nodeGroups = value; } /** *

A list of node groups in this replication group. For Redis (cluster mode * disabled) replication groups, this is a single-element list. For Redis (cluster * mode enabled) replication groups, the list contains an entry for each node group * (shard).

*/ inline void SetNodeGroups(Aws::Vector&& value) { m_nodeGroupsHasBeenSet = true; m_nodeGroups = std::move(value); } /** *

A list of node groups in this replication group. For Redis (cluster mode * disabled) replication groups, this is a single-element list. For Redis (cluster * mode enabled) replication groups, the list contains an entry for each node group * (shard).

*/ inline ReplicationGroup& WithNodeGroups(const Aws::Vector& value) { SetNodeGroups(value); return *this;} /** *

A list of node groups in this replication group. For Redis (cluster mode * disabled) replication groups, this is a single-element list. For Redis (cluster * mode enabled) replication groups, the list contains an entry for each node group * (shard).

*/ inline ReplicationGroup& WithNodeGroups(Aws::Vector&& value) { SetNodeGroups(std::move(value)); return *this;} /** *

A list of node groups in this replication group. For Redis (cluster mode * disabled) replication groups, this is a single-element list. For Redis (cluster * mode enabled) replication groups, the list contains an entry for each node group * (shard).

*/ inline ReplicationGroup& AddNodeGroups(const NodeGroup& value) { m_nodeGroupsHasBeenSet = true; m_nodeGroups.push_back(value); return *this; } /** *

A list of node groups in this replication group. For Redis (cluster mode * disabled) replication groups, this is a single-element list. For Redis (cluster * mode enabled) replication groups, the list contains an entry for each node group * (shard).

*/ inline ReplicationGroup& AddNodeGroups(NodeGroup&& value) { m_nodeGroupsHasBeenSet = true; m_nodeGroups.push_back(std::move(value)); return *this; } /** *

The cluster ID that is used as the daily snapshot source for the replication * group.

*/ inline const Aws::String& GetSnapshottingClusterId() const{ return m_snapshottingClusterId; } /** *

The cluster ID that is used as the daily snapshot source for the replication * group.

*/ inline bool SnapshottingClusterIdHasBeenSet() const { return m_snapshottingClusterIdHasBeenSet; } /** *

The cluster ID that is used as the daily snapshot source for the replication * group.

*/ inline void SetSnapshottingClusterId(const Aws::String& value) { m_snapshottingClusterIdHasBeenSet = true; m_snapshottingClusterId = value; } /** *

The cluster ID that is used as the daily snapshot source for the replication * group.

*/ inline void SetSnapshottingClusterId(Aws::String&& value) { m_snapshottingClusterIdHasBeenSet = true; m_snapshottingClusterId = std::move(value); } /** *

The cluster ID that is used as the daily snapshot source for the replication * group.

*/ inline void SetSnapshottingClusterId(const char* value) { m_snapshottingClusterIdHasBeenSet = true; m_snapshottingClusterId.assign(value); } /** *

The cluster ID that is used as the daily snapshot source for the replication * group.

*/ inline ReplicationGroup& WithSnapshottingClusterId(const Aws::String& value) { SetSnapshottingClusterId(value); return *this;} /** *

The cluster ID that is used as the daily snapshot source for the replication * group.

*/ inline ReplicationGroup& WithSnapshottingClusterId(Aws::String&& value) { SetSnapshottingClusterId(std::move(value)); return *this;} /** *

The cluster ID that is used as the daily snapshot source for the replication * group.

*/ inline ReplicationGroup& WithSnapshottingClusterId(const char* value) { SetSnapshottingClusterId(value); return *this;} /** *

Indicates the status of automatic failover for this Redis replication * group.

*/ inline const AutomaticFailoverStatus& GetAutomaticFailover() const{ return m_automaticFailover; } /** *

Indicates the status of automatic failover for this Redis replication * group.

*/ inline bool AutomaticFailoverHasBeenSet() const { return m_automaticFailoverHasBeenSet; } /** *

Indicates the status of automatic failover for this Redis replication * group.

*/ inline void SetAutomaticFailover(const AutomaticFailoverStatus& value) { m_automaticFailoverHasBeenSet = true; m_automaticFailover = value; } /** *

Indicates the status of automatic failover for this Redis replication * group.

*/ inline void SetAutomaticFailover(AutomaticFailoverStatus&& value) { m_automaticFailoverHasBeenSet = true; m_automaticFailover = std::move(value); } /** *

Indicates the status of automatic failover for this Redis replication * group.

*/ inline ReplicationGroup& WithAutomaticFailover(const AutomaticFailoverStatus& value) { SetAutomaticFailover(value); return *this;} /** *

Indicates the status of automatic failover for this Redis replication * group.

*/ inline ReplicationGroup& WithAutomaticFailover(AutomaticFailoverStatus&& value) { SetAutomaticFailover(std::move(value)); return *this;} /** *

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. * For more information, see Minimizing * Downtime: Multi-AZ

*/ inline const MultiAZStatus& GetMultiAZ() const{ return m_multiAZ; } /** *

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. * For more information, see Minimizing * Downtime: Multi-AZ

*/ inline bool MultiAZHasBeenSet() const { return m_multiAZHasBeenSet; } /** *

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. * For more information, see Minimizing * Downtime: Multi-AZ

*/ inline void SetMultiAZ(const MultiAZStatus& value) { m_multiAZHasBeenSet = true; m_multiAZ = value; } /** *

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. * For more information, see Minimizing * Downtime: Multi-AZ

*/ inline void SetMultiAZ(MultiAZStatus&& value) { m_multiAZHasBeenSet = true; m_multiAZ = std::move(value); } /** *

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. * For more information, see Minimizing * Downtime: Multi-AZ

*/ inline ReplicationGroup& WithMultiAZ(const MultiAZStatus& value) { SetMultiAZ(value); return *this;} /** *

A flag indicating if you have Multi-AZ enabled to enhance fault tolerance. * For more information, see Minimizing * Downtime: Multi-AZ

*/ inline ReplicationGroup& WithMultiAZ(MultiAZStatus&& value) { SetMultiAZ(std::move(value)); return *this;} /** *

The configuration endpoint for this replication group. Use the configuration * endpoint to connect to this replication group.

*/ inline const Endpoint& GetConfigurationEndpoint() const{ return m_configurationEndpoint; } /** *

The configuration endpoint for this replication group. Use the configuration * endpoint to connect to this replication group.

*/ inline bool ConfigurationEndpointHasBeenSet() const { return m_configurationEndpointHasBeenSet; } /** *

The configuration endpoint for this replication group. Use the configuration * endpoint to connect to this replication group.

*/ inline void SetConfigurationEndpoint(const Endpoint& value) { m_configurationEndpointHasBeenSet = true; m_configurationEndpoint = value; } /** *

The configuration endpoint for this replication group. Use the configuration * endpoint to connect to this replication group.

*/ inline void SetConfigurationEndpoint(Endpoint&& value) { m_configurationEndpointHasBeenSet = true; m_configurationEndpoint = std::move(value); } /** *

The configuration endpoint for this replication group. Use the configuration * endpoint to connect to this replication group.

*/ inline ReplicationGroup& WithConfigurationEndpoint(const Endpoint& value) { SetConfigurationEndpoint(value); return *this;} /** *

The configuration endpoint for this replication group. Use the configuration * endpoint to connect to this replication group.

*/ inline ReplicationGroup& WithConfigurationEndpoint(Endpoint&& value) { SetConfigurationEndpoint(std::move(value)); return *this;} /** *

The number of days for which ElastiCache retains automatic cluster snapshots * before deleting them. For example, if you set * SnapshotRetentionLimit to 5, a snapshot that was taken today is * retained for 5 days before being deleted.

If the value of * SnapshotRetentionLimit is set to zero (0), backups are turned * off.

*/ inline int GetSnapshotRetentionLimit() const{ return m_snapshotRetentionLimit; } /** *

The number of days for which ElastiCache retains automatic cluster snapshots * before deleting them. For example, if you set * SnapshotRetentionLimit to 5, a snapshot that was taken today is * retained for 5 days before being deleted.

If the value of * SnapshotRetentionLimit is set to zero (0), backups are turned * off.

*/ inline bool SnapshotRetentionLimitHasBeenSet() const { return m_snapshotRetentionLimitHasBeenSet; } /** *

The number of days for which ElastiCache retains automatic cluster snapshots * before deleting them. For example, if you set * SnapshotRetentionLimit to 5, a snapshot that was taken today is * retained for 5 days before being deleted.

If the value of * SnapshotRetentionLimit is set to zero (0), backups are turned * off.

*/ inline void SetSnapshotRetentionLimit(int value) { m_snapshotRetentionLimitHasBeenSet = true; m_snapshotRetentionLimit = value; } /** *

The number of days for which ElastiCache retains automatic cluster snapshots * before deleting them. For example, if you set * SnapshotRetentionLimit to 5, a snapshot that was taken today is * retained for 5 days before being deleted.

If the value of * SnapshotRetentionLimit is set to zero (0), backups are turned * off.

*/ inline ReplicationGroup& WithSnapshotRetentionLimit(int value) { SetSnapshotRetentionLimit(value); return *this;} /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of your node group (shard).

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

This parameter is only valid if the * Engine parameter is redis.

*/ inline const Aws::String& GetSnapshotWindow() const{ return m_snapshotWindow; } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of your node group (shard).

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

This parameter is only valid if the * Engine parameter is redis.

*/ inline bool SnapshotWindowHasBeenSet() const { return m_snapshotWindowHasBeenSet; } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of your node group (shard).

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

This parameter is only valid if the * Engine parameter is redis.

*/ inline void SetSnapshotWindow(const Aws::String& value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow = value; } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of your node group (shard).

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

This parameter is only valid if the * Engine parameter is redis.

*/ inline void SetSnapshotWindow(Aws::String&& value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow = std::move(value); } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of your node group (shard).

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

This parameter is only valid if the * Engine parameter is redis.

*/ inline void SetSnapshotWindow(const char* value) { m_snapshotWindowHasBeenSet = true; m_snapshotWindow.assign(value); } /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of your node group (shard).

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

This parameter is only valid if the * Engine parameter is redis.

*/ inline ReplicationGroup& WithSnapshotWindow(const Aws::String& value) { SetSnapshotWindow(value); return *this;} /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of your node group (shard).

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

This parameter is only valid if the * Engine parameter is redis.

*/ inline ReplicationGroup& WithSnapshotWindow(Aws::String&& value) { SetSnapshotWindow(std::move(value)); return *this;} /** *

The daily time range (in UTC) during which ElastiCache begins taking a daily * snapshot of your node group (shard).

Example: 05:00-09:00 *

If you do not specify this parameter, ElastiCache automatically chooses * an appropriate time range.

This parameter is only valid if the * Engine parameter is redis.

*/ inline ReplicationGroup& WithSnapshotWindow(const char* value) { SetSnapshotWindow(value); return *this;} /** *

A flag indicating whether or not this replication group is cluster enabled; * i.e., whether its data can be partitioned across multiple shards (API/CLI: node * groups).

Valid values: true | false

*/ inline bool GetClusterEnabled() const{ return m_clusterEnabled; } /** *

A flag indicating whether or not this replication group is cluster enabled; * i.e., whether its data can be partitioned across multiple shards (API/CLI: node * groups).

Valid values: true | false

*/ inline bool ClusterEnabledHasBeenSet() const { return m_clusterEnabledHasBeenSet; } /** *

A flag indicating whether or not this replication group is cluster enabled; * i.e., whether its data can be partitioned across multiple shards (API/CLI: node * groups).

Valid values: true | false

*/ inline void SetClusterEnabled(bool value) { m_clusterEnabledHasBeenSet = true; m_clusterEnabled = value; } /** *

A flag indicating whether or not this replication group is cluster enabled; * i.e., whether its data can be partitioned across multiple shards (API/CLI: node * groups).

Valid values: true | false

*/ inline ReplicationGroup& WithClusterEnabled(bool value) { SetClusterEnabled(value); return *this;} /** *

The name of the compute and memory capacity node type for each node in the * replication group.

*/ inline const Aws::String& GetCacheNodeType() const{ return m_cacheNodeType; } /** *

The name of the compute and memory capacity node type for each node in the * replication group.

*/ inline bool CacheNodeTypeHasBeenSet() const { return m_cacheNodeTypeHasBeenSet; } /** *

The name of the compute and memory capacity node type for each node in the * replication group.

*/ inline void SetCacheNodeType(const Aws::String& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = value; } /** *

The name of the compute and memory capacity node type for each node in the * replication group.

*/ inline void SetCacheNodeType(Aws::String&& value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType = std::move(value); } /** *

The name of the compute and memory capacity node type for each node in the * replication group.

*/ inline void SetCacheNodeType(const char* value) { m_cacheNodeTypeHasBeenSet = true; m_cacheNodeType.assign(value); } /** *

The name of the compute and memory capacity node type for each node in the * replication group.

*/ inline ReplicationGroup& WithCacheNodeType(const Aws::String& value) { SetCacheNodeType(value); return *this;} /** *

The name of the compute and memory capacity node type for each node in the * replication group.

*/ inline ReplicationGroup& WithCacheNodeType(Aws::String&& value) { SetCacheNodeType(std::move(value)); return *this;} /** *

The name of the compute and memory capacity node type for each node in the * replication group.

*/ inline ReplicationGroup& WithCacheNodeType(const char* value) { SetCacheNodeType(value); return *this;} /** *

A flag that enables using an AuthToken (password) when issuing * Redis commands.

Default: false

*/ inline bool GetAuthTokenEnabled() const{ return m_authTokenEnabled; } /** *

A flag that enables using an AuthToken (password) when issuing * Redis commands.

Default: false

*/ inline bool AuthTokenEnabledHasBeenSet() const { return m_authTokenEnabledHasBeenSet; } /** *

A flag that enables using an AuthToken (password) when issuing * Redis commands.

Default: false

*/ inline void SetAuthTokenEnabled(bool value) { m_authTokenEnabledHasBeenSet = true; m_authTokenEnabled = value; } /** *

A flag that enables using an AuthToken (password) when issuing * Redis commands.

Default: false

*/ inline ReplicationGroup& WithAuthTokenEnabled(bool value) { SetAuthTokenEnabled(value); return *this;} /** *

The date the auth token was last modified

*/ inline const Aws::Utils::DateTime& GetAuthTokenLastModifiedDate() const{ return m_authTokenLastModifiedDate; } /** *

The date the auth token was last modified

*/ inline bool AuthTokenLastModifiedDateHasBeenSet() const { return m_authTokenLastModifiedDateHasBeenSet; } /** *

The date the auth token was last modified

*/ inline void SetAuthTokenLastModifiedDate(const Aws::Utils::DateTime& value) { m_authTokenLastModifiedDateHasBeenSet = true; m_authTokenLastModifiedDate = value; } /** *

The date the auth token was last modified

*/ inline void SetAuthTokenLastModifiedDate(Aws::Utils::DateTime&& value) { m_authTokenLastModifiedDateHasBeenSet = true; m_authTokenLastModifiedDate = std::move(value); } /** *

The date the auth token was last modified

*/ inline ReplicationGroup& WithAuthTokenLastModifiedDate(const Aws::Utils::DateTime& value) { SetAuthTokenLastModifiedDate(value); return *this;} /** *

The date the auth token was last modified

*/ inline ReplicationGroup& WithAuthTokenLastModifiedDate(Aws::Utils::DateTime&& value) { SetAuthTokenLastModifiedDate(std::move(value)); return *this;} /** *

A flag that enables in-transit encryption when set to true.

*

Required: Only available when creating a replication group in an * Amazon VPC using redis version 3.2.6, 4.x or * later.

Default: false

*/ inline bool GetTransitEncryptionEnabled() const{ return m_transitEncryptionEnabled; } /** *

A flag that enables in-transit encryption when set to true.

*

Required: Only available when creating a replication group in an * Amazon VPC using redis version 3.2.6, 4.x or * later.

Default: false

*/ inline bool TransitEncryptionEnabledHasBeenSet() const { return m_transitEncryptionEnabledHasBeenSet; } /** *

A flag that enables in-transit encryption when set to true.

*

Required: Only available when creating a replication group in an * Amazon VPC using redis version 3.2.6, 4.x or * later.

Default: false

*/ inline void SetTransitEncryptionEnabled(bool value) { m_transitEncryptionEnabledHasBeenSet = true; m_transitEncryptionEnabled = value; } /** *

A flag that enables in-transit encryption when set to true.

*

Required: Only available when creating a replication group in an * Amazon VPC using redis version 3.2.6, 4.x or * later.

Default: false

*/ inline ReplicationGroup& WithTransitEncryptionEnabled(bool value) { SetTransitEncryptionEnabled(value); return *this;} /** *

A flag that enables encryption at-rest when set to true.

*

You cannot modify the value of AtRestEncryptionEnabled after the * cluster is created. To enable encryption at-rest on a cluster you must set * AtRestEncryptionEnabled to true when you create a * cluster.

Required: Only available when creating a replication * group in an Amazon VPC using redis version 3.2.6, 4.x * or later.

Default: false

*/ inline bool GetAtRestEncryptionEnabled() const{ return m_atRestEncryptionEnabled; } /** *

A flag that enables encryption at-rest when set to true.

*

You cannot modify the value of AtRestEncryptionEnabled after the * cluster is created. To enable encryption at-rest on a cluster you must set * AtRestEncryptionEnabled to true when you create a * cluster.

Required: Only available when creating a replication * group in an Amazon VPC using redis version 3.2.6, 4.x * or later.

Default: false

*/ inline bool AtRestEncryptionEnabledHasBeenSet() const { return m_atRestEncryptionEnabledHasBeenSet; } /** *

A flag that enables encryption at-rest when set to true.

*

You cannot modify the value of AtRestEncryptionEnabled after the * cluster is created. To enable encryption at-rest on a cluster you must set * AtRestEncryptionEnabled to true when you create a * cluster.

Required: Only available when creating a replication * group in an Amazon VPC using redis version 3.2.6, 4.x * or later.

Default: false

*/ inline void SetAtRestEncryptionEnabled(bool value) { m_atRestEncryptionEnabledHasBeenSet = true; m_atRestEncryptionEnabled = value; } /** *

A flag that enables encryption at-rest when set to true.

*

You cannot modify the value of AtRestEncryptionEnabled after the * cluster is created. To enable encryption at-rest on a cluster you must set * AtRestEncryptionEnabled to true when you create a * cluster.

Required: Only available when creating a replication * group in an Amazon VPC using redis version 3.2.6, 4.x * or later.

Default: false

*/ inline ReplicationGroup& WithAtRestEncryptionEnabled(bool value) { SetAtRestEncryptionEnabled(value); return *this;} /** *

The outpost ARNs of the replication group's member clusters.

*/ inline const Aws::Vector& GetMemberClustersOutpostArns() const{ return m_memberClustersOutpostArns; } /** *

The outpost ARNs of the replication group's member clusters.

*/ inline bool MemberClustersOutpostArnsHasBeenSet() const { return m_memberClustersOutpostArnsHasBeenSet; } /** *

The outpost ARNs of the replication group's member clusters.

*/ inline void SetMemberClustersOutpostArns(const Aws::Vector& value) { m_memberClustersOutpostArnsHasBeenSet = true; m_memberClustersOutpostArns = value; } /** *

The outpost ARNs of the replication group's member clusters.

*/ inline void SetMemberClustersOutpostArns(Aws::Vector&& value) { m_memberClustersOutpostArnsHasBeenSet = true; m_memberClustersOutpostArns = std::move(value); } /** *

The outpost ARNs of the replication group's member clusters.

*/ inline ReplicationGroup& WithMemberClustersOutpostArns(const Aws::Vector& value) { SetMemberClustersOutpostArns(value); return *this;} /** *

The outpost ARNs of the replication group's member clusters.

*/ inline ReplicationGroup& WithMemberClustersOutpostArns(Aws::Vector&& value) { SetMemberClustersOutpostArns(std::move(value)); return *this;} /** *

The outpost ARNs of the replication group's member clusters.

*/ inline ReplicationGroup& AddMemberClustersOutpostArns(const Aws::String& value) { m_memberClustersOutpostArnsHasBeenSet = true; m_memberClustersOutpostArns.push_back(value); return *this; } /** *

The outpost ARNs of the replication group's member clusters.

*/ inline ReplicationGroup& AddMemberClustersOutpostArns(Aws::String&& value) { m_memberClustersOutpostArnsHasBeenSet = true; m_memberClustersOutpostArns.push_back(std::move(value)); return *this; } /** *

The outpost ARNs of the replication group's member clusters.

*/ inline ReplicationGroup& AddMemberClustersOutpostArns(const char* value) { m_memberClustersOutpostArnsHasBeenSet = true; m_memberClustersOutpostArns.push_back(value); return *this; } /** *

The ID of the KMS key used to encrypt the disk in the cluster.

*/ inline const Aws::String& GetKmsKeyId() const{ return m_kmsKeyId; } /** *

The ID of the KMS key used to encrypt the disk in the cluster.

*/ inline bool KmsKeyIdHasBeenSet() const { return m_kmsKeyIdHasBeenSet; } /** *

The ID of the KMS key used to encrypt the disk in the cluster.

*/ inline void SetKmsKeyId(const Aws::String& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = value; } /** *

The ID of the KMS key used to encrypt the disk in the cluster.

*/ inline void SetKmsKeyId(Aws::String&& value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId = std::move(value); } /** *

The ID of the KMS key used to encrypt the disk in the cluster.

*/ inline void SetKmsKeyId(const char* value) { m_kmsKeyIdHasBeenSet = true; m_kmsKeyId.assign(value); } /** *

The ID of the KMS key used to encrypt the disk in the cluster.

*/ inline ReplicationGroup& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

The ID of the KMS key used to encrypt the disk in the cluster.

*/ inline ReplicationGroup& WithKmsKeyId(Aws::String&& value) { SetKmsKeyId(std::move(value)); return *this;} /** *

The ID of the KMS key used to encrypt the disk in the cluster.

*/ inline ReplicationGroup& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

The ARN (Amazon Resource Name) of the replication group.

*/ inline const Aws::String& GetARN() const{ return m_aRN; } /** *

The ARN (Amazon Resource Name) of the replication group.

*/ inline bool ARNHasBeenSet() const { return m_aRNHasBeenSet; } /** *

The ARN (Amazon Resource Name) of the replication group.

*/ inline void SetARN(const Aws::String& value) { m_aRNHasBeenSet = true; m_aRN = value; } /** *

The ARN (Amazon Resource Name) of the replication group.

*/ inline void SetARN(Aws::String&& value) { m_aRNHasBeenSet = true; m_aRN = std::move(value); } /** *

The ARN (Amazon Resource Name) of the replication group.

*/ inline void SetARN(const char* value) { m_aRNHasBeenSet = true; m_aRN.assign(value); } /** *

The ARN (Amazon Resource Name) of the replication group.

*/ inline ReplicationGroup& WithARN(const Aws::String& value) { SetARN(value); return *this;} /** *

The ARN (Amazon Resource Name) of the replication group.

*/ inline ReplicationGroup& WithARN(Aws::String&& value) { SetARN(std::move(value)); return *this;} /** *

The ARN (Amazon Resource Name) of the replication group.

*/ inline ReplicationGroup& WithARN(const char* value) { SetARN(value); return *this;} /** *

The ID of the user group associated to the replication group.

*/ inline const Aws::Vector& GetUserGroupIds() const{ return m_userGroupIds; } /** *

The ID of the user group associated to the replication group.

*/ inline bool UserGroupIdsHasBeenSet() const { return m_userGroupIdsHasBeenSet; } /** *

The ID of the user group associated to the replication group.

*/ inline void SetUserGroupIds(const Aws::Vector& value) { m_userGroupIdsHasBeenSet = true; m_userGroupIds = value; } /** *

The ID of the user group associated to the replication group.

*/ inline void SetUserGroupIds(Aws::Vector&& value) { m_userGroupIdsHasBeenSet = true; m_userGroupIds = std::move(value); } /** *

The ID of the user group associated to the replication group.

*/ inline ReplicationGroup& WithUserGroupIds(const Aws::Vector& value) { SetUserGroupIds(value); return *this;} /** *

The ID of the user group associated to the replication group.

*/ inline ReplicationGroup& WithUserGroupIds(Aws::Vector&& value) { SetUserGroupIds(std::move(value)); return *this;} /** *

The ID of the user group associated to the replication group.

*/ inline ReplicationGroup& AddUserGroupIds(const Aws::String& value) { m_userGroupIdsHasBeenSet = true; m_userGroupIds.push_back(value); return *this; } /** *

The ID of the user group associated to the replication group.

*/ inline ReplicationGroup& AddUserGroupIds(Aws::String&& value) { m_userGroupIdsHasBeenSet = true; m_userGroupIds.push_back(std::move(value)); return *this; } /** *

The ID of the user group associated to the replication group.

*/ inline ReplicationGroup& AddUserGroupIds(const char* value) { m_userGroupIdsHasBeenSet = true; m_userGroupIds.push_back(value); return *this; } /** *

Returns the destination, format and type of the logs.

*/ inline const Aws::Vector& GetLogDeliveryConfigurations() const{ return m_logDeliveryConfigurations; } /** *

Returns the destination, format and type of the logs.

*/ inline bool LogDeliveryConfigurationsHasBeenSet() const { return m_logDeliveryConfigurationsHasBeenSet; } /** *

Returns the destination, format and type of the logs.

*/ inline void SetLogDeliveryConfigurations(const Aws::Vector& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations = value; } /** *

Returns the destination, format and type of the logs.

*/ inline void SetLogDeliveryConfigurations(Aws::Vector&& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations = std::move(value); } /** *

Returns the destination, format and type of the logs.

*/ inline ReplicationGroup& WithLogDeliveryConfigurations(const Aws::Vector& value) { SetLogDeliveryConfigurations(value); return *this;} /** *

Returns the destination, format and type of the logs.

*/ inline ReplicationGroup& WithLogDeliveryConfigurations(Aws::Vector&& value) { SetLogDeliveryConfigurations(std::move(value)); return *this;} /** *

Returns the destination, format and type of the logs.

*/ inline ReplicationGroup& AddLogDeliveryConfigurations(const LogDeliveryConfiguration& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations.push_back(value); return *this; } /** *

Returns the destination, format and type of the logs.

*/ inline ReplicationGroup& AddLogDeliveryConfigurations(LogDeliveryConfiguration&& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations.push_back(std::move(value)); return *this; } /** *

The date and time when the cluster was created.

*/ inline const Aws::Utils::DateTime& GetReplicationGroupCreateTime() const{ return m_replicationGroupCreateTime; } /** *

The date and time when the cluster was created.

*/ inline bool ReplicationGroupCreateTimeHasBeenSet() const { return m_replicationGroupCreateTimeHasBeenSet; } /** *

The date and time when the cluster was created.

*/ inline void SetReplicationGroupCreateTime(const Aws::Utils::DateTime& value) { m_replicationGroupCreateTimeHasBeenSet = true; m_replicationGroupCreateTime = value; } /** *

The date and time when the cluster was created.

*/ inline void SetReplicationGroupCreateTime(Aws::Utils::DateTime&& value) { m_replicationGroupCreateTimeHasBeenSet = true; m_replicationGroupCreateTime = std::move(value); } /** *

The date and time when the cluster was created.

*/ inline ReplicationGroup& WithReplicationGroupCreateTime(const Aws::Utils::DateTime& value) { SetReplicationGroupCreateTime(value); return *this;} /** *

The date and time when the cluster was created.

*/ inline ReplicationGroup& WithReplicationGroupCreateTime(Aws::Utils::DateTime&& value) { SetReplicationGroupCreateTime(std::move(value)); return *this;} /** *

Enables data tiering. Data tiering is only supported for replication groups * using the r6gd node type. This parameter must be set to true when using r6gd * nodes. For more information, see Data * tiering.

*/ inline const DataTieringStatus& GetDataTiering() const{ return m_dataTiering; } /** *

Enables data tiering. Data tiering is only supported for replication groups * using the r6gd node type. This parameter must be set to true when using r6gd * nodes. For more information, see Data * tiering.

*/ inline bool DataTieringHasBeenSet() const { return m_dataTieringHasBeenSet; } /** *

Enables data tiering. Data tiering is only supported for replication groups * using the r6gd node type. This parameter must be set to true when using r6gd * nodes. For more information, see Data * tiering.

*/ inline void SetDataTiering(const DataTieringStatus& value) { m_dataTieringHasBeenSet = true; m_dataTiering = value; } /** *

Enables data tiering. Data tiering is only supported for replication groups * using the r6gd node type. This parameter must be set to true when using r6gd * nodes. For more information, see Data * tiering.

*/ inline void SetDataTiering(DataTieringStatus&& value) { m_dataTieringHasBeenSet = true; m_dataTiering = std::move(value); } /** *

Enables data tiering. Data tiering is only supported for replication groups * using the r6gd node type. This parameter must be set to true when using r6gd * nodes. For more information, see Data * tiering.

*/ inline ReplicationGroup& WithDataTiering(const DataTieringStatus& value) { SetDataTiering(value); return *this;} /** *

Enables data tiering. Data tiering is only supported for replication groups * using the r6gd node type. This parameter must be set to true when using r6gd * nodes. For more information, see Data * tiering.

*/ inline ReplicationGroup& WithDataTiering(DataTieringStatus&& value) { SetDataTiering(std::move(value)); return *this;} /** *

If you are running Redis engine version 6.0 or later, set this parameter to * yes if you want to opt-in to the next auto minor version upgrade campaign. This * parameter is disabled for previous versions.

*/ inline bool GetAutoMinorVersionUpgrade() const{ return m_autoMinorVersionUpgrade; } /** *

If you are running Redis engine version 6.0 or later, set this parameter to * yes if you want to opt-in to the next auto minor version upgrade campaign. This * parameter is disabled for previous versions.

*/ inline bool AutoMinorVersionUpgradeHasBeenSet() const { return m_autoMinorVersionUpgradeHasBeenSet; } /** *

If you are running Redis engine version 6.0 or later, set this parameter to * yes if you want to opt-in to the next auto minor version upgrade campaign. This * parameter is disabled for previous versions.

*/ inline void SetAutoMinorVersionUpgrade(bool value) { m_autoMinorVersionUpgradeHasBeenSet = true; m_autoMinorVersionUpgrade = value; } /** *

If you are running Redis engine version 6.0 or later, set this parameter to * yes if you want to opt-in to the next auto minor version upgrade campaign. This * parameter is disabled for previous versions.

*/ inline ReplicationGroup& WithAutoMinorVersionUpgrade(bool value) { SetAutoMinorVersionUpgrade(value); return *this;} /** *

Must be either ipv4 | ipv6 | * dual_stack. IPv6 is supported for workloads using Redis engine * version 6.2 onward or Memcached engine version 1.6.6 on all instances built on * the Nitro system.

*/ inline const NetworkType& GetNetworkType() const{ return m_networkType; } /** *

Must be either ipv4 | ipv6 | * dual_stack. IPv6 is supported for workloads using Redis engine * version 6.2 onward or Memcached engine version 1.6.6 on all instances built on * the Nitro system.

*/ inline bool NetworkTypeHasBeenSet() const { return m_networkTypeHasBeenSet; } /** *

Must be either ipv4 | ipv6 | * dual_stack. IPv6 is supported for workloads using Redis engine * version 6.2 onward or Memcached engine version 1.6.6 on all instances built on * the Nitro system.

*/ inline void SetNetworkType(const NetworkType& value) { m_networkTypeHasBeenSet = true; m_networkType = value; } /** *

Must be either ipv4 | ipv6 | * dual_stack. IPv6 is supported for workloads using Redis engine * version 6.2 onward or Memcached engine version 1.6.6 on all instances built on * the Nitro system.

*/ inline void SetNetworkType(NetworkType&& value) { m_networkTypeHasBeenSet = true; m_networkType = std::move(value); } /** *

Must be either ipv4 | ipv6 | * dual_stack. IPv6 is supported for workloads using Redis engine * version 6.2 onward or Memcached engine version 1.6.6 on all instances built on * the Nitro system.

*/ inline ReplicationGroup& WithNetworkType(const NetworkType& value) { SetNetworkType(value); return *this;} /** *

Must be either ipv4 | ipv6 | * dual_stack. IPv6 is supported for workloads using Redis engine * version 6.2 onward or Memcached engine version 1.6.6 on all instances built on * the Nitro system.

*/ inline ReplicationGroup& WithNetworkType(NetworkType&& value) { SetNetworkType(std::move(value)); return *this;} /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline const IpDiscovery& GetIpDiscovery() const{ return m_ipDiscovery; } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline bool IpDiscoveryHasBeenSet() const { return m_ipDiscoveryHasBeenSet; } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline void SetIpDiscovery(const IpDiscovery& value) { m_ipDiscoveryHasBeenSet = true; m_ipDiscovery = value; } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline void SetIpDiscovery(IpDiscovery&& value) { m_ipDiscoveryHasBeenSet = true; m_ipDiscovery = std::move(value); } /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline ReplicationGroup& WithIpDiscovery(const IpDiscovery& value) { SetIpDiscovery(value); return *this;} /** *

The network type you choose when modifying a cluster, either * ipv4 | ipv6. IPv6 is supported for workloads using * Redis engine version 6.2 onward or Memcached engine version 1.6.6 on all * instances built on the Nitro * system.

*/ inline ReplicationGroup& WithIpDiscovery(IpDiscovery&& value) { SetIpDiscovery(std::move(value)); return *this;} /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

*/ inline const TransitEncryptionMode& GetTransitEncryptionMode() const{ return m_transitEncryptionMode; } /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

*/ inline bool TransitEncryptionModeHasBeenSet() const { return m_transitEncryptionModeHasBeenSet; } /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

*/ inline void SetTransitEncryptionMode(const TransitEncryptionMode& value) { m_transitEncryptionModeHasBeenSet = true; m_transitEncryptionMode = value; } /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

*/ inline void SetTransitEncryptionMode(TransitEncryptionMode&& value) { m_transitEncryptionModeHasBeenSet = true; m_transitEncryptionMode = std::move(value); } /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

*/ inline ReplicationGroup& WithTransitEncryptionMode(const TransitEncryptionMode& value) { SetTransitEncryptionMode(value); return *this;} /** *

A setting that allows you to migrate your clients to use in-transit * encryption, with no downtime.

*/ inline ReplicationGroup& WithTransitEncryptionMode(TransitEncryptionMode&& value) { SetTransitEncryptionMode(std::move(value)); return *this;} /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline const ClusterMode& GetClusterMode() const{ return m_clusterMode; } /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline bool ClusterModeHasBeenSet() const { return m_clusterModeHasBeenSet; } /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline void SetClusterMode(const ClusterMode& value) { m_clusterModeHasBeenSet = true; m_clusterMode = value; } /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline void SetClusterMode(ClusterMode&& value) { m_clusterModeHasBeenSet = true; m_clusterMode = std::move(value); } /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline ReplicationGroup& WithClusterMode(const ClusterMode& value) { SetClusterMode(value); return *this;} /** *

Enabled or Disabled. To modify cluster mode from Disabled to Enabled, you * must first set the cluster mode to Compatible. Compatible mode allows your Redis * clients to connect using both cluster mode enabled and cluster mode disabled. * After you migrate all Redis clients to use cluster mode enabled, you can then * complete cluster mode configuration and set the cluster mode to Enabled.

*/ inline ReplicationGroup& WithClusterMode(ClusterMode&& value) { SetClusterMode(std::move(value)); return *this;} private: Aws::String m_replicationGroupId; bool m_replicationGroupIdHasBeenSet = false; Aws::String m_description; bool m_descriptionHasBeenSet = false; GlobalReplicationGroupInfo m_globalReplicationGroupInfo; bool m_globalReplicationGroupInfoHasBeenSet = false; Aws::String m_status; bool m_statusHasBeenSet = false; ReplicationGroupPendingModifiedValues m_pendingModifiedValues; bool m_pendingModifiedValuesHasBeenSet = false; Aws::Vector m_memberClusters; bool m_memberClustersHasBeenSet = false; Aws::Vector m_nodeGroups; bool m_nodeGroupsHasBeenSet = false; Aws::String m_snapshottingClusterId; bool m_snapshottingClusterIdHasBeenSet = false; AutomaticFailoverStatus m_automaticFailover; bool m_automaticFailoverHasBeenSet = false; MultiAZStatus m_multiAZ; bool m_multiAZHasBeenSet = false; Endpoint m_configurationEndpoint; bool m_configurationEndpointHasBeenSet = false; int m_snapshotRetentionLimit; bool m_snapshotRetentionLimitHasBeenSet = false; Aws::String m_snapshotWindow; bool m_snapshotWindowHasBeenSet = false; bool m_clusterEnabled; bool m_clusterEnabledHasBeenSet = false; Aws::String m_cacheNodeType; bool m_cacheNodeTypeHasBeenSet = false; bool m_authTokenEnabled; bool m_authTokenEnabledHasBeenSet = false; Aws::Utils::DateTime m_authTokenLastModifiedDate; bool m_authTokenLastModifiedDateHasBeenSet = false; bool m_transitEncryptionEnabled; bool m_transitEncryptionEnabledHasBeenSet = false; bool m_atRestEncryptionEnabled; bool m_atRestEncryptionEnabledHasBeenSet = false; Aws::Vector m_memberClustersOutpostArns; bool m_memberClustersOutpostArnsHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::String m_aRN; bool m_aRNHasBeenSet = false; Aws::Vector m_userGroupIds; bool m_userGroupIdsHasBeenSet = false; Aws::Vector m_logDeliveryConfigurations; bool m_logDeliveryConfigurationsHasBeenSet = false; Aws::Utils::DateTime m_replicationGroupCreateTime; bool m_replicationGroupCreateTimeHasBeenSet = false; DataTieringStatus m_dataTiering; bool m_dataTieringHasBeenSet = false; bool m_autoMinorVersionUpgrade; bool m_autoMinorVersionUpgradeHasBeenSet = false; NetworkType m_networkType; bool m_networkTypeHasBeenSet = false; IpDiscovery m_ipDiscovery; bool m_ipDiscoveryHasBeenSet = false; TransitEncryptionMode m_transitEncryptionMode; bool m_transitEncryptionModeHasBeenSet = false; ClusterMode m_clusterMode; bool m_clusterModeHasBeenSet = false; }; } // namespace Model } // namespace ElastiCache } // namespace Aws