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

Represents the input of a CreateReplicationGroup * operation.

See Also:

AWS * API Reference

*/ class AWS_ELASTICACHE_API CreateReplicationGroupRequest : public ElastiCacheRequest { public: 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::String SerializePayload() const override; protected: 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:

      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

      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)

      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)

      C1 node types: cache.c1.xlarge

      *
  • Memory optimized:

    • Current generation: *

      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)

      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:

      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

      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)

      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)

      C1 node types: cache.c1.xlarge

      *
  • Memory optimized:

    • Current generation: *

      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)

      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:

      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

      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)

      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)

      C1 node types: cache.c1.xlarge

      *
  • Memory optimized:

    • Current generation: *

      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)

      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:

      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

      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)

      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)

      C1 node types: cache.c1.xlarge

      *
  • Memory optimized:

    • Current generation: *

      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)

      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:

      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

      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)

      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)

      C1 node types: cache.c1.xlarge

      *
  • Memory optimized:

    • Current generation: *

      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)

      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:

      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

      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)

      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)

      C1 node types: cache.c1.xlarge

      *
  • Memory optimized:

    • Current generation: *

      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)

      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:

      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

      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)

      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)

      C1 node types: cache.c1.xlarge

      *
  • Memory optimized:

    • Current generation: *

      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)

      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:

      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

      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)

      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)

      C1 node types: cache.c1.xlarge

      *
  • Memory optimized:

    • Current generation: *

      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)

      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.

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

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

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

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

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

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

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

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

*/ 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 restoring to an engine version that is * different than the original, you must specify the default version of that * version. For example, CacheParameterGroupName=default.redis4.0.

*

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 restoring to an engine version that is * different than the original, you must specify the default version of that * version. For example, CacheParameterGroupName=default.redis4.0.

*

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 restoring to an engine version that is * different than the original, you must specify the default version of that * version. For example, CacheParameterGroupName=default.redis4.0.

*

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 restoring to an engine version that is * different than the original, you must specify the default version of that * version. For example, CacheParameterGroupName=default.redis4.0.

*

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 restoring to an engine version that is * different than the original, you must specify the default version of that * version. For example, CacheParameterGroupName=default.redis4.0.

*

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 restoring to an engine version that is * different than the original, you must specify the default version of that * version. For example, CacheParameterGroupName=default.redis4.0.

*

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 restoring to an engine version that is * different than the original, you must specify the default version of that * version. For example, CacheParameterGroupName=default.redis4.0.

*

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 restoring to an engine version that is * different than the original, you must specify the default version of that * version. For example, CacheParameterGroupName=default.redis4.0.

*

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 cost allocation 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.

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

A list of cost allocation 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.

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

A list of cost allocation 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.

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

A list of cost allocation 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.

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

A list of cost allocation 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.

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

A list of cost allocation 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.

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

A list of cost allocation 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.

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

A list of cost allocation 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.

*/ 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;} /** *

This parameter is currently disabled.

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

This parameter is currently disabled.

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

This parameter is currently disabled.

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

This parameter is currently disabled.

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

*

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

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.

*

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

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.

*

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

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.

*

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

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;} private: Aws::String m_replicationGroupId; bool m_replicationGroupIdHasBeenSet; Aws::String m_replicationGroupDescription; bool m_replicationGroupDescriptionHasBeenSet; Aws::String m_globalReplicationGroupId; bool m_globalReplicationGroupIdHasBeenSet; Aws::String m_primaryClusterId; bool m_primaryClusterIdHasBeenSet; bool m_automaticFailoverEnabled; bool m_automaticFailoverEnabledHasBeenSet; bool m_multiAZEnabled; bool m_multiAZEnabledHasBeenSet; int m_numCacheClusters; bool m_numCacheClustersHasBeenSet; Aws::Vector m_preferredCacheClusterAZs; bool m_preferredCacheClusterAZsHasBeenSet; int m_numNodeGroups; bool m_numNodeGroupsHasBeenSet; int m_replicasPerNodeGroup; bool m_replicasPerNodeGroupHasBeenSet; Aws::Vector m_nodeGroupConfiguration; bool m_nodeGroupConfigurationHasBeenSet; Aws::String m_cacheNodeType; bool m_cacheNodeTypeHasBeenSet; Aws::String m_engine; bool m_engineHasBeenSet; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet; Aws::String m_cacheParameterGroupName; bool m_cacheParameterGroupNameHasBeenSet; Aws::String m_cacheSubnetGroupName; bool m_cacheSubnetGroupNameHasBeenSet; Aws::Vector m_cacheSecurityGroupNames; bool m_cacheSecurityGroupNamesHasBeenSet; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet; Aws::Vector m_tags; bool m_tagsHasBeenSet; Aws::Vector m_snapshotArns; bool m_snapshotArnsHasBeenSet; Aws::String m_snapshotName; bool m_snapshotNameHasBeenSet; Aws::String m_preferredMaintenanceWindow; bool m_preferredMaintenanceWindowHasBeenSet; int m_port; bool m_portHasBeenSet; Aws::String m_notificationTopicArn; bool m_notificationTopicArnHasBeenSet; bool m_autoMinorVersionUpgrade; bool m_autoMinorVersionUpgradeHasBeenSet; int m_snapshotRetentionLimit; bool m_snapshotRetentionLimitHasBeenSet; Aws::String m_snapshotWindow; bool m_snapshotWindowHasBeenSet; Aws::String m_authToken; bool m_authTokenHasBeenSet; bool m_transitEncryptionEnabled; bool m_transitEncryptionEnabledHasBeenSet; bool m_atRestEncryptionEnabled; bool m_atRestEncryptionEnabledHasBeenSet; Aws::String m_kmsKeyId; bool m_kmsKeyIdHasBeenSet; }; } // namespace Model } // namespace ElastiCache } // namespace Aws