/** * 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 namespace Aws { namespace ElastiCache { namespace Model { /** *

Represents the input of a CreateReplicationGroup * operation.

See Also:

AWS * API Reference

*/ class CreateReplicationGroupRequest : public ElastiCacheRequest { public: AWS_ELASTICACHE_API CreateReplicationGroupRequest(); // 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 "CreateReplicationGroup"; } AWS_ELASTICACHE_API Aws::String SerializePayload() const override; protected: AWS_ELASTICACHE_API void DumpBodyToUrl(Aws::Http::URI& uri ) const override; public: /** *

The replication group identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 to 40 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The replication group identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 to 40 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The replication group identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 to 40 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The replication group identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 to 40 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The replication group identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 to 40 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The replication group identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 to 40 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The replication group identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 to 40 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

The replication group identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 to 40 * alphanumeric characters or hyphens.

  • The first character must * be a letter.

  • A name cannot end with a hyphen or contain two * consecutive hyphens.

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

A user-created description for the replication group.

*/ inline const Aws::String& GetReplicationGroupDescription() const{ return m_replicationGroupDescription; } /** *

A user-created description for the replication group.

*/ inline bool ReplicationGroupDescriptionHasBeenSet() const { return m_replicationGroupDescriptionHasBeenSet; } /** *

A user-created description for the replication group.

*/ inline void SetReplicationGroupDescription(const Aws::String& value) { m_replicationGroupDescriptionHasBeenSet = true; m_replicationGroupDescription = value; } /** *

A user-created description for the replication group.

*/ inline void SetReplicationGroupDescription(Aws::String&& value) { m_replicationGroupDescriptionHasBeenSet = true; m_replicationGroupDescription = std::move(value); } /** *

A user-created description for the replication group.

*/ inline void SetReplicationGroupDescription(const char* value) { m_replicationGroupDescriptionHasBeenSet = true; m_replicationGroupDescription.assign(value); } /** *

A user-created description for the replication group.

*/ inline CreateReplicationGroupRequest& WithReplicationGroupDescription(const Aws::String& value) { SetReplicationGroupDescription(value); return *this;} /** *

A user-created description for the replication group.

*/ inline CreateReplicationGroupRequest& WithReplicationGroupDescription(Aws::String&& value) { SetReplicationGroupDescription(std::move(value)); return *this;} /** *

A user-created description for the replication group.

*/ inline CreateReplicationGroupRequest& WithReplicationGroupDescription(const char* value) { SetReplicationGroupDescription(value); return *this;} /** *

The name of the Global datastore

*/ inline const Aws::String& GetGlobalReplicationGroupId() const{ return m_globalReplicationGroupId; } /** *

The name of the Global datastore

*/ inline bool GlobalReplicationGroupIdHasBeenSet() const { return m_globalReplicationGroupIdHasBeenSet; } /** *

The name of the Global datastore

*/ inline void SetGlobalReplicationGroupId(const Aws::String& value) { m_globalReplicationGroupIdHasBeenSet = true; m_globalReplicationGroupId = value; } /** *

The name of the Global datastore

*/ inline void SetGlobalReplicationGroupId(Aws::String&& value) { m_globalReplicationGroupIdHasBeenSet = true; m_globalReplicationGroupId = std::move(value); } /** *

The name of the Global datastore

*/ inline void SetGlobalReplicationGroupId(const char* value) { m_globalReplicationGroupIdHasBeenSet = true; m_globalReplicationGroupId.assign(value); } /** *

The name of the Global datastore

*/ inline CreateReplicationGroupRequest& WithGlobalReplicationGroupId(const Aws::String& value) { SetGlobalReplicationGroupId(value); return *this;} /** *

The name of the Global datastore

*/ inline CreateReplicationGroupRequest& WithGlobalReplicationGroupId(Aws::String&& value) { SetGlobalReplicationGroupId(std::move(value)); return *this;} /** *

The name of the Global datastore

*/ inline CreateReplicationGroupRequest& WithGlobalReplicationGroupId(const char* value) { SetGlobalReplicationGroupId(value); return *this;} /** *

The identifier of the cluster that serves as the primary for this replication * group. This cluster must already exist and have a status of * available.

This parameter is not required if * NumCacheClusters, NumNodeGroups, or * ReplicasPerNodeGroup is specified.

*/ inline const Aws::String& GetPrimaryClusterId() const{ return m_primaryClusterId; } /** *

The identifier of the cluster that serves as the primary for this replication * group. This cluster must already exist and have a status of * available.

This parameter is not required if * NumCacheClusters, NumNodeGroups, or * ReplicasPerNodeGroup is specified.

*/ inline bool PrimaryClusterIdHasBeenSet() const { return m_primaryClusterIdHasBeenSet; } /** *

The identifier of the cluster that serves as the primary for this replication * group. This cluster must already exist and have a status of * available.

This parameter is not required if * NumCacheClusters, NumNodeGroups, or * ReplicasPerNodeGroup is specified.

*/ inline void SetPrimaryClusterId(const Aws::String& value) { m_primaryClusterIdHasBeenSet = true; m_primaryClusterId = value; } /** *

The identifier of the cluster that serves as the primary for this replication * group. This cluster must already exist and have a status of * available.

This parameter is not required if * NumCacheClusters, NumNodeGroups, or * ReplicasPerNodeGroup is specified.

*/ inline void SetPrimaryClusterId(Aws::String&& value) { m_primaryClusterIdHasBeenSet = true; m_primaryClusterId = std::move(value); } /** *

The identifier of the cluster that serves as the primary for this replication * group. This cluster must already exist and have a status of * available.

This parameter is not required if * NumCacheClusters, NumNodeGroups, or * ReplicasPerNodeGroup is specified.

*/ inline void SetPrimaryClusterId(const char* value) { m_primaryClusterIdHasBeenSet = true; m_primaryClusterId.assign(value); } /** *

The identifier of the cluster that serves as the primary for this replication * group. This cluster must already exist and have a status of * available.

This parameter is not required if * NumCacheClusters, NumNodeGroups, or * ReplicasPerNodeGroup is specified.

*/ inline CreateReplicationGroupRequest& WithPrimaryClusterId(const Aws::String& value) { SetPrimaryClusterId(value); return *this;} /** *

The identifier of the cluster that serves as the primary for this replication * group. This cluster must already exist and have a status of * available.

This parameter is not required if * NumCacheClusters, NumNodeGroups, or * ReplicasPerNodeGroup is specified.

*/ inline CreateReplicationGroupRequest& WithPrimaryClusterId(Aws::String&& value) { SetPrimaryClusterId(std::move(value)); return *this;} /** *

The identifier of the cluster that serves as the primary for this replication * group. This cluster must already exist and have a status of * available.

This parameter is not required if * NumCacheClusters, NumNodeGroups, or * ReplicasPerNodeGroup is specified.

*/ inline CreateReplicationGroupRequest& WithPrimaryClusterId(const char* value) { SetPrimaryClusterId(value); return *this;} /** *

Specifies whether a read-only replica is automatically promoted to read/write * primary if the existing primary fails.

* AutomaticFailoverEnabled must be enabled for Redis (cluster mode * enabled) replication groups.

Default: false

*/ inline bool GetAutomaticFailoverEnabled() const{ return m_automaticFailoverEnabled; } /** *

Specifies whether a read-only replica is automatically promoted to read/write * primary if the existing primary fails.

* AutomaticFailoverEnabled must be enabled for Redis (cluster mode * enabled) replication groups.

Default: false

*/ inline bool AutomaticFailoverEnabledHasBeenSet() const { return m_automaticFailoverEnabledHasBeenSet; } /** *

Specifies whether a read-only replica is automatically promoted to read/write * primary if the existing primary fails.

* AutomaticFailoverEnabled must be enabled for Redis (cluster mode * enabled) replication groups.

Default: false

*/ inline void SetAutomaticFailoverEnabled(bool value) { m_automaticFailoverEnabledHasBeenSet = true; m_automaticFailoverEnabled = value; } /** *

Specifies whether a read-only replica is automatically promoted to read/write * primary if the existing primary fails.

* AutomaticFailoverEnabled must be enabled for Redis (cluster mode * enabled) replication groups.

Default: false

*/ inline CreateReplicationGroupRequest& WithAutomaticFailoverEnabled(bool value) { SetAutomaticFailoverEnabled(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 bool GetMultiAZEnabled() const{ return m_multiAZEnabled; } /** *

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

*/ inline bool MultiAZEnabledHasBeenSet() const { return m_multiAZEnabledHasBeenSet; } /** *

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

*/ inline void SetMultiAZEnabled(bool value) { m_multiAZEnabledHasBeenSet = true; m_multiAZEnabled = value; } /** *

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

*/ inline CreateReplicationGroupRequest& WithMultiAZEnabled(bool value) { SetMultiAZEnabled(value); return *this;} /** *

The number of clusters this replication group initially has.

This * parameter is not used if there is more than one node group (shard). You should * use ReplicasPerNodeGroup instead.

If * AutomaticFailoverEnabled is true, the value of this * parameter must be at least 2. If AutomaticFailoverEnabled is * false you can omit this parameter (it will default to 1), or you * can explicitly set it to a value between 2 and 6.

The maximum permitted * value for NumCacheClusters is 6 (1 primary plus 5 replicas).

*/ inline int GetNumCacheClusters() const{ return m_numCacheClusters; } /** *

The number of clusters this replication group initially has.

This * parameter is not used if there is more than one node group (shard). You should * use ReplicasPerNodeGroup instead.

If * AutomaticFailoverEnabled is true, the value of this * parameter must be at least 2. If AutomaticFailoverEnabled is * false you can omit this parameter (it will default to 1), or you * can explicitly set it to a value between 2 and 6.

The maximum permitted * value for NumCacheClusters is 6 (1 primary plus 5 replicas).

*/ inline bool NumCacheClustersHasBeenSet() const { return m_numCacheClustersHasBeenSet; } /** *

The number of clusters this replication group initially has.

This * parameter is not used if there is more than one node group (shard). You should * use ReplicasPerNodeGroup instead.

If * AutomaticFailoverEnabled is true, the value of this * parameter must be at least 2. If AutomaticFailoverEnabled is * false you can omit this parameter (it will default to 1), or you * can explicitly set it to a value between 2 and 6.

The maximum permitted * value for NumCacheClusters is 6 (1 primary plus 5 replicas).

*/ inline void SetNumCacheClusters(int value) { m_numCacheClustersHasBeenSet = true; m_numCacheClusters = value; } /** *

The number of clusters this replication group initially has.

This * parameter is not used if there is more than one node group (shard). You should * use ReplicasPerNodeGroup instead.

If * AutomaticFailoverEnabled is true, the value of this * parameter must be at least 2. If AutomaticFailoverEnabled is * false you can omit this parameter (it will default to 1), or you * can explicitly set it to a value between 2 and 6.

The maximum permitted * value for NumCacheClusters is 6 (1 primary plus 5 replicas).

*/ inline CreateReplicationGroupRequest& WithNumCacheClusters(int value) { SetNumCacheClusters(value); return *this;} /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline const Aws::Vector& GetPreferredCacheClusterAZs() const{ return m_preferredCacheClusterAZs; } /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline bool PreferredCacheClusterAZsHasBeenSet() const { return m_preferredCacheClusterAZsHasBeenSet; } /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline void SetPreferredCacheClusterAZs(const Aws::Vector& value) { m_preferredCacheClusterAZsHasBeenSet = true; m_preferredCacheClusterAZs = value; } /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline void SetPreferredCacheClusterAZs(Aws::Vector&& value) { m_preferredCacheClusterAZsHasBeenSet = true; m_preferredCacheClusterAZs = std::move(value); } /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline CreateReplicationGroupRequest& WithPreferredCacheClusterAZs(const Aws::Vector& value) { SetPreferredCacheClusterAZs(value); return *this;} /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline CreateReplicationGroupRequest& WithPreferredCacheClusterAZs(Aws::Vector&& value) { SetPreferredCacheClusterAZs(std::move(value)); return *this;} /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline CreateReplicationGroupRequest& AddPreferredCacheClusterAZs(const Aws::String& value) { m_preferredCacheClusterAZsHasBeenSet = true; m_preferredCacheClusterAZs.push_back(value); return *this; } /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline CreateReplicationGroupRequest& AddPreferredCacheClusterAZs(Aws::String&& value) { m_preferredCacheClusterAZsHasBeenSet = true; m_preferredCacheClusterAZs.push_back(std::move(value)); return *this; } /** *

A list of EC2 Availability Zones in which the replication group's clusters * are created. The order of the Availability Zones in the list is the order in * which clusters are allocated. The primary cluster is created in the first AZ in * the list.

This parameter is not used if there is more than one node group * (shard). You should use NodeGroupConfiguration instead.

*

If you are creating your replication group in an Amazon VPC (recommended), * you can only locate clusters in Availability Zones associated with the subnets * in the selected subnet group.

The number of Availability Zones listed * must equal the value of NumCacheClusters.

Default: * system chosen Availability Zones.

*/ inline CreateReplicationGroupRequest& AddPreferredCacheClusterAZs(const char* value) { m_preferredCacheClusterAZsHasBeenSet = true; m_preferredCacheClusterAZs.push_back(value); return *this; } /** *

An optional parameter that specifies the number of node groups (shards) for * this Redis (cluster mode enabled) replication group. For Redis (cluster mode * disabled) either omit this parameter or set it to 1.

Default: 1

*/ inline int GetNumNodeGroups() const{ return m_numNodeGroups; } /** *

An optional parameter that specifies the number of node groups (shards) for * this Redis (cluster mode enabled) replication group. For Redis (cluster mode * disabled) either omit this parameter or set it to 1.

Default: 1

*/ inline bool NumNodeGroupsHasBeenSet() const { return m_numNodeGroupsHasBeenSet; } /** *

An optional parameter that specifies the number of node groups (shards) for * this Redis (cluster mode enabled) replication group. For Redis (cluster mode * disabled) either omit this parameter or set it to 1.

Default: 1

*/ inline void SetNumNodeGroups(int value) { m_numNodeGroupsHasBeenSet = true; m_numNodeGroups = value; } /** *

An optional parameter that specifies the number of node groups (shards) for * this Redis (cluster mode enabled) replication group. For Redis (cluster mode * disabled) either omit this parameter or set it to 1.

Default: 1

*/ inline CreateReplicationGroupRequest& WithNumNodeGroups(int value) { SetNumNodeGroups(value); return *this;} /** *

An optional parameter that specifies the number of replica nodes in each node * group (shard). Valid values are 0 to 5.

*/ inline int GetReplicasPerNodeGroup() const{ return m_replicasPerNodeGroup; } /** *

An optional parameter that specifies the number of replica nodes in each node * group (shard). Valid values are 0 to 5.

*/ inline bool ReplicasPerNodeGroupHasBeenSet() const { return m_replicasPerNodeGroupHasBeenSet; } /** *

An optional parameter that specifies the number of replica nodes in each node * group (shard). Valid values are 0 to 5.

*/ inline void SetReplicasPerNodeGroup(int value) { m_replicasPerNodeGroupHasBeenSet = true; m_replicasPerNodeGroup = value; } /** *

An optional parameter that specifies the number of replica nodes in each node * group (shard). Valid values are 0 to 5.

*/ inline CreateReplicationGroupRequest& WithReplicasPerNodeGroup(int value) { SetReplicasPerNodeGroup(value); return *this;} /** *

A list of node group (shard) configuration options. Each node group (shard) * configuration has the following members: PrimaryAvailabilityZone, * ReplicaAvailabilityZones, ReplicaCount, and * Slots.

If you're creating a Redis (cluster mode disabled) or * a Redis (cluster mode enabled) replication group, you can use this parameter to * individually configure each node group (shard), or you can omit this parameter. * However, it is required when seeding a Redis (cluster mode enabled) cluster from * a S3 rdb file. You must configure each node group (shard) using this parameter * because you must specify the slots for each node group.

*/ inline const Aws::Vector& GetNodeGroupConfiguration() const{ return m_nodeGroupConfiguration; } /** *

A list of node group (shard) configuration options. Each node group (shard) * configuration has the following members: PrimaryAvailabilityZone, * ReplicaAvailabilityZones, ReplicaCount, and * Slots.

If you're creating a Redis (cluster mode disabled) or * a Redis (cluster mode enabled) replication group, you can use this parameter to * individually configure each node group (shard), or you can omit this parameter. * However, it is required when seeding a Redis (cluster mode enabled) cluster from * a S3 rdb file. You must configure each node group (shard) using this parameter * because you must specify the slots for each node group.

*/ inline bool NodeGroupConfigurationHasBeenSet() const { return m_nodeGroupConfigurationHasBeenSet; } /** *

A list of node group (shard) configuration options. Each node group (shard) * configuration has the following members: PrimaryAvailabilityZone, * ReplicaAvailabilityZones, ReplicaCount, and * Slots.

If you're creating a Redis (cluster mode disabled) or * a Redis (cluster mode enabled) replication group, you can use this parameter to * individually configure each node group (shard), or you can omit this parameter. * However, it is required when seeding a Redis (cluster mode enabled) cluster from * a S3 rdb file. You must configure each node group (shard) using this parameter * because you must specify the slots for each node group.

*/ inline void SetNodeGroupConfiguration(const Aws::Vector& value) { m_nodeGroupConfigurationHasBeenSet = true; m_nodeGroupConfiguration = value; } /** *

A list of node group (shard) configuration options. Each node group (shard) * configuration has the following members: PrimaryAvailabilityZone, * ReplicaAvailabilityZones, ReplicaCount, and * Slots.

If you're creating a Redis (cluster mode disabled) or * a Redis (cluster mode enabled) replication group, you can use this parameter to * individually configure each node group (shard), or you can omit this parameter. * However, it is required when seeding a Redis (cluster mode enabled) cluster from * a S3 rdb file. You must configure each node group (shard) using this parameter * because you must specify the slots for each node group.

*/ inline void SetNodeGroupConfiguration(Aws::Vector&& value) { m_nodeGroupConfigurationHasBeenSet = true; m_nodeGroupConfiguration = std::move(value); } /** *

A list of node group (shard) configuration options. Each node group (shard) * configuration has the following members: PrimaryAvailabilityZone, * ReplicaAvailabilityZones, ReplicaCount, and * Slots.

If you're creating a Redis (cluster mode disabled) or * a Redis (cluster mode enabled) replication group, you can use this parameter to * individually configure each node group (shard), or you can omit this parameter. * However, it is required when seeding a Redis (cluster mode enabled) cluster from * a S3 rdb file. You must configure each node group (shard) using this parameter * because you must specify the slots for each node group.

*/ inline CreateReplicationGroupRequest& WithNodeGroupConfiguration(const Aws::Vector& value) { SetNodeGroupConfiguration(value); return *this;} /** *

A list of node group (shard) configuration options. Each node group (shard) * configuration has the following members: PrimaryAvailabilityZone, * ReplicaAvailabilityZones, ReplicaCount, and * Slots.

If you're creating a Redis (cluster mode disabled) or * a Redis (cluster mode enabled) replication group, you can use this parameter to * individually configure each node group (shard), or you can omit this parameter. * However, it is required when seeding a Redis (cluster mode enabled) cluster from * a S3 rdb file. You must configure each node group (shard) using this parameter * because you must specify the slots for each node group.

*/ inline CreateReplicationGroupRequest& WithNodeGroupConfiguration(Aws::Vector&& value) { SetNodeGroupConfiguration(std::move(value)); return *this;} /** *

A list of node group (shard) configuration options. Each node group (shard) * configuration has the following members: PrimaryAvailabilityZone, * ReplicaAvailabilityZones, ReplicaCount, and * Slots.

If you're creating a Redis (cluster mode disabled) or * a Redis (cluster mode enabled) replication group, you can use this parameter to * individually configure each node group (shard), or you can omit this parameter. * However, it is required when seeding a Redis (cluster mode enabled) cluster from * a S3 rdb file. You must configure each node group (shard) using this parameter * because you must specify the slots for each node group.

*/ inline CreateReplicationGroupRequest& AddNodeGroupConfiguration(const NodeGroupConfiguration& value) { m_nodeGroupConfigurationHasBeenSet = true; m_nodeGroupConfiguration.push_back(value); return *this; } /** *

A list of node group (shard) configuration options. Each node group (shard) * configuration has the following members: PrimaryAvailabilityZone, * ReplicaAvailabilityZones, ReplicaCount, and * Slots.

If you're creating a Redis (cluster mode disabled) or * a Redis (cluster mode enabled) replication group, you can use this parameter to * individually configure each node group (shard), or you can omit this parameter. * However, it is required when seeding a Redis (cluster mode enabled) cluster from * a S3 rdb file. You must configure each node group (shard) using this parameter * because you must specify the slots for each node group.

*/ inline CreateReplicationGroupRequest& AddNodeGroupConfiguration(NodeGroupConfiguration&& value) { m_nodeGroupConfigurationHasBeenSet = true; m_nodeGroupConfiguration.push_back(std::move(value)); return *this; } /** *

The compute and memory capacity of the nodes in the node group (shard).

*

The following node types are supported by ElastiCache. Generally speaking, * the current generation types provide more memory and computational power at * lower cost when compared to their equivalent previous generation * counterparts.

  • General purpose:

    • Current * generation:

      M6g node types (available only for Redis engine * version 5.0.6 onward and for Memcached engine version 1.5.16 onward): * cache.m6g.large, cache.m6g.xlarge, * cache.m6g.2xlarge, cache.m6g.4xlarge, * cache.m6g.8xlarge, cache.m6g.12xlarge, * cache.m6g.16xlarge

      For region availability, see Supported * Node Types

      M5 node types: * cache.m5.large, cache.m5.xlarge, * cache.m5.2xlarge, cache.m5.4xlarge, * cache.m5.12xlarge, cache.m5.24xlarge

      M4 * node types: cache.m4.large, cache.m4.xlarge, * cache.m4.2xlarge, cache.m4.4xlarge, * cache.m4.10xlarge

      T4g node types (available only * for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 * onward): cache.t4g.micro, cache.t4g.small, * cache.t4g.medium

      T3 node types: * cache.t3.micro, cache.t3.small, * cache.t3.medium

      T2 node types: * cache.t2.micro, cache.t2.small, * cache.t2.medium

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      T1 node types: * cache.t1.micro

      M1 node types: * cache.m1.small, cache.m1.medium, * cache.m1.large, cache.m1.xlarge

      M3 node * types: cache.m3.medium, cache.m3.large, * cache.m3.xlarge, cache.m3.2xlarge

    *
  • Compute optimized:

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

      R6g node types * (available only for Redis engine version 5.0.6 onward and for Memcached engine * version 1.5.16 onward).

      cache.r6g.large, * cache.r6g.xlarge, cache.r6g.2xlarge, * cache.r6g.4xlarge, cache.r6g.8xlarge, * cache.r6g.12xlarge, cache.r6g.16xlarge

      *

      For region availability, see Supported * Node Types

      R5 node types: * cache.r5.large, cache.r5.xlarge, * cache.r5.2xlarge, cache.r5.4xlarge, * cache.r5.12xlarge, cache.r5.24xlarge

      R4 * node types: cache.r4.large, cache.r4.xlarge, * cache.r4.2xlarge, cache.r4.4xlarge, * cache.r4.8xlarge, cache.r4.16xlarge

    • *

      Previous generation: (not recommended. Existing clusters are still supported * but creation of new clusters is not supported for these types.)

      M2 * node types: cache.m2.xlarge, cache.m2.2xlarge, * cache.m2.4xlarge

      R3 node types: * cache.r3.large, cache.r3.xlarge, * cache.r3.2xlarge, cache.r3.4xlarge, * cache.r3.8xlarge

Additional * node type info

  • All current generation instance types are * created in Amazon VPC by default.

  • Redis append-only files * (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ * with automatic failover is not supported on T1 instances.

  • *

    Redis configuration variables appendonly and * appendfsync are not supported on Redis version 2.8.22 and * later.

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

The compute and memory capacity of the nodes in the node group (shard).

*

The following node types are supported by ElastiCache. Generally speaking, * the current generation types provide more memory and computational power at * lower cost when compared to their equivalent previous generation * counterparts.

  • General purpose:

    • Current * generation:

      M6g node types (available only for Redis engine * version 5.0.6 onward and for Memcached engine version 1.5.16 onward): * cache.m6g.large, cache.m6g.xlarge, * cache.m6g.2xlarge, cache.m6g.4xlarge, * cache.m6g.8xlarge, cache.m6g.12xlarge, * cache.m6g.16xlarge

      For region availability, see Supported * Node Types

      M5 node types: * cache.m5.large, cache.m5.xlarge, * cache.m5.2xlarge, cache.m5.4xlarge, * cache.m5.12xlarge, cache.m5.24xlarge

      M4 * node types: cache.m4.large, cache.m4.xlarge, * cache.m4.2xlarge, cache.m4.4xlarge, * cache.m4.10xlarge

      T4g node types (available only * for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 * onward): cache.t4g.micro, cache.t4g.small, * cache.t4g.medium

      T3 node types: * cache.t3.micro, cache.t3.small, * cache.t3.medium

      T2 node types: * cache.t2.micro, cache.t2.small, * cache.t2.medium

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      T1 node types: * cache.t1.micro

      M1 node types: * cache.m1.small, cache.m1.medium, * cache.m1.large, cache.m1.xlarge

      M3 node * types: cache.m3.medium, cache.m3.large, * cache.m3.xlarge, cache.m3.2xlarge

    *
  • Compute optimized:

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

      R6g node types * (available only for Redis engine version 5.0.6 onward and for Memcached engine * version 1.5.16 onward).

      cache.r6g.large, * cache.r6g.xlarge, cache.r6g.2xlarge, * cache.r6g.4xlarge, cache.r6g.8xlarge, * cache.r6g.12xlarge, cache.r6g.16xlarge

      *

      For region availability, see Supported * Node Types

      R5 node types: * cache.r5.large, cache.r5.xlarge, * cache.r5.2xlarge, cache.r5.4xlarge, * cache.r5.12xlarge, cache.r5.24xlarge

      R4 * node types: cache.r4.large, cache.r4.xlarge, * cache.r4.2xlarge, cache.r4.4xlarge, * cache.r4.8xlarge, cache.r4.16xlarge

    • *

      Previous generation: (not recommended. Existing clusters are still supported * but creation of new clusters is not supported for these types.)

      M2 * node types: cache.m2.xlarge, cache.m2.2xlarge, * cache.m2.4xlarge

      R3 node types: * cache.r3.large, cache.r3.xlarge, * cache.r3.2xlarge, cache.r3.4xlarge, * cache.r3.8xlarge

Additional * node type info

  • All current generation instance types are * created in Amazon VPC by default.

  • Redis append-only files * (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ * with automatic failover is not supported on T1 instances.

  • *

    Redis configuration variables appendonly and * appendfsync are not supported on Redis version 2.8.22 and * later.

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

The compute and memory capacity of the nodes in the node group (shard).

*

The following node types are supported by ElastiCache. Generally speaking, * the current generation types provide more memory and computational power at * lower cost when compared to their equivalent previous generation * counterparts.

  • General purpose:

    • Current * generation:

      M6g node types (available only for Redis engine * version 5.0.6 onward and for Memcached engine version 1.5.16 onward): * cache.m6g.large, cache.m6g.xlarge, * cache.m6g.2xlarge, cache.m6g.4xlarge, * cache.m6g.8xlarge, cache.m6g.12xlarge, * cache.m6g.16xlarge

      For region availability, see Supported * Node Types

      M5 node types: * cache.m5.large, cache.m5.xlarge, * cache.m5.2xlarge, cache.m5.4xlarge, * cache.m5.12xlarge, cache.m5.24xlarge

      M4 * node types: cache.m4.large, cache.m4.xlarge, * cache.m4.2xlarge, cache.m4.4xlarge, * cache.m4.10xlarge

      T4g node types (available only * for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 * onward): cache.t4g.micro, cache.t4g.small, * cache.t4g.medium

      T3 node types: * cache.t3.micro, cache.t3.small, * cache.t3.medium

      T2 node types: * cache.t2.micro, cache.t2.small, * cache.t2.medium

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      T1 node types: * cache.t1.micro

      M1 node types: * cache.m1.small, cache.m1.medium, * cache.m1.large, cache.m1.xlarge

      M3 node * types: cache.m3.medium, cache.m3.large, * cache.m3.xlarge, cache.m3.2xlarge

    *
  • Compute optimized:

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

      R6g node types * (available only for Redis engine version 5.0.6 onward and for Memcached engine * version 1.5.16 onward).

      cache.r6g.large, * cache.r6g.xlarge, cache.r6g.2xlarge, * cache.r6g.4xlarge, cache.r6g.8xlarge, * cache.r6g.12xlarge, cache.r6g.16xlarge

      *

      For region availability, see Supported * Node Types

      R5 node types: * cache.r5.large, cache.r5.xlarge, * cache.r5.2xlarge, cache.r5.4xlarge, * cache.r5.12xlarge, cache.r5.24xlarge

      R4 * node types: cache.r4.large, cache.r4.xlarge, * cache.r4.2xlarge, cache.r4.4xlarge, * cache.r4.8xlarge, cache.r4.16xlarge

    • *

      Previous generation: (not recommended. Existing clusters are still supported * but creation of new clusters is not supported for these types.)

      M2 * node types: cache.m2.xlarge, cache.m2.2xlarge, * cache.m2.4xlarge

      R3 node types: * cache.r3.large, cache.r3.xlarge, * cache.r3.2xlarge, cache.r3.4xlarge, * cache.r3.8xlarge

Additional * node type info

  • All current generation instance types are * created in Amazon VPC by default.

  • Redis append-only files * (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ * with automatic failover is not supported on T1 instances.

  • *

    Redis configuration variables appendonly and * appendfsync are not supported on Redis version 2.8.22 and * later.

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

The compute and memory capacity of the nodes in the node group (shard).

*

The following node types are supported by ElastiCache. Generally speaking, * the current generation types provide more memory and computational power at * lower cost when compared to their equivalent previous generation * counterparts.

  • General purpose:

    • Current * generation:

      M6g node types (available only for Redis engine * version 5.0.6 onward and for Memcached engine version 1.5.16 onward): * cache.m6g.large, cache.m6g.xlarge, * cache.m6g.2xlarge, cache.m6g.4xlarge, * cache.m6g.8xlarge, cache.m6g.12xlarge, * cache.m6g.16xlarge

      For region availability, see Supported * Node Types

      M5 node types: * cache.m5.large, cache.m5.xlarge, * cache.m5.2xlarge, cache.m5.4xlarge, * cache.m5.12xlarge, cache.m5.24xlarge

      M4 * node types: cache.m4.large, cache.m4.xlarge, * cache.m4.2xlarge, cache.m4.4xlarge, * cache.m4.10xlarge

      T4g node types (available only * for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 * onward): cache.t4g.micro, cache.t4g.small, * cache.t4g.medium

      T3 node types: * cache.t3.micro, cache.t3.small, * cache.t3.medium

      T2 node types: * cache.t2.micro, cache.t2.small, * cache.t2.medium

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      T1 node types: * cache.t1.micro

      M1 node types: * cache.m1.small, cache.m1.medium, * cache.m1.large, cache.m1.xlarge

      M3 node * types: cache.m3.medium, cache.m3.large, * cache.m3.xlarge, cache.m3.2xlarge

    *
  • Compute optimized:

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

      R6g node types * (available only for Redis engine version 5.0.6 onward and for Memcached engine * version 1.5.16 onward).

      cache.r6g.large, * cache.r6g.xlarge, cache.r6g.2xlarge, * cache.r6g.4xlarge, cache.r6g.8xlarge, * cache.r6g.12xlarge, cache.r6g.16xlarge

      *

      For region availability, see Supported * Node Types

      R5 node types: * cache.r5.large, cache.r5.xlarge, * cache.r5.2xlarge, cache.r5.4xlarge, * cache.r5.12xlarge, cache.r5.24xlarge

      R4 * node types: cache.r4.large, cache.r4.xlarge, * cache.r4.2xlarge, cache.r4.4xlarge, * cache.r4.8xlarge, cache.r4.16xlarge

    • *

      Previous generation: (not recommended. Existing clusters are still supported * but creation of new clusters is not supported for these types.)

      M2 * node types: cache.m2.xlarge, cache.m2.2xlarge, * cache.m2.4xlarge

      R3 node types: * cache.r3.large, cache.r3.xlarge, * cache.r3.2xlarge, cache.r3.4xlarge, * cache.r3.8xlarge

Additional * node type info

  • All current generation instance types are * created in Amazon VPC by default.

  • Redis append-only files * (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ * with automatic failover is not supported on T1 instances.

  • *

    Redis configuration variables appendonly and * appendfsync are not supported on Redis version 2.8.22 and * later.

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

The compute and memory capacity of the nodes in the node group (shard).

*

The following node types are supported by ElastiCache. Generally speaking, * the current generation types provide more memory and computational power at * lower cost when compared to their equivalent previous generation * counterparts.

  • General purpose:

    • Current * generation:

      M6g node types (available only for Redis engine * version 5.0.6 onward and for Memcached engine version 1.5.16 onward): * cache.m6g.large, cache.m6g.xlarge, * cache.m6g.2xlarge, cache.m6g.4xlarge, * cache.m6g.8xlarge, cache.m6g.12xlarge, * cache.m6g.16xlarge

      For region availability, see Supported * Node Types

      M5 node types: * cache.m5.large, cache.m5.xlarge, * cache.m5.2xlarge, cache.m5.4xlarge, * cache.m5.12xlarge, cache.m5.24xlarge

      M4 * node types: cache.m4.large, cache.m4.xlarge, * cache.m4.2xlarge, cache.m4.4xlarge, * cache.m4.10xlarge

      T4g node types (available only * for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 * onward): cache.t4g.micro, cache.t4g.small, * cache.t4g.medium

      T3 node types: * cache.t3.micro, cache.t3.small, * cache.t3.medium

      T2 node types: * cache.t2.micro, cache.t2.small, * cache.t2.medium

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      T1 node types: * cache.t1.micro

      M1 node types: * cache.m1.small, cache.m1.medium, * cache.m1.large, cache.m1.xlarge

      M3 node * types: cache.m3.medium, cache.m3.large, * cache.m3.xlarge, cache.m3.2xlarge

    *
  • Compute optimized:

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

      R6g node types * (available only for Redis engine version 5.0.6 onward and for Memcached engine * version 1.5.16 onward).

      cache.r6g.large, * cache.r6g.xlarge, cache.r6g.2xlarge, * cache.r6g.4xlarge, cache.r6g.8xlarge, * cache.r6g.12xlarge, cache.r6g.16xlarge

      *

      For region availability, see Supported * Node Types

      R5 node types: * cache.r5.large, cache.r5.xlarge, * cache.r5.2xlarge, cache.r5.4xlarge, * cache.r5.12xlarge, cache.r5.24xlarge

      R4 * node types: cache.r4.large, cache.r4.xlarge, * cache.r4.2xlarge, cache.r4.4xlarge, * cache.r4.8xlarge, cache.r4.16xlarge

    • *

      Previous generation: (not recommended. Existing clusters are still supported * but creation of new clusters is not supported for these types.)

      M2 * node types: cache.m2.xlarge, cache.m2.2xlarge, * cache.m2.4xlarge

      R3 node types: * cache.r3.large, cache.r3.xlarge, * cache.r3.2xlarge, cache.r3.4xlarge, * cache.r3.8xlarge

Additional * node type info

  • All current generation instance types are * created in Amazon VPC by default.

  • Redis append-only files * (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ * with automatic failover is not supported on T1 instances.

  • *

    Redis configuration variables appendonly and * appendfsync are not supported on Redis version 2.8.22 and * later.

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

The compute and memory capacity of the nodes in the node group (shard).

*

The following node types are supported by ElastiCache. Generally speaking, * the current generation types provide more memory and computational power at * lower cost when compared to their equivalent previous generation * counterparts.

  • General purpose:

    • Current * generation:

      M6g node types (available only for Redis engine * version 5.0.6 onward and for Memcached engine version 1.5.16 onward): * cache.m6g.large, cache.m6g.xlarge, * cache.m6g.2xlarge, cache.m6g.4xlarge, * cache.m6g.8xlarge, cache.m6g.12xlarge, * cache.m6g.16xlarge

      For region availability, see Supported * Node Types

      M5 node types: * cache.m5.large, cache.m5.xlarge, * cache.m5.2xlarge, cache.m5.4xlarge, * cache.m5.12xlarge, cache.m5.24xlarge

      M4 * node types: cache.m4.large, cache.m4.xlarge, * cache.m4.2xlarge, cache.m4.4xlarge, * cache.m4.10xlarge

      T4g node types (available only * for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 * onward): cache.t4g.micro, cache.t4g.small, * cache.t4g.medium

      T3 node types: * cache.t3.micro, cache.t3.small, * cache.t3.medium

      T2 node types: * cache.t2.micro, cache.t2.small, * cache.t2.medium

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      T1 node types: * cache.t1.micro

      M1 node types: * cache.m1.small, cache.m1.medium, * cache.m1.large, cache.m1.xlarge

      M3 node * types: cache.m3.medium, cache.m3.large, * cache.m3.xlarge, cache.m3.2xlarge

    *
  • Compute optimized:

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

      R6g node types * (available only for Redis engine version 5.0.6 onward and for Memcached engine * version 1.5.16 onward).

      cache.r6g.large, * cache.r6g.xlarge, cache.r6g.2xlarge, * cache.r6g.4xlarge, cache.r6g.8xlarge, * cache.r6g.12xlarge, cache.r6g.16xlarge

      *

      For region availability, see Supported * Node Types

      R5 node types: * cache.r5.large, cache.r5.xlarge, * cache.r5.2xlarge, cache.r5.4xlarge, * cache.r5.12xlarge, cache.r5.24xlarge

      R4 * node types: cache.r4.large, cache.r4.xlarge, * cache.r4.2xlarge, cache.r4.4xlarge, * cache.r4.8xlarge, cache.r4.16xlarge

    • *

      Previous generation: (not recommended. Existing clusters are still supported * but creation of new clusters is not supported for these types.)

      M2 * node types: cache.m2.xlarge, cache.m2.2xlarge, * cache.m2.4xlarge

      R3 node types: * cache.r3.large, cache.r3.xlarge, * cache.r3.2xlarge, cache.r3.4xlarge, * cache.r3.8xlarge

Additional * node type info

  • All current generation instance types are * created in Amazon VPC by default.

  • Redis append-only files * (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ * with automatic failover is not supported on T1 instances.

  • *

    Redis configuration variables appendonly and * appendfsync are not supported on Redis version 2.8.22 and * later.

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

The compute and memory capacity of the nodes in the node group (shard).

*

The following node types are supported by ElastiCache. Generally speaking, * the current generation types provide more memory and computational power at * lower cost when compared to their equivalent previous generation * counterparts.

  • General purpose:

    • Current * generation:

      M6g node types (available only for Redis engine * version 5.0.6 onward and for Memcached engine version 1.5.16 onward): * cache.m6g.large, cache.m6g.xlarge, * cache.m6g.2xlarge, cache.m6g.4xlarge, * cache.m6g.8xlarge, cache.m6g.12xlarge, * cache.m6g.16xlarge

      For region availability, see Supported * Node Types

      M5 node types: * cache.m5.large, cache.m5.xlarge, * cache.m5.2xlarge, cache.m5.4xlarge, * cache.m5.12xlarge, cache.m5.24xlarge

      M4 * node types: cache.m4.large, cache.m4.xlarge, * cache.m4.2xlarge, cache.m4.4xlarge, * cache.m4.10xlarge

      T4g node types (available only * for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 * onward): cache.t4g.micro, cache.t4g.small, * cache.t4g.medium

      T3 node types: * cache.t3.micro, cache.t3.small, * cache.t3.medium

      T2 node types: * cache.t2.micro, cache.t2.small, * cache.t2.medium

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      T1 node types: * cache.t1.micro

      M1 node types: * cache.m1.small, cache.m1.medium, * cache.m1.large, cache.m1.xlarge

      M3 node * types: cache.m3.medium, cache.m3.large, * cache.m3.xlarge, cache.m3.2xlarge

    *
  • Compute optimized:

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

      R6g node types * (available only for Redis engine version 5.0.6 onward and for Memcached engine * version 1.5.16 onward).

      cache.r6g.large, * cache.r6g.xlarge, cache.r6g.2xlarge, * cache.r6g.4xlarge, cache.r6g.8xlarge, * cache.r6g.12xlarge, cache.r6g.16xlarge

      *

      For region availability, see Supported * Node Types

      R5 node types: * cache.r5.large, cache.r5.xlarge, * cache.r5.2xlarge, cache.r5.4xlarge, * cache.r5.12xlarge, cache.r5.24xlarge

      R4 * node types: cache.r4.large, cache.r4.xlarge, * cache.r4.2xlarge, cache.r4.4xlarge, * cache.r4.8xlarge, cache.r4.16xlarge

    • *

      Previous generation: (not recommended. Existing clusters are still supported * but creation of new clusters is not supported for these types.)

      M2 * node types: cache.m2.xlarge, cache.m2.2xlarge, * cache.m2.4xlarge

      R3 node types: * cache.r3.large, cache.r3.xlarge, * cache.r3.2xlarge, cache.r3.4xlarge, * cache.r3.8xlarge

Additional * node type info

  • All current generation instance types are * created in Amazon VPC by default.

  • Redis append-only files * (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ * with automatic failover is not supported on T1 instances.

  • *

    Redis configuration variables appendonly and * appendfsync are not supported on Redis version 2.8.22 and * later.

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

The compute and memory capacity of the nodes in the node group (shard).

*

The following node types are supported by ElastiCache. Generally speaking, * the current generation types provide more memory and computational power at * lower cost when compared to their equivalent previous generation * counterparts.

  • General purpose:

    • Current * generation:

      M6g node types (available only for Redis engine * version 5.0.6 onward and for Memcached engine version 1.5.16 onward): * cache.m6g.large, cache.m6g.xlarge, * cache.m6g.2xlarge, cache.m6g.4xlarge, * cache.m6g.8xlarge, cache.m6g.12xlarge, * cache.m6g.16xlarge

      For region availability, see Supported * Node Types

      M5 node types: * cache.m5.large, cache.m5.xlarge, * cache.m5.2xlarge, cache.m5.4xlarge, * cache.m5.12xlarge, cache.m5.24xlarge

      M4 * node types: cache.m4.large, cache.m4.xlarge, * cache.m4.2xlarge, cache.m4.4xlarge, * cache.m4.10xlarge

      T4g node types (available only * for Redis engine version 5.0.6 onward and Memcached engine version 1.5.16 * onward): cache.t4g.micro, cache.t4g.small, * cache.t4g.medium

      T3 node types: * cache.t3.micro, cache.t3.small, * cache.t3.medium

      T2 node types: * cache.t2.micro, cache.t2.small, * cache.t2.medium

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      T1 node types: * cache.t1.micro

      M1 node types: * cache.m1.small, cache.m1.medium, * cache.m1.large, cache.m1.xlarge

      M3 node * types: cache.m3.medium, cache.m3.large, * cache.m3.xlarge, cache.m3.2xlarge

    *
  • Compute optimized:

    • Previous generation: (not * recommended. Existing clusters are still supported but creation of new clusters * is not supported for these types.)

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

      R6g node types * (available only for Redis engine version 5.0.6 onward and for Memcached engine * version 1.5.16 onward).

      cache.r6g.large, * cache.r6g.xlarge, cache.r6g.2xlarge, * cache.r6g.4xlarge, cache.r6g.8xlarge, * cache.r6g.12xlarge, cache.r6g.16xlarge

      *

      For region availability, see Supported * Node Types

      R5 node types: * cache.r5.large, cache.r5.xlarge, * cache.r5.2xlarge, cache.r5.4xlarge, * cache.r5.12xlarge, cache.r5.24xlarge

      R4 * node types: cache.r4.large, cache.r4.xlarge, * cache.r4.2xlarge, cache.r4.4xlarge, * cache.r4.8xlarge, cache.r4.16xlarge

    • *

      Previous generation: (not recommended. Existing clusters are still supported * but creation of new clusters is not supported for these types.)

      M2 * node types: cache.m2.xlarge, cache.m2.2xlarge, * cache.m2.4xlarge

      R3 node types: * cache.r3.large, cache.r3.xlarge, * cache.r3.2xlarge, cache.r3.4xlarge, * cache.r3.8xlarge

Additional * node type info

  • All current generation instance types are * created in Amazon VPC by default.

  • Redis append-only files * (AOF) are not supported for T1 or T2 instances.

  • Redis Multi-AZ * with automatic failover is not supported on T1 instances.

  • *

    Redis configuration variables appendonly and * appendfsync are not supported on Redis version 2.8.22 and * later.

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

The name of the cache engine to be used for the clusters in this replication * group. The value must be set to Redis.

*/ inline const Aws::String& GetEngine() const{ return m_engine; } /** *

The name of the cache engine to be used for the clusters in this replication * group. The value must be set to Redis.

*/ inline bool EngineHasBeenSet() const { return m_engineHasBeenSet; } /** *

The name of the cache engine to be used for the clusters in this replication * group. The value must be set to Redis.

*/ inline void SetEngine(const Aws::String& value) { m_engineHasBeenSet = true; m_engine = value; } /** *

The name of the cache engine to be used for the clusters in this replication * group. The value must be set to Redis.

*/ inline void SetEngine(Aws::String&& value) { m_engineHasBeenSet = true; m_engine = std::move(value); } /** *

The name of the cache engine to be used for the clusters in this replication * group. The value must be set to Redis.

*/ inline void SetEngine(const char* value) { m_engineHasBeenSet = true; m_engine.assign(value); } /** *

The name of the cache engine to be used for the clusters in this replication * group. The value must be set to Redis.

*/ inline CreateReplicationGroupRequest& WithEngine(const Aws::String& value) { SetEngine(value); return *this;} /** *

The name of the cache engine to be used for the clusters in this replication * group. The value must be set to Redis.

*/ inline CreateReplicationGroupRequest& WithEngine(Aws::String&& value) { SetEngine(std::move(value)); return *this;} /** *

The name of the cache engine to be used for the clusters in this replication * group. The value must be set to Redis.

*/ inline CreateReplicationGroupRequest& WithEngine(const char* value) { SetEngine(value); return *this;} /** *

The version number of the cache engine to be used for the clusters in this * replication group. To view the supported cache engine versions, use the * DescribeCacheEngineVersions operation.

Important: * You can upgrade to a newer engine version (see Selecting * a Cache Engine and Version) in the ElastiCache User Guide, but you * cannot downgrade to an earlier engine version. If you want to use an earlier * engine version, you must delete the existing cluster or replication group and * create it anew with the earlier engine version.

*/ inline const Aws::String& GetEngineVersion() const{ return m_engineVersion; } /** *

The version number of the cache engine to be used for the clusters in this * replication group. To view the supported cache engine versions, use the * DescribeCacheEngineVersions operation.

Important: * You can upgrade to a newer engine version (see Selecting * a Cache Engine and Version) in the ElastiCache User Guide, but you * cannot downgrade to an earlier engine version. If you want to use an earlier * engine version, you must delete the existing cluster or replication group and * create it anew with the earlier engine version.

*/ inline bool EngineVersionHasBeenSet() const { return m_engineVersionHasBeenSet; } /** *

The version number of the cache engine to be used for the clusters in this * replication group. To view the supported cache engine versions, use the * DescribeCacheEngineVersions operation.

Important: * You can upgrade to a newer engine version (see Selecting * a Cache Engine and Version) in the ElastiCache User Guide, but you * cannot downgrade to an earlier engine version. If you want to use an earlier * engine version, you must delete the existing cluster or replication group and * create it anew with the earlier engine version.

*/ inline void SetEngineVersion(const Aws::String& value) { m_engineVersionHasBeenSet = true; m_engineVersion = value; } /** *

The version number of the cache engine to be used for the clusters in this * replication group. To view the supported cache engine versions, use the * DescribeCacheEngineVersions operation.

Important: * You can upgrade to a newer engine version (see Selecting * a Cache Engine and Version) in the ElastiCache User Guide, but you * cannot downgrade to an earlier engine version. If you want to use an earlier * engine version, you must delete the existing cluster or replication group and * create it anew with the earlier engine version.

*/ inline void SetEngineVersion(Aws::String&& value) { m_engineVersionHasBeenSet = true; m_engineVersion = std::move(value); } /** *

The version number of the cache engine to be used for the clusters in this * replication group. To view the supported cache engine versions, use the * DescribeCacheEngineVersions operation.

Important: * You can upgrade to a newer engine version (see Selecting * a Cache Engine and Version) in the ElastiCache User Guide, but you * cannot downgrade to an earlier engine version. If you want to use an earlier * engine version, you must delete the existing cluster or replication group and * create it anew with the earlier engine version.

*/ inline void SetEngineVersion(const char* value) { m_engineVersionHasBeenSet = true; m_engineVersion.assign(value); } /** *

The version number of the cache engine to be used for the clusters in this * replication group. To view the supported cache engine versions, use the * DescribeCacheEngineVersions operation.

Important: * You can upgrade to a newer engine version (see Selecting * a Cache Engine and Version) in the ElastiCache User Guide, but you * cannot downgrade to an earlier engine version. If you want to use an earlier * engine version, you must delete the existing cluster or replication group and * create it anew with the earlier engine version.

*/ inline CreateReplicationGroupRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;} /** *

The version number of the cache engine to be used for the clusters in this * replication group. To view the supported cache engine versions, use the * DescribeCacheEngineVersions operation.

Important: * You can upgrade to a newer engine version (see Selecting * a Cache Engine and Version) in the ElastiCache User Guide, but you * cannot downgrade to an earlier engine version. If you want to use an earlier * engine version, you must delete the existing cluster or replication group and * create it anew with the earlier engine version.

*/ inline CreateReplicationGroupRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

The version number of the cache engine to be used for the clusters in this * replication group. To view the supported cache engine versions, use the * DescribeCacheEngineVersions operation.

Important: * You can upgrade to a newer engine version (see Selecting * a Cache Engine and Version) in the ElastiCache User Guide, but you * cannot downgrade to an earlier engine version. If you want to use an earlier * engine version, you must delete the existing cluster or replication group and * create it anew with the earlier engine version.

*/ inline CreateReplicationGroupRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;} /** *

The name of the parameter group to associate with this replication group. If * this argument is omitted, the default cache parameter group for the specified * engine is used.

If you are running Redis version 3.2.4 or later, only one * node group (shard), and want to use a default parameter group, we recommend that * you specify the parameter group by name.

  • To create a Redis * (cluster mode disabled) replication group, use * CacheParameterGroupName=default.redis3.2.

  • To * create a Redis (cluster mode enabled) replication group, use * CacheParameterGroupName=default.redis3.2.cluster.on.

  • *
*/ inline const Aws::String& GetCacheParameterGroupName() const{ return m_cacheParameterGroupName; } /** *

The name of the parameter group to associate with this replication group. If * this argument is omitted, the default cache parameter group for the specified * engine is used.

If you are running Redis version 3.2.4 or later, only one * node group (shard), and want to use a default parameter group, we recommend that * you specify the parameter group by name.

  • To create a Redis * (cluster mode disabled) replication group, use * CacheParameterGroupName=default.redis3.2.

  • To * create a Redis (cluster mode enabled) replication group, use * CacheParameterGroupName=default.redis3.2.cluster.on.

  • *
*/ inline bool CacheParameterGroupNameHasBeenSet() const { return m_cacheParameterGroupNameHasBeenSet; } /** *

The name of the parameter group to associate with this replication group. If * this argument is omitted, the default cache parameter group for the specified * engine is used.

If you are running Redis version 3.2.4 or later, only one * node group (shard), and want to use a default parameter group, we recommend that * you specify the parameter group by name.

  • To create a Redis * (cluster mode disabled) replication group, use * CacheParameterGroupName=default.redis3.2.

  • To * create a Redis (cluster mode enabled) replication group, use * CacheParameterGroupName=default.redis3.2.cluster.on.

  • *
*/ inline void SetCacheParameterGroupName(const Aws::String& value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName = value; } /** *

The name of the parameter group to associate with this replication group. If * this argument is omitted, the default cache parameter group for the specified * engine is used.

If you are running Redis version 3.2.4 or later, only one * node group (shard), and want to use a default parameter group, we recommend that * you specify the parameter group by name.

  • To create a Redis * (cluster mode disabled) replication group, use * CacheParameterGroupName=default.redis3.2.

  • To * create a Redis (cluster mode enabled) replication group, use * CacheParameterGroupName=default.redis3.2.cluster.on.

  • *
*/ inline void SetCacheParameterGroupName(Aws::String&& value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName = std::move(value); } /** *

The name of the parameter group to associate with this replication group. If * this argument is omitted, the default cache parameter group for the specified * engine is used.

If you are running Redis version 3.2.4 or later, only one * node group (shard), and want to use a default parameter group, we recommend that * you specify the parameter group by name.

  • To create a Redis * (cluster mode disabled) replication group, use * CacheParameterGroupName=default.redis3.2.

  • To * create a Redis (cluster mode enabled) replication group, use * CacheParameterGroupName=default.redis3.2.cluster.on.

  • *
*/ inline void SetCacheParameterGroupName(const char* value) { m_cacheParameterGroupNameHasBeenSet = true; m_cacheParameterGroupName.assign(value); } /** *

The name of the parameter group to associate with this replication group. If * this argument is omitted, the default cache parameter group for the specified * engine is used.

If you are running Redis version 3.2.4 or later, only one * node group (shard), and want to use a default parameter group, we recommend that * you specify the parameter group by name.

  • To create a Redis * (cluster mode disabled) replication group, use * CacheParameterGroupName=default.redis3.2.

  • To * create a Redis (cluster mode enabled) replication group, use * CacheParameterGroupName=default.redis3.2.cluster.on.

  • *
*/ inline CreateReplicationGroupRequest& WithCacheParameterGroupName(const Aws::String& value) { SetCacheParameterGroupName(value); return *this;} /** *

The name of the parameter group to associate with this replication group. If * this argument is omitted, the default cache parameter group for the specified * engine is used.

If you are running Redis version 3.2.4 or later, only one * node group (shard), and want to use a default parameter group, we recommend that * you specify the parameter group by name.

  • To create a Redis * (cluster mode disabled) replication group, use * CacheParameterGroupName=default.redis3.2.

  • To * create a Redis (cluster mode enabled) replication group, use * CacheParameterGroupName=default.redis3.2.cluster.on.

  • *
*/ inline CreateReplicationGroupRequest& WithCacheParameterGroupName(Aws::String&& value) { SetCacheParameterGroupName(std::move(value)); return *this;} /** *

The name of the parameter group to associate with this replication group. If * this argument is omitted, the default cache parameter group for the specified * engine is used.

If you are running Redis version 3.2.4 or later, only one * node group (shard), and want to use a default parameter group, we recommend that * you specify the parameter group by name.

  • To create a Redis * (cluster mode disabled) replication group, use * CacheParameterGroupName=default.redis3.2.

  • To * create a Redis (cluster mode enabled) replication group, use * CacheParameterGroupName=default.redis3.2.cluster.on.

  • *
*/ inline CreateReplicationGroupRequest& WithCacheParameterGroupName(const char* value) { SetCacheParameterGroupName(value); return *this;} /** *

The name of the cache subnet group to be used for the replication group.

*

If you're going to launch your cluster in an Amazon VPC, you need * to create a subnet group before you start creating a cluster. For more * information, see Subnets * and Subnet Groups.

*/ inline const Aws::String& GetCacheSubnetGroupName() const{ return m_cacheSubnetGroupName; } /** *

The name of the cache subnet group to be used for the replication group.

*

If you're going to launch your cluster in an Amazon VPC, you need * to create a subnet group before you start creating a cluster. For more * information, see Subnets * and Subnet Groups.

*/ inline bool CacheSubnetGroupNameHasBeenSet() const { return m_cacheSubnetGroupNameHasBeenSet; } /** *

The name of the cache subnet group to be used for the replication group.

*

If you're going to launch your cluster in an Amazon VPC, you need * to create a subnet group before you start creating a cluster. For more * information, see Subnets * and Subnet Groups.

*/ inline void SetCacheSubnetGroupName(const Aws::String& value) { m_cacheSubnetGroupNameHasBeenSet = true; m_cacheSubnetGroupName = value; } /** *

The name of the cache subnet group to be used for the replication group.

*

If you're going to launch your cluster in an Amazon VPC, you need * to create a subnet group before you start creating a cluster. For more * information, see Subnets * and Subnet Groups.

*/ inline void SetCacheSubnetGroupName(Aws::String&& value) { m_cacheSubnetGroupNameHasBeenSet = true; m_cacheSubnetGroupName = std::move(value); } /** *

The name of the cache subnet group to be used for the replication group.

*

If you're going to launch your cluster in an Amazon VPC, you need * to create a subnet group before you start creating a cluster. For more * information, see Subnets * and Subnet Groups.

*/ inline void SetCacheSubnetGroupName(const char* value) { m_cacheSubnetGroupNameHasBeenSet = true; m_cacheSubnetGroupName.assign(value); } /** *

The name of the cache subnet group to be used for the replication group.

*

If you're going to launch your cluster in an Amazon VPC, you need * to create a subnet group before you start creating a cluster. For more * information, see Subnets * and Subnet Groups.

*/ inline CreateReplicationGroupRequest& WithCacheSubnetGroupName(const Aws::String& value) { SetCacheSubnetGroupName(value); return *this;} /** *

The name of the cache subnet group to be used for the replication group.

*

If you're going to launch your cluster in an Amazon VPC, you need * to create a subnet group before you start creating a cluster. For more * information, see Subnets * and Subnet Groups.

*/ inline CreateReplicationGroupRequest& WithCacheSubnetGroupName(Aws::String&& value) { SetCacheSubnetGroupName(std::move(value)); return *this;} /** *

The name of the cache subnet group to be used for the replication group.

*

If you're going to launch your cluster in an Amazon VPC, you need * to create a subnet group before you start creating a cluster. For more * information, see Subnets * and Subnet Groups.

*/ inline CreateReplicationGroupRequest& WithCacheSubnetGroupName(const char* value) { SetCacheSubnetGroupName(value); return *this;} /** *

A list of cache security group names to associate with this replication * group.

*/ inline const Aws::Vector& GetCacheSecurityGroupNames() const{ return m_cacheSecurityGroupNames; } /** *

A list of cache security group names to associate with this replication * group.

*/ inline bool CacheSecurityGroupNamesHasBeenSet() const { return m_cacheSecurityGroupNamesHasBeenSet; } /** *

A list of cache security group names to associate with this replication * group.

*/ inline void SetCacheSecurityGroupNames(const Aws::Vector& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames = value; } /** *

A list of cache security group names to associate with this replication * group.

*/ inline void SetCacheSecurityGroupNames(Aws::Vector&& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames = std::move(value); } /** *

A list of cache security group names to associate with this replication * group.

*/ inline CreateReplicationGroupRequest& WithCacheSecurityGroupNames(const Aws::Vector& value) { SetCacheSecurityGroupNames(value); return *this;} /** *

A list of cache security group names to associate with this replication * group.

*/ inline CreateReplicationGroupRequest& WithCacheSecurityGroupNames(Aws::Vector&& value) { SetCacheSecurityGroupNames(std::move(value)); return *this;} /** *

A list of cache security group names to associate with this replication * group.

*/ inline CreateReplicationGroupRequest& AddCacheSecurityGroupNames(const Aws::String& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(value); return *this; } /** *

A list of cache security group names to associate with this replication * group.

*/ inline CreateReplicationGroupRequest& AddCacheSecurityGroupNames(Aws::String&& value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(std::move(value)); return *this; } /** *

A list of cache security group names to associate with this replication * group.

*/ inline CreateReplicationGroupRequest& AddCacheSecurityGroupNames(const char* value) { m_cacheSecurityGroupNamesHasBeenSet = true; m_cacheSecurityGroupNames.push_back(value); return *this; } /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline const Aws::Vector& GetSecurityGroupIds() const{ return m_securityGroupIds; } /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline bool SecurityGroupIdsHasBeenSet() const { return m_securityGroupIdsHasBeenSet; } /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline void SetSecurityGroupIds(const Aws::Vector& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = value; } /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline void SetSecurityGroupIds(Aws::Vector&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds = std::move(value); } /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline CreateReplicationGroupRequest& WithSecurityGroupIds(const Aws::Vector& value) { SetSecurityGroupIds(value); return *this;} /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline CreateReplicationGroupRequest& WithSecurityGroupIds(Aws::Vector&& value) { SetSecurityGroupIds(std::move(value)); return *this;} /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline CreateReplicationGroupRequest& AddSecurityGroupIds(const Aws::String& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline CreateReplicationGroupRequest& AddSecurityGroupIds(Aws::String&& value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(std::move(value)); return *this; } /** *

One or more Amazon VPC security groups associated with this replication * group.

Use this parameter only when you are creating a replication group * in an Amazon Virtual Private Cloud (Amazon VPC).

*/ inline CreateReplicationGroupRequest& AddSecurityGroupIds(const char* value) { m_securityGroupIdsHasBeenSet = true; m_securityGroupIds.push_back(value); return *this; } /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You * can include multiple tags as shown following: Key=myKey, * Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue. Tags on replication groups will be * replicated to all nodes.

*/ inline const Aws::Vector& GetTags() const{ return m_tags; } /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You * can include multiple tags as shown following: Key=myKey, * Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue. Tags on replication groups will be * replicated to all nodes.

*/ inline bool TagsHasBeenSet() const { return m_tagsHasBeenSet; } /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You * can include multiple tags as shown following: Key=myKey, * Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue. Tags on replication groups will be * replicated to all nodes.

*/ inline void SetTags(const Aws::Vector& value) { m_tagsHasBeenSet = true; m_tags = value; } /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You * can include multiple tags as shown following: Key=myKey, * Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue. Tags on replication groups will be * replicated to all nodes.

*/ inline void SetTags(Aws::Vector&& value) { m_tagsHasBeenSet = true; m_tags = std::move(value); } /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You * can include multiple tags as shown following: Key=myKey, * Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue. Tags on replication groups will be * replicated to all nodes.

*/ inline CreateReplicationGroupRequest& WithTags(const Aws::Vector& value) { SetTags(value); return *this;} /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You * can include multiple tags as shown following: Key=myKey, * Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue. Tags on replication groups will be * replicated to all nodes.

*/ inline CreateReplicationGroupRequest& WithTags(Aws::Vector&& value) { SetTags(std::move(value)); return *this;} /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You * can include multiple tags as shown following: Key=myKey, * Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue. Tags on replication groups will be * replicated to all nodes.

*/ inline CreateReplicationGroupRequest& AddTags(const Tag& value) { m_tagsHasBeenSet = true; m_tags.push_back(value); return *this; } /** *

A list of tags to be added to this resource. Tags are comma-separated * key,value pairs (e.g. Key=myKey, Value=myKeyValue. You * can include multiple tags as shown following: Key=myKey, * Value=myKeyValue Key=mySecondKey, * Value=mySecondKeyValue. Tags on replication groups will be * replicated to all nodes.

*/ inline CreateReplicationGroupRequest& AddTags(Tag&& value) { m_tagsHasBeenSet = true; m_tags.push_back(std::move(value)); return *this; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline const Aws::Vector& GetSnapshotArns() const{ return m_snapshotArns; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline bool SnapshotArnsHasBeenSet() const { return m_snapshotArnsHasBeenSet; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline void SetSnapshotArns(const Aws::Vector& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns = value; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline void SetSnapshotArns(Aws::Vector&& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns = std::move(value); } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline CreateReplicationGroupRequest& WithSnapshotArns(const Aws::Vector& value) { SetSnapshotArns(value); return *this;} /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline CreateReplicationGroupRequest& WithSnapshotArns(Aws::Vector&& value) { SetSnapshotArns(std::move(value)); return *this;} /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline CreateReplicationGroupRequest& AddSnapshotArns(const Aws::String& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(value); return *this; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline CreateReplicationGroupRequest& AddSnapshotArns(Aws::String&& value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(std::move(value)); return *this; } /** *

A list of Amazon Resource Names (ARN) that uniquely identify the Redis RDB * snapshot files stored in Amazon S3. The snapshot files are used to populate the * new replication group. The Amazon S3 object name in the ARN cannot contain any * commas. The new replication group will have the number of node groups (console: * shards) specified by the parameter NumNodeGroups or the number of node * groups configured by NodeGroupConfiguration regardless of the number of * ARNs specified here.

Example of an Amazon S3 ARN: * arn:aws:s3:::my_bucket/snapshot1.rdb

*/ inline CreateReplicationGroupRequest& AddSnapshotArns(const char* value) { m_snapshotArnsHasBeenSet = true; m_snapshotArns.push_back(value); return *this; } /** *

The name of a snapshot from which to restore data into the new replication * group. The snapshot status changes to restoring while the new * replication group is being created.

*/ inline const Aws::String& GetSnapshotName() const{ return m_snapshotName; } /** *

The name of a snapshot from which to restore data into the new replication * group. The snapshot status changes to restoring while the new * replication group is being created.

*/ inline bool SnapshotNameHasBeenSet() const { return m_snapshotNameHasBeenSet; } /** *

The name of a snapshot from which to restore data into the new replication * group. The snapshot status changes to restoring while the new * replication group is being created.

*/ inline void SetSnapshotName(const Aws::String& value) { m_snapshotNameHasBeenSet = true; m_snapshotName = value; } /** *

The name of a snapshot from which to restore data into the new replication * group. The snapshot status changes to restoring while the new * replication group is being created.

*/ inline void SetSnapshotName(Aws::String&& value) { m_snapshotNameHasBeenSet = true; m_snapshotName = std::move(value); } /** *

The name of a snapshot from which to restore data into the new replication * group. The snapshot status changes to restoring while the new * replication group is being created.

*/ inline void SetSnapshotName(const char* value) { m_snapshotNameHasBeenSet = true; m_snapshotName.assign(value); } /** *

The name of a snapshot from which to restore data into the new replication * group. The snapshot status changes to restoring while the new * replication group is being created.

*/ inline CreateReplicationGroupRequest& WithSnapshotName(const Aws::String& value) { SetSnapshotName(value); return *this;} /** *

The name of a snapshot from which to restore data into the new replication * group. The snapshot status changes to restoring while the new * replication group is being created.

*/ inline CreateReplicationGroupRequest& WithSnapshotName(Aws::String&& value) { SetSnapshotName(std::move(value)); return *this;} /** *

The name of a snapshot from which to restore data into the new replication * group. The snapshot status changes to restoring while the new * replication group is being created.

*/ inline CreateReplicationGroupRequest& WithSnapshotName(const char* value) { SetSnapshotName(value); return *this;} /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values * for ddd are:

Specifies the weekly time range during which * maintenance on the cluster is performed. It is specified as a range in the * format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window * is a 60 minute period.

Valid values for ddd are:

    *
  • sun

  • mon

  • *

    tue

  • wed

  • * thu

  • fri

  • * sat

Example: sun:23:00-mon:01:30 *

*/ inline const Aws::String& GetPreferredMaintenanceWindow() const{ return m_preferredMaintenanceWindow; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values * for ddd are:

Specifies the weekly time range during which * maintenance on the cluster is performed. It is specified as a range in the * format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window * is a 60 minute period.

Valid values for ddd are:

    *
  • sun

  • mon

  • *

    tue

  • wed

  • * thu

  • fri

  • * sat

Example: sun:23:00-mon:01:30 *

*/ inline bool PreferredMaintenanceWindowHasBeenSet() const { return m_preferredMaintenanceWindowHasBeenSet; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values * for ddd are:

Specifies the weekly time range during which * maintenance on the cluster is performed. It is specified as a range in the * format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window * is a 60 minute period.

Valid values for ddd are:

    *
  • sun

  • mon

  • *

    tue

  • wed

  • * thu

  • fri

  • * sat

Example: sun:23:00-mon:01:30 *

*/ inline void SetPreferredMaintenanceWindow(const Aws::String& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = value; } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values * for ddd are:

Specifies the weekly time range during which * maintenance on the cluster is performed. It is specified as a range in the * format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window * is a 60 minute period.

Valid values for ddd are:

    *
  • sun

  • mon

  • *

    tue

  • wed

  • * thu

  • fri

  • * sat

Example: sun:23:00-mon:01:30 *

*/ inline void SetPreferredMaintenanceWindow(Aws::String&& value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow = std::move(value); } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values * for ddd are:

Specifies the weekly time range during which * maintenance on the cluster is performed. It is specified as a range in the * format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window * is a 60 minute period.

Valid values for ddd are:

    *
  • sun

  • mon

  • *

    tue

  • wed

  • * thu

  • fri

  • * sat

Example: sun:23:00-mon:01:30 *

*/ inline void SetPreferredMaintenanceWindow(const char* value) { m_preferredMaintenanceWindowHasBeenSet = true; m_preferredMaintenanceWindow.assign(value); } /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values * for ddd are:

Specifies the weekly time range during which * maintenance on the cluster is performed. It is specified as a range in the * format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window * is a 60 minute period.

Valid values for ddd are:

    *
  • sun

  • mon

  • *

    tue

  • wed

  • * thu

  • fri

  • * sat

Example: sun:23:00-mon:01:30 *

*/ inline CreateReplicationGroupRequest& WithPreferredMaintenanceWindow(const Aws::String& value) { SetPreferredMaintenanceWindow(value); return *this;} /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values * for ddd are:

Specifies the weekly time range during which * maintenance on the cluster is performed. It is specified as a range in the * format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window * is a 60 minute period.

Valid values for ddd are:

    *
  • sun

  • mon

  • *

    tue

  • wed

  • * thu

  • fri

  • * sat

Example: sun:23:00-mon:01:30 *

*/ inline CreateReplicationGroupRequest& WithPreferredMaintenanceWindow(Aws::String&& value) { SetPreferredMaintenanceWindow(std::move(value)); return *this;} /** *

Specifies the weekly time range during which maintenance on the cluster is * performed. It is specified as a range in the format ddd:hh24:mi-ddd:hh24:mi (24H * Clock UTC). The minimum maintenance window is a 60 minute period. Valid values * for ddd are:

Specifies the weekly time range during which * maintenance on the cluster is performed. It is specified as a range in the * format ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). The minimum maintenance window * is a 60 minute period.

Valid values for ddd are:

    *
  • sun

  • mon

  • *

    tue

  • wed

  • * thu

  • fri

  • * sat

Example: sun:23:00-mon:01:30 *

*/ inline CreateReplicationGroupRequest& WithPreferredMaintenanceWindow(const char* value) { SetPreferredMaintenanceWindow(value); return *this;} /** *

The port number on which each member of the replication group accepts * connections.

*/ inline int GetPort() const{ return m_port; } /** *

The port number on which each member of the replication group accepts * connections.

*/ inline bool PortHasBeenSet() const { return m_portHasBeenSet; } /** *

The port number on which each member of the replication group accepts * connections.

*/ inline void SetPort(int value) { m_portHasBeenSet = true; m_port = value; } /** *

The port number on which each member of the replication group accepts * connections.

*/ inline CreateReplicationGroupRequest& WithPort(int value) { SetPort(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

The Amazon SNS topic * owner must be the same as the cluster owner.

*/ inline const Aws::String& GetNotificationTopicArn() const{ return m_notificationTopicArn; } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

The Amazon SNS topic * owner must be the same as the cluster owner.

*/ inline bool NotificationTopicArnHasBeenSet() const { return m_notificationTopicArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

The Amazon SNS topic * owner must be the same as the cluster owner.

*/ inline void SetNotificationTopicArn(const Aws::String& value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn = value; } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

The Amazon SNS topic * owner must be the same as the cluster owner.

*/ inline void SetNotificationTopicArn(Aws::String&& value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn = std::move(value); } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

The Amazon SNS topic * owner must be the same as the cluster owner.

*/ inline void SetNotificationTopicArn(const char* value) { m_notificationTopicArnHasBeenSet = true; m_notificationTopicArn.assign(value); } /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

The Amazon SNS topic * owner must be the same as the cluster owner.

*/ inline CreateReplicationGroupRequest& WithNotificationTopicArn(const Aws::String& value) { SetNotificationTopicArn(value); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

The Amazon SNS topic * owner must be the same as the cluster owner.

*/ inline CreateReplicationGroupRequest& WithNotificationTopicArn(Aws::String&& value) { SetNotificationTopicArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service * (SNS) topic to which notifications are sent.

The Amazon SNS topic * owner must be the same as the cluster owner.

*/ inline CreateReplicationGroupRequest& WithNotificationTopicArn(const char* value) { SetNotificationTopicArn(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 CreateReplicationGroupRequest& WithAutoMinorVersionUpgrade(bool value) { SetAutoMinorVersionUpgrade(value); return *this;} /** *

The number of days for which ElastiCache retains automatic 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.

*

Default: 0 (i.e., automatic backups are disabled for this cluster).

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

The number of days for which ElastiCache retains automatic 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.

*

Default: 0 (i.e., automatic backups are disabled for this cluster).

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

The number of days for which ElastiCache retains automatic 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.

*

Default: 0 (i.e., automatic backups are disabled for this cluster).

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

The number of days for which ElastiCache retains automatic 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.

*

Default: 0 (i.e., automatic backups are disabled for this cluster).

*/ inline CreateReplicationGroupRequest& 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ 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.

*/ inline CreateReplicationGroupRequest& 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.

*/ inline CreateReplicationGroupRequest& 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.

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

Reserved parameter. The password used to access a password protected * server.

AuthToken can be specified only on replication * groups where TransitEncryptionEnabled is true.

*

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*

Password constraints:

  • Must be only printable ASCII * characters.

  • Must be at least 16 characters and no more than * 128 characters in length.

  • The only permitted printable special * characters are !, &, #, $, ^, <, >, and -. Other printable special * characters cannot be used in the AUTH token.

For more * information, see AUTH password at * http://redis.io/commands/AUTH.

*/ inline const Aws::String& GetAuthToken() const{ return m_authToken; } /** *

Reserved parameter. The password used to access a password protected * server.

AuthToken can be specified only on replication * groups where TransitEncryptionEnabled is true.

*

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*

Password constraints:

  • Must be only printable ASCII * characters.

  • Must be at least 16 characters and no more than * 128 characters in length.

  • The only permitted printable special * characters are !, &, #, $, ^, <, >, and -. Other printable special * characters cannot be used in the AUTH token.

For more * information, see AUTH password at * http://redis.io/commands/AUTH.

*/ inline bool AuthTokenHasBeenSet() const { return m_authTokenHasBeenSet; } /** *

Reserved parameter. The password used to access a password protected * server.

AuthToken can be specified only on replication * groups where TransitEncryptionEnabled is true.

*

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*

Password constraints:

  • Must be only printable ASCII * characters.

  • Must be at least 16 characters and no more than * 128 characters in length.

  • The only permitted printable special * characters are !, &, #, $, ^, <, >, and -. Other printable special * characters cannot be used in the AUTH token.

For more * information, see AUTH password at * http://redis.io/commands/AUTH.

*/ inline void SetAuthToken(const Aws::String& value) { m_authTokenHasBeenSet = true; m_authToken = value; } /** *

Reserved parameter. The password used to access a password protected * server.

AuthToken can be specified only on replication * groups where TransitEncryptionEnabled is true.

*

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*

Password constraints:

  • Must be only printable ASCII * characters.

  • Must be at least 16 characters and no more than * 128 characters in length.

  • The only permitted printable special * characters are !, &, #, $, ^, <, >, and -. Other printable special * characters cannot be used in the AUTH token.

For more * information, see AUTH password at * http://redis.io/commands/AUTH.

*/ inline void SetAuthToken(Aws::String&& value) { m_authTokenHasBeenSet = true; m_authToken = std::move(value); } /** *

Reserved parameter. The password used to access a password protected * server.

AuthToken can be specified only on replication * groups where TransitEncryptionEnabled is true.

*

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*

Password constraints:

  • Must be only printable ASCII * characters.

  • Must be at least 16 characters and no more than * 128 characters in length.

  • The only permitted printable special * characters are !, &, #, $, ^, <, >, and -. Other printable special * characters cannot be used in the AUTH token.

For more * information, see AUTH password at * http://redis.io/commands/AUTH.

*/ inline void SetAuthToken(const char* value) { m_authTokenHasBeenSet = true; m_authToken.assign(value); } /** *

Reserved parameter. The password used to access a password protected * server.

AuthToken can be specified only on replication * groups where TransitEncryptionEnabled is true.

*

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*

Password constraints:

  • Must be only printable ASCII * characters.

  • Must be at least 16 characters and no more than * 128 characters in length.

  • The only permitted printable special * characters are !, &, #, $, ^, <, >, and -. Other printable special * characters cannot be used in the AUTH token.

For more * information, see AUTH password at * http://redis.io/commands/AUTH.

*/ inline CreateReplicationGroupRequest& WithAuthToken(const Aws::String& value) { SetAuthToken(value); return *this;} /** *

Reserved parameter. The password used to access a password protected * server.

AuthToken can be specified only on replication * groups where TransitEncryptionEnabled is true.

*

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*

Password constraints:

  • Must be only printable ASCII * characters.

  • Must be at least 16 characters and no more than * 128 characters in length.

  • The only permitted printable special * characters are !, &, #, $, ^, <, >, and -. Other printable special * characters cannot be used in the AUTH token.

For more * information, see AUTH password at * http://redis.io/commands/AUTH.

*/ inline CreateReplicationGroupRequest& WithAuthToken(Aws::String&& value) { SetAuthToken(std::move(value)); return *this;} /** *

Reserved parameter. The password used to access a password protected * server.

AuthToken can be specified only on replication * groups where TransitEncryptionEnabled is true.

*

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*

Password constraints:

  • Must be only printable ASCII * characters.

  • Must be at least 16 characters and no more than * 128 characters in length.

  • The only permitted printable special * characters are !, &, #, $, ^, <, >, and -. Other printable special * characters cannot be used in the AUTH token.

For more * information, see AUTH password at * http://redis.io/commands/AUTH.

*/ inline CreateReplicationGroupRequest& WithAuthToken(const char* value) { SetAuthToken(value); return *this;} /** *

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

*

This parameter is valid only if the Engine parameter is * redis, the EngineVersion parameter is * 3.2.6, 4.x or later, and the cluster is being created * in an Amazon VPC.

If you enable in-transit encryption, you must also * specify a value for CacheSubnetGroup.

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

Default: * false

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

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

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

*

This parameter is valid only if the Engine parameter is * redis, the EngineVersion parameter is * 3.2.6, 4.x or later, and the cluster is being created * in an Amazon VPC.

If you enable in-transit encryption, you must also * specify a value for CacheSubnetGroup.

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

Default: * false

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

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

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

*

This parameter is valid only if the Engine parameter is * redis, the EngineVersion parameter is * 3.2.6, 4.x or later, and the cluster is being created * in an Amazon VPC.

If you enable in-transit encryption, you must also * specify a value for CacheSubnetGroup.

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

Default: * false

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

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

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

*

This parameter is valid only if the Engine parameter is * redis, the EngineVersion parameter is * 3.2.6, 4.x or later, and the cluster is being created * in an Amazon VPC.

If you enable in-transit encryption, you must also * specify a value for CacheSubnetGroup.

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

Default: * false

For HIPAA compliance, you must specify * TransitEncryptionEnabled as true, an * AuthToken, and a CacheSubnetGroup.

*/ inline CreateReplicationGroupRequest& 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 * replication group is created. To enable encryption at rest on a replication * group you must set AtRestEncryptionEnabled to true * when you create the replication group.

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 * replication group is created. To enable encryption at rest on a replication * group you must set AtRestEncryptionEnabled to true * when you create the replication group.

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 * replication group is created. To enable encryption at rest on a replication * group you must set AtRestEncryptionEnabled to true * when you create the replication group.

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 * replication group is created. To enable encryption at rest on a replication * group you must set AtRestEncryptionEnabled to true * when you create the replication group.

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 CreateReplicationGroupRequest& WithAtRestEncryptionEnabled(bool value) { SetAtRestEncryptionEnabled(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 CreateReplicationGroupRequest& WithKmsKeyId(const Aws::String& value) { SetKmsKeyId(value); return *this;} /** *

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

*/ inline CreateReplicationGroupRequest& 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 CreateReplicationGroupRequest& WithKmsKeyId(const char* value) { SetKmsKeyId(value); return *this;} /** *

The user group to associate with the replication group.

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

The user group to associate with the replication group.

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

The user group to associate with the replication group.

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

The user group to associate with the replication group.

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

The user group to associate with the replication group.

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

The user group to associate with the replication group.

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

The user group to associate with the replication group.

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

The user group to associate with the replication group.

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

The user group to associate with the replication group.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

*/ inline CreateReplicationGroupRequest& AddLogDeliveryConfigurations(LogDeliveryConfigurationRequest&& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations.push_back(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 bool GetDataTieringEnabled() const{ return m_dataTieringEnabled; } /** *

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 DataTieringEnabledHasBeenSet() const { return m_dataTieringEnabledHasBeenSet; } /** *

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 SetDataTieringEnabled(bool value) { m_dataTieringEnabledHasBeenSet = true; m_dataTieringEnabled = 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 CreateReplicationGroupRequest& WithDataTieringEnabled(bool value) { SetDataTieringEnabled(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 CreateReplicationGroupRequest& 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 CreateReplicationGroupRequest& WithNetworkType(NetworkType&& value) { SetNetworkType(std::move(value)); return *this;} /** *

The network type you choose when creating a replication group, 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 creating a replication group, 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 creating a replication group, 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 creating a replication group, 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 creating a replication group, 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 CreateReplicationGroupRequest& WithIpDiscovery(const IpDiscovery& value) { SetIpDiscovery(value); return *this;} /** *

The network type you choose when creating a replication group, 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 CreateReplicationGroupRequest& 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.

When setting * TransitEncryptionEnabled to true, you can set your * TransitEncryptionMode to preferred in the same * request, to allow both encrypted and unencrypted connections at the same time. * Once you migrate all your Redis clients to use encrypted connections you can * modify the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

This * process will not trigger the replacement of the replication group.

*/ 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.

When setting * TransitEncryptionEnabled to true, you can set your * TransitEncryptionMode to preferred in the same * request, to allow both encrypted and unencrypted connections at the same time. * Once you migrate all your Redis clients to use encrypted connections you can * modify the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

This * process will not trigger the replacement of the replication group.

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

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

When setting * TransitEncryptionEnabled to true, you can set your * TransitEncryptionMode to preferred in the same * request, to allow both encrypted and unencrypted connections at the same time. * Once you migrate all your Redis clients to use encrypted connections you can * modify the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

This * process will not trigger the replacement of the replication group.

*/ 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.

When setting * TransitEncryptionEnabled to true, you can set your * TransitEncryptionMode to preferred in the same * request, to allow both encrypted and unencrypted connections at the same time. * Once you migrate all your Redis clients to use encrypted connections you can * modify the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

This * process will not trigger the replacement of the replication group.

*/ 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.

When setting * TransitEncryptionEnabled to true, you can set your * TransitEncryptionMode to preferred in the same * request, to allow both encrypted and unencrypted connections at the same time. * Once you migrate all your Redis clients to use encrypted connections you can * modify the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

This * process will not trigger the replacement of the replication group.

*/ inline CreateReplicationGroupRequest& 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.

When setting * TransitEncryptionEnabled to true, you can set your * TransitEncryptionMode to preferred in the same * request, to allow both encrypted and unencrypted connections at the same time. * Once you migrate all your Redis clients to use encrypted connections you can * modify the value to required to allow encrypted connections * only.

Setting TransitEncryptionMode to required * is a two-step process that requires you to first set the * TransitEncryptionMode to preferred, after that you can * set TransitEncryptionMode to required.

This * process will not trigger the replacement of the replication group.

*/ inline CreateReplicationGroupRequest& 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 CreateReplicationGroupRequest& 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 CreateReplicationGroupRequest& WithClusterMode(ClusterMode&& value) { SetClusterMode(std::move(value)); return *this;} private: Aws::String m_replicationGroupId; bool m_replicationGroupIdHasBeenSet = false; Aws::String m_replicationGroupDescription; bool m_replicationGroupDescriptionHasBeenSet = false; Aws::String m_globalReplicationGroupId; bool m_globalReplicationGroupIdHasBeenSet = false; Aws::String m_primaryClusterId; bool m_primaryClusterIdHasBeenSet = false; bool m_automaticFailoverEnabled; bool m_automaticFailoverEnabledHasBeenSet = false; bool m_multiAZEnabled; bool m_multiAZEnabledHasBeenSet = false; int m_numCacheClusters; bool m_numCacheClustersHasBeenSet = false; Aws::Vector m_preferredCacheClusterAZs; bool m_preferredCacheClusterAZsHasBeenSet = false; int m_numNodeGroups; bool m_numNodeGroupsHasBeenSet = false; int m_replicasPerNodeGroup; bool m_replicasPerNodeGroupHasBeenSet = false; Aws::Vector m_nodeGroupConfiguration; bool m_nodeGroupConfigurationHasBeenSet = false; Aws::String m_cacheNodeType; bool m_cacheNodeTypeHasBeenSet = false; Aws::String m_engine; bool m_engineHasBeenSet = false; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet = false; Aws::String m_cacheParameterGroupName; bool m_cacheParameterGroupNameHasBeenSet = false; Aws::String m_cacheSubnetGroupName; bool m_cacheSubnetGroupNameHasBeenSet = false; Aws::Vector m_cacheSecurityGroupNames; bool m_cacheSecurityGroupNamesHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_snapshotArns; bool m_snapshotArnsHasBeenSet = false; Aws::String m_snapshotName; bool m_snapshotNameHasBeenSet = false; Aws::String m_preferredMaintenanceWindow; bool m_preferredMaintenanceWindowHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_notificationTopicArn; bool m_notificationTopicArnHasBeenSet = false; bool m_autoMinorVersionUpgrade; bool m_autoMinorVersionUpgradeHasBeenSet = false; int m_snapshotRetentionLimit; bool m_snapshotRetentionLimitHasBeenSet = false; Aws::String m_snapshotWindow; bool m_snapshotWindowHasBeenSet = false; Aws::String m_authToken; bool m_authTokenHasBeenSet = false; bool m_transitEncryptionEnabled; bool m_transitEncryptionEnabledHasBeenSet = false; bool m_atRestEncryptionEnabled; bool m_atRestEncryptionEnabledHasBeenSet = false; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet = false; Aws::Vector m_userGroupIds; bool m_userGroupIdsHasBeenSet = false; Aws::Vector m_logDeliveryConfigurations; bool m_logDeliveryConfigurationsHasBeenSet = false; bool m_dataTieringEnabled; bool m_dataTieringEnabledHasBeenSet = 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