/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace ElastiCache { namespace Model { /** *

Represents the input of a CreateCacheCluster operation.

See * Also:

AWS * API Reference

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

The node group (shard) identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 * to 50 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& GetCacheClusterId() const{ return m_cacheClusterId; } /** *

The node group (shard) identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 * to 50 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 CacheClusterIdHasBeenSet() const { return m_cacheClusterIdHasBeenSet; } /** *

The node group (shard) identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 * to 50 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 SetCacheClusterId(const Aws::String& value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId = value; } /** *

The node group (shard) identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 * to 50 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 SetCacheClusterId(Aws::String&& value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId = std::move(value); } /** *

The node group (shard) identifier. This parameter is stored as a lowercase * string.

Constraints:

  • A name must contain from 1 * to 50 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 SetCacheClusterId(const char* value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId.assign(value); } /** *

The node group (shard) identifier. This parameter is stored as a lowercase * string.

Constraints:

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

  • The first character * must be a letter.

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

*/ inline CreateCacheClusterRequest& WithCacheClusterId(const Aws::String& value) { SetCacheClusterId(value); return *this;} /** *

The node group (shard) identifier. This parameter is stored as a lowercase * string.

Constraints:

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

  • The first character * must be a letter.

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

*/ inline CreateCacheClusterRequest& WithCacheClusterId(Aws::String&& value) { SetCacheClusterId(std::move(value)); return *this;} /** *

The node group (shard) identifier. This parameter is stored as a lowercase * string.

Constraints:

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

  • The first character * must be a letter.

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

*/ inline CreateCacheClusterRequest& WithCacheClusterId(const char* value) { SetCacheClusterId(value); return *this;} /** *

The ID of the replication group to which this cluster should belong. If this * parameter is specified, the cluster is added to the specified replication group * as a read replica; otherwise, the cluster is a standalone primary that is not * part of any replication group.

If the specified replication group is * Multi-AZ enabled and the Availability Zone is not specified, the cluster is * created in Availability Zones that provide the best spread of read replicas * across Availability Zones.

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

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

The ID of the replication group to which this cluster should belong. If this * parameter is specified, the cluster is added to the specified replication group * as a read replica; otherwise, the cluster is a standalone primary that is not * part of any replication group.

If the specified replication group is * Multi-AZ enabled and the Availability Zone is not specified, the cluster is * created in Availability Zones that provide the best spread of read replicas * across Availability Zones.

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

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

The ID of the replication group to which this cluster should belong. If this * parameter is specified, the cluster is added to the specified replication group * as a read replica; otherwise, the cluster is a standalone primary that is not * part of any replication group.

If the specified replication group is * Multi-AZ enabled and the Availability Zone is not specified, the cluster is * created in Availability Zones that provide the best spread of read replicas * across Availability Zones.

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

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

The ID of the replication group to which this cluster should belong. If this * parameter is specified, the cluster is added to the specified replication group * as a read replica; otherwise, the cluster is a standalone primary that is not * part of any replication group.

If the specified replication group is * Multi-AZ enabled and the Availability Zone is not specified, the cluster is * created in Availability Zones that provide the best spread of read replicas * across Availability Zones.

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

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

The ID of the replication group to which this cluster should belong. If this * parameter is specified, the cluster is added to the specified replication group * as a read replica; otherwise, the cluster is a standalone primary that is not * part of any replication group.

If the specified replication group is * Multi-AZ enabled and the Availability Zone is not specified, the cluster is * created in Availability Zones that provide the best spread of read replicas * across Availability Zones.

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

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

The ID of the replication group to which this cluster should belong. If this * parameter is specified, the cluster is added to the specified replication group * as a read replica; otherwise, the cluster is a standalone primary that is not * part of any replication group.

If the specified replication group is * Multi-AZ enabled and the Availability Zone is not specified, the cluster is * created in Availability Zones that provide the best spread of read replicas * across Availability Zones.

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

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

The ID of the replication group to which this cluster should belong. If this * parameter is specified, the cluster is added to the specified replication group * as a read replica; otherwise, the cluster is a standalone primary that is not * part of any replication group.

If the specified replication group is * Multi-AZ enabled and the Availability Zone is not specified, the cluster is * created in Availability Zones that provide the best spread of read replicas * across Availability Zones.

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

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

The ID of the replication group to which this cluster should belong. If this * parameter is specified, the cluster is added to the specified replication group * as a read replica; otherwise, the cluster is a standalone primary that is not * part of any replication group.

If the specified replication group is * Multi-AZ enabled and the Availability Zone is not specified, the cluster is * created in Availability Zones that provide the best spread of read replicas * across Availability Zones.

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

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

Specifies whether the nodes in this Memcached cluster are created in a single * Availability Zone or created across multiple Availability Zones in the cluster's * region.

This parameter is only supported for Memcached clusters.

*

If the AZMode and PreferredAvailabilityZones are * not specified, ElastiCache assumes single-az mode.

*/ inline const AZMode& GetAZMode() const{ return m_aZMode; } /** *

Specifies whether the nodes in this Memcached cluster are created in a single * Availability Zone or created across multiple Availability Zones in the cluster's * region.

This parameter is only supported for Memcached clusters.

*

If the AZMode and PreferredAvailabilityZones are * not specified, ElastiCache assumes single-az mode.

*/ inline bool AZModeHasBeenSet() const { return m_aZModeHasBeenSet; } /** *

Specifies whether the nodes in this Memcached cluster are created in a single * Availability Zone or created across multiple Availability Zones in the cluster's * region.

This parameter is only supported for Memcached clusters.

*

If the AZMode and PreferredAvailabilityZones are * not specified, ElastiCache assumes single-az mode.

*/ inline void SetAZMode(const AZMode& value) { m_aZModeHasBeenSet = true; m_aZMode = value; } /** *

Specifies whether the nodes in this Memcached cluster are created in a single * Availability Zone or created across multiple Availability Zones in the cluster's * region.

This parameter is only supported for Memcached clusters.

*

If the AZMode and PreferredAvailabilityZones are * not specified, ElastiCache assumes single-az mode.

*/ inline void SetAZMode(AZMode&& value) { m_aZModeHasBeenSet = true; m_aZMode = std::move(value); } /** *

Specifies whether the nodes in this Memcached cluster are created in a single * Availability Zone or created across multiple Availability Zones in the cluster's * region.

This parameter is only supported for Memcached clusters.

*

If the AZMode and PreferredAvailabilityZones are * not specified, ElastiCache assumes single-az mode.

*/ inline CreateCacheClusterRequest& WithAZMode(const AZMode& value) { SetAZMode(value); return *this;} /** *

Specifies whether the nodes in this Memcached cluster are created in a single * Availability Zone or created across multiple Availability Zones in the cluster's * region.

This parameter is only supported for Memcached clusters.

*

If the AZMode and PreferredAvailabilityZones are * not specified, ElastiCache assumes single-az mode.

*/ inline CreateCacheClusterRequest& WithAZMode(AZMode&& value) { SetAZMode(std::move(value)); return *this;} /** *

The EC2 Availability Zone in which the cluster is created.

All nodes * belonging to this cluster are placed in the preferred Availability Zone. If you * want to create your nodes across multiple Availability Zones, use * PreferredAvailabilityZones.

Default: System chosen * Availability Zone.

*/ inline const Aws::String& GetPreferredAvailabilityZone() const{ return m_preferredAvailabilityZone; } /** *

The EC2 Availability Zone in which the cluster is created.

All nodes * belonging to this cluster are placed in the preferred Availability Zone. If you * want to create your nodes across multiple Availability Zones, use * PreferredAvailabilityZones.

Default: System chosen * Availability Zone.

*/ inline bool PreferredAvailabilityZoneHasBeenSet() const { return m_preferredAvailabilityZoneHasBeenSet; } /** *

The EC2 Availability Zone in which the cluster is created.

All nodes * belonging to this cluster are placed in the preferred Availability Zone. If you * want to create your nodes across multiple Availability Zones, use * PreferredAvailabilityZones.

Default: System chosen * Availability Zone.

*/ inline void SetPreferredAvailabilityZone(const Aws::String& value) { m_preferredAvailabilityZoneHasBeenSet = true; m_preferredAvailabilityZone = value; } /** *

The EC2 Availability Zone in which the cluster is created.

All nodes * belonging to this cluster are placed in the preferred Availability Zone. If you * want to create your nodes across multiple Availability Zones, use * PreferredAvailabilityZones.

Default: System chosen * Availability Zone.

*/ inline void SetPreferredAvailabilityZone(Aws::String&& value) { m_preferredAvailabilityZoneHasBeenSet = true; m_preferredAvailabilityZone = std::move(value); } /** *

The EC2 Availability Zone in which the cluster is created.

All nodes * belonging to this cluster are placed in the preferred Availability Zone. If you * want to create your nodes across multiple Availability Zones, use * PreferredAvailabilityZones.

Default: System chosen * Availability Zone.

*/ inline void SetPreferredAvailabilityZone(const char* value) { m_preferredAvailabilityZoneHasBeenSet = true; m_preferredAvailabilityZone.assign(value); } /** *

The EC2 Availability Zone in which the cluster is created.

All nodes * belonging to this cluster are placed in the preferred Availability Zone. If you * want to create your nodes across multiple Availability Zones, use * PreferredAvailabilityZones.

Default: System chosen * Availability Zone.

*/ inline CreateCacheClusterRequest& WithPreferredAvailabilityZone(const Aws::String& value) { SetPreferredAvailabilityZone(value); return *this;} /** *

The EC2 Availability Zone in which the cluster is created.

All nodes * belonging to this cluster are placed in the preferred Availability Zone. If you * want to create your nodes across multiple Availability Zones, use * PreferredAvailabilityZones.

Default: System chosen * Availability Zone.

*/ inline CreateCacheClusterRequest& WithPreferredAvailabilityZone(Aws::String&& value) { SetPreferredAvailabilityZone(std::move(value)); return *this;} /** *

The EC2 Availability Zone in which the cluster is created.

All nodes * belonging to this cluster are placed in the preferred Availability Zone. If you * want to create your nodes across multiple Availability Zones, use * PreferredAvailabilityZones.

Default: System chosen * Availability Zone.

*/ inline CreateCacheClusterRequest& WithPreferredAvailabilityZone(const char* value) { SetPreferredAvailabilityZone(value); return *this;} /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline const Aws::Vector& GetPreferredAvailabilityZones() const{ return m_preferredAvailabilityZones; } /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline bool PreferredAvailabilityZonesHasBeenSet() const { return m_preferredAvailabilityZonesHasBeenSet; } /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline void SetPreferredAvailabilityZones(const Aws::Vector& value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones = value; } /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline void SetPreferredAvailabilityZones(Aws::Vector&& value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones = std::move(value); } /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline CreateCacheClusterRequest& WithPreferredAvailabilityZones(const Aws::Vector& value) { SetPreferredAvailabilityZones(value); return *this;} /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline CreateCacheClusterRequest& WithPreferredAvailabilityZones(Aws::Vector&& value) { SetPreferredAvailabilityZones(std::move(value)); return *this;} /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline CreateCacheClusterRequest& AddPreferredAvailabilityZones(const Aws::String& value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones.push_back(value); return *this; } /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline CreateCacheClusterRequest& AddPreferredAvailabilityZones(Aws::String&& value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones.push_back(std::move(value)); return *this; } /** *

A list of the Availability Zones in which cache nodes are created. The order * of the zones in the list is not important.

This option is only supported * on Memcached.

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

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

If you want all the nodes in the same * Availability Zone, use PreferredAvailabilityZone instead, or repeat * the Availability Zone multiple times in the list.

Default: System chosen * Availability Zones.

*/ inline CreateCacheClusterRequest& AddPreferredAvailabilityZones(const char* value) { m_preferredAvailabilityZonesHasBeenSet = true; m_preferredAvailabilityZones.push_back(value); return *this; } /** *

The initial number of cache nodes that the cluster has.

For clusters * running Redis, this value must be 1. For clusters running Memcached, this value * must be between 1 and 40.

If you need more than 40 nodes for your * Memcached cluster, please fill out the ElastiCache Limit Increase Request form * at http://aws.amazon.com/contact-us/elasticache-node-limit-request/.

*/ inline int GetNumCacheNodes() const{ return m_numCacheNodes; } /** *

The initial number of cache nodes that the cluster has.

For clusters * running Redis, this value must be 1. For clusters running Memcached, this value * must be between 1 and 40.

If you need more than 40 nodes for your * Memcached cluster, please fill out the ElastiCache Limit Increase Request form * at http://aws.amazon.com/contact-us/elasticache-node-limit-request/.

*/ inline bool NumCacheNodesHasBeenSet() const { return m_numCacheNodesHasBeenSet; } /** *

The initial number of cache nodes that the cluster has.

For clusters * running Redis, this value must be 1. For clusters running Memcached, this value * must be between 1 and 40.

If you need more than 40 nodes for your * Memcached cluster, please fill out the ElastiCache Limit Increase Request form * at http://aws.amazon.com/contact-us/elasticache-node-limit-request/.

*/ inline void SetNumCacheNodes(int value) { m_numCacheNodesHasBeenSet = true; m_numCacheNodes = value; } /** *

The initial number of cache nodes that the cluster has.

For clusters * running Redis, this value must be 1. For clusters running Memcached, this value * must be between 1 and 40.

If you need more than 40 nodes for your * Memcached cluster, please fill out the ElastiCache Limit Increase Request form * at http://aws.amazon.com/contact-us/elasticache-node-limit-request/.

*/ inline CreateCacheClusterRequest& WithNumCacheNodes(int value) { SetNumCacheNodes(value); return *this;} /** *

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

*

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

  • General purpose:

    • Current * generation:

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

      For region availability, see Supported * Node Types

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

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

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

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

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

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

      T1 node types: * cache.t1.micro

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

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

    *
  • Compute optimized:

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

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

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

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

      *

      For region availability, see Supported * Node Types

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

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

    • *

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

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

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

Additional * node type info

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

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

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

  • *

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

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

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

*

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

  • General purpose:

    • Current * generation:

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

      For region availability, see Supported * Node Types

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

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

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

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

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

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

      T1 node types: * cache.t1.micro

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

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

    *
  • Compute optimized:

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

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

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

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

      *

      For region availability, see Supported * Node Types

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

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

    • *

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

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

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

Additional * node type info

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

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

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

  • *

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

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

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

*

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

  • General purpose:

    • Current * generation:

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

      For region availability, see Supported * Node Types

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

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

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

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

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

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

      T1 node types: * cache.t1.micro

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

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

    *
  • Compute optimized:

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

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

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

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

      *

      For region availability, see Supported * Node Types

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

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

    • *

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

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

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

Additional * node type info

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

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

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

  • *

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

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

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

*

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

  • General purpose:

    • Current * generation:

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

      For region availability, see Supported * Node Types

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

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

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

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

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

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

      T1 node types: * cache.t1.micro

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

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

    *
  • Compute optimized:

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

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

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

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

      *

      For region availability, see Supported * Node Types

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

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

    • *

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

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

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

Additional * node type info

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

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

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

  • *

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

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

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

*

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

  • General purpose:

    • Current * generation:

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

      For region availability, see Supported * Node Types

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

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

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

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

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

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

      T1 node types: * cache.t1.micro

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

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

    *
  • Compute optimized:

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

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

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

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

      *

      For region availability, see Supported * Node Types

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

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

    • *

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

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

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

Additional * node type info

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

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

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

  • *

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

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

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

*

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

  • General purpose:

    • Current * generation:

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

      For region availability, see Supported * Node Types

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

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

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

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

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

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

      T1 node types: * cache.t1.micro

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

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

    *
  • Compute optimized:

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

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

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

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

      *

      For region availability, see Supported * Node Types

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

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

    • *

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

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

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

Additional * node type info

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

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

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

  • *

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

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

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

*

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

  • General purpose:

    • Current * generation:

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

      For region availability, see Supported * Node Types

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

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

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

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

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

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

      T1 node types: * cache.t1.micro

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

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

    *
  • Compute optimized:

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

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

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

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

      *

      For region availability, see Supported * Node Types

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

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

    • *

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

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

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

Additional * node type info

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

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

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

  • *

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

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

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

*

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

  • General purpose:

    • Current * generation:

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

      For region availability, see Supported * Node Types

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

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

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

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

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

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

      T1 node types: * cache.t1.micro

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

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

    *
  • Compute optimized:

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

      C1 node types: * cache.c1.xlarge

  • Memory * optimized:

    • Current generation:

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

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

      *

      For region availability, see Supported * Node Types

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

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

    • *

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

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

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

Additional * node type info

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

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

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

  • *

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

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

The name of the cache engine to be used for this cluster.

Valid values * for this parameter are: memcached | redis

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

The name of the cache engine to be used for this cluster.

Valid values * for this parameter are: memcached | redis

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

The name of the cache engine to be used for this cluster.

Valid values * for this parameter are: memcached | redis

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

The name of the cache engine to be used for this cluster.

Valid values * for this parameter are: memcached | redis

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

The name of the cache engine to be used for this cluster.

Valid values * for this parameter are: memcached | redis

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

The name of the cache engine to be used for this cluster.

Valid values * for this parameter are: memcached | redis

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

The name of the cache engine to be used for this cluster.

Valid values * for this parameter are: memcached | redis

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

The name of the cache engine to be used for this cluster.

Valid values * for this parameter are: memcached | redis

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

The version number of the cache engine to be used for this cluster. 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), 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 this cluster. 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), 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 this cluster. 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), 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 this cluster. 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), 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 this cluster. 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), 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 this cluster. 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), 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 CreateCacheClusterRequest& WithEngineVersion(const Aws::String& value) { SetEngineVersion(value); return *this;} /** *

The version number of the cache engine to be used for this cluster. 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), 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 CreateCacheClusterRequest& WithEngineVersion(Aws::String&& value) { SetEngineVersion(std::move(value)); return *this;} /** *

The version number of the cache engine to be used for this cluster. 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), 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 CreateCacheClusterRequest& WithEngineVersion(const char* value) { SetEngineVersion(value); return *this;} /** *

The name of the parameter group to associate with this cluster. If this * argument is omitted, the default parameter group for the specified engine is * used. You cannot use any parameter group which has * cluster-enabled='yes' when creating a cluster.

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

The name of the parameter group to associate with this cluster. If this * argument is omitted, the default parameter group for the specified engine is * used. You cannot use any parameter group which has * cluster-enabled='yes' when creating a cluster.

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

The name of the parameter group to associate with this cluster. If this * argument is omitted, the default parameter group for the specified engine is * used. You cannot use any parameter group which has * cluster-enabled='yes' when creating a cluster.

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

The name of the parameter group to associate with this cluster. If this * argument is omitted, the default parameter group for the specified engine is * used. You cannot use any parameter group which has * cluster-enabled='yes' when creating a cluster.

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

The name of the parameter group to associate with this cluster. If this * argument is omitted, the default parameter group for the specified engine is * used. You cannot use any parameter group which has * cluster-enabled='yes' when creating a cluster.

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

The name of the parameter group to associate with this cluster. If this * argument is omitted, the default parameter group for the specified engine is * used. You cannot use any parameter group which has * cluster-enabled='yes' when creating a cluster.

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

The name of the parameter group to associate with this cluster. If this * argument is omitted, the default parameter group for the specified engine is * used. You cannot use any parameter group which has * cluster-enabled='yes' when creating a cluster.

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

The name of the parameter group to associate with this cluster. If this * argument is omitted, the default parameter group for the specified engine is * used. You cannot use any parameter group which has * cluster-enabled='yes' when creating a cluster.

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

The name of the subnet group to be used for the cluster.

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

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 subnet group to be used for the cluster.

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

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 subnet group to be used for the cluster.

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

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 subnet group to be used for the cluster.

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

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 subnet group to be used for the cluster.

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

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 subnet group to be used for the cluster.

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

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 CreateCacheClusterRequest& WithCacheSubnetGroupName(const Aws::String& value) { SetCacheSubnetGroupName(value); return *this;} /** *

The name of the subnet group to be used for the cluster.

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

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 CreateCacheClusterRequest& WithCacheSubnetGroupName(Aws::String&& value) { SetCacheSubnetGroupName(std::move(value)); return *this;} /** *

The name of the subnet group to be used for the cluster.

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

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 CreateCacheClusterRequest& WithCacheSubnetGroupName(const char* value) { SetCacheSubnetGroupName(value); return *this;} /** *

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

A list of security group names to associate with this cluster.

Use * this parameter only when you are creating a cluster outside of an Amazon Virtual * Private Cloud (Amazon VPC).

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

One or more VPC security groups associated with the cluster.

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

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

One or more VPC security groups associated with the cluster.

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

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

One or more VPC security groups associated with the cluster.

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

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

One or more VPC security groups associated with the cluster.

Use this * parameter only when you are creating a cluster 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 VPC security groups associated with the cluster.

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

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

One or more VPC security groups associated with the cluster.

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

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

One or more VPC security groups associated with the cluster.

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

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

One or more VPC security groups associated with the cluster.

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

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

One or more VPC security groups associated with the cluster.

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

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

A list of tags to be added to this resource.

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

A list of tags to be added to this resource.

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

A list of tags to be added to this resource.

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

A list of tags to be added to this resource.

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

A list of tags to be added to this resource.

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

A list of tags to be added to this resource.

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

A list of tags to be added to this resource.

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

A list of tags to be added to this resource.

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

A single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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

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

A single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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

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

A single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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 single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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 single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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

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

A single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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

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

A single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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

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

A single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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

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

A single-element string list containing an Amazon Resource Name (ARN) that * uniquely identifies a Redis RDB snapshot file stored in Amazon S3. The snapshot * file is used to populate the node group (shard). The Amazon S3 object name in * the ARN cannot contain any commas.

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

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

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

The name of a Redis snapshot from which to restore data into the new node * group (shard). The snapshot status changes to restoring while the * new node group (shard) is being created.

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

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

The name of a Redis snapshot from which to restore data into the new node * group (shard). The snapshot status changes to restoring while the * new node group (shard) is being created.

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

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

The name of a Redis snapshot from which to restore data into the new node * group (shard). The snapshot status changes to restoring while the * new node group (shard) is being created.

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

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

The name of a Redis snapshot from which to restore data into the new node * group (shard). The snapshot status changes to restoring while the * new node group (shard) is being created.

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

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

The name of a Redis snapshot from which to restore data into the new node * group (shard). The snapshot status changes to restoring while the * new node group (shard) is being created.

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

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

The name of a Redis snapshot from which to restore data into the new node * group (shard). The snapshot status changes to restoring while the * new node group (shard) is being created.

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

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

The name of a Redis snapshot from which to restore data into the new node * group (shard). The snapshot status changes to restoring while the * new node group (shard) is being created.

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

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

The name of a Redis snapshot from which to restore data into the new node * group (shard). The snapshot status changes to restoring while the * new node group (shard) is being created.

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

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

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

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

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

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

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

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

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

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

The port number on which each of the cache nodes accepts connections.

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

The port number on which each of the cache nodes accepts connections.

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

The port number on which each of the cache nodes accepts connections.

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

The port number on which each of the cache nodes accepts connections.

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

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

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

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

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

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

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

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

*/ inline CreateCacheClusterRequest& 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 taken today is retained for 5 days before being deleted.

*

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

Default: 0 (i.e., automatic backups are * disabled for this cache 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 taken today is retained for 5 days before being deleted.

*

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

Default: 0 (i.e., automatic backups are * disabled for this cache 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 taken today is retained for 5 days before being deleted.

*

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

Default: 0 (i.e., automatic backups are * disabled for this cache 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 taken today is retained for 5 days before being deleted.

*

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

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

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

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

Example: 05:00-09:00 *

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

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

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

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

Example: 05:00-09:00 *

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

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

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

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

Example: 05:00-09:00 *

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

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

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

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

Example: 05:00-09:00 *

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

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

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

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

Example: 05:00-09:00 *

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

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

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

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

Example: 05:00-09:00 *

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

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

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

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

Example: 05:00-09:00 *

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

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

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

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

Example: 05:00-09:00 *

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

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

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

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

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.

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.

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.

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.

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.

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 CreateCacheClusterRequest& WithAuthToken(const Aws::String& value) { SetAuthToken(value); return *this;} /** *

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

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 CreateCacheClusterRequest& WithAuthToken(Aws::String&& value) { SetAuthToken(std::move(value)); return *this;} /** *

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

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 CreateCacheClusterRequest& WithAuthToken(const char* value) { SetAuthToken(value); return *this;} /** *

Specifies whether the nodes in the cluster are created in a single outpost or * across multiple outposts.

*/ inline const OutpostMode& GetOutpostMode() const{ return m_outpostMode; } /** *

Specifies whether the nodes in the cluster are created in a single outpost or * across multiple outposts.

*/ inline bool OutpostModeHasBeenSet() const { return m_outpostModeHasBeenSet; } /** *

Specifies whether the nodes in the cluster are created in a single outpost or * across multiple outposts.

*/ inline void SetOutpostMode(const OutpostMode& value) { m_outpostModeHasBeenSet = true; m_outpostMode = value; } /** *

Specifies whether the nodes in the cluster are created in a single outpost or * across multiple outposts.

*/ inline void SetOutpostMode(OutpostMode&& value) { m_outpostModeHasBeenSet = true; m_outpostMode = std::move(value); } /** *

Specifies whether the nodes in the cluster are created in a single outpost or * across multiple outposts.

*/ inline CreateCacheClusterRequest& WithOutpostMode(const OutpostMode& value) { SetOutpostMode(value); return *this;} /** *

Specifies whether the nodes in the cluster are created in a single outpost or * across multiple outposts.

*/ inline CreateCacheClusterRequest& WithOutpostMode(OutpostMode&& value) { SetOutpostMode(std::move(value)); return *this;} /** *

The outpost ARN in which the cache cluster is created.

*/ inline const Aws::String& GetPreferredOutpostArn() const{ return m_preferredOutpostArn; } /** *

The outpost ARN in which the cache cluster is created.

*/ inline bool PreferredOutpostArnHasBeenSet() const { return m_preferredOutpostArnHasBeenSet; } /** *

The outpost ARN in which the cache cluster is created.

*/ inline void SetPreferredOutpostArn(const Aws::String& value) { m_preferredOutpostArnHasBeenSet = true; m_preferredOutpostArn = value; } /** *

The outpost ARN in which the cache cluster is created.

*/ inline void SetPreferredOutpostArn(Aws::String&& value) { m_preferredOutpostArnHasBeenSet = true; m_preferredOutpostArn = std::move(value); } /** *

The outpost ARN in which the cache cluster is created.

*/ inline void SetPreferredOutpostArn(const char* value) { m_preferredOutpostArnHasBeenSet = true; m_preferredOutpostArn.assign(value); } /** *

The outpost ARN in which the cache cluster is created.

*/ inline CreateCacheClusterRequest& WithPreferredOutpostArn(const Aws::String& value) { SetPreferredOutpostArn(value); return *this;} /** *

The outpost ARN in which the cache cluster is created.

*/ inline CreateCacheClusterRequest& WithPreferredOutpostArn(Aws::String&& value) { SetPreferredOutpostArn(std::move(value)); return *this;} /** *

The outpost ARN in which the cache cluster is created.

*/ inline CreateCacheClusterRequest& WithPreferredOutpostArn(const char* value) { SetPreferredOutpostArn(value); return *this;} /** *

The outpost ARNs in which the cache cluster is created.

*/ inline const Aws::Vector& GetPreferredOutpostArns() const{ return m_preferredOutpostArns; } /** *

The outpost ARNs in which the cache cluster is created.

*/ inline bool PreferredOutpostArnsHasBeenSet() const { return m_preferredOutpostArnsHasBeenSet; } /** *

The outpost ARNs in which the cache cluster is created.

*/ inline void SetPreferredOutpostArns(const Aws::Vector& value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns = value; } /** *

The outpost ARNs in which the cache cluster is created.

*/ inline void SetPreferredOutpostArns(Aws::Vector&& value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns = std::move(value); } /** *

The outpost ARNs in which the cache cluster is created.

*/ inline CreateCacheClusterRequest& WithPreferredOutpostArns(const Aws::Vector& value) { SetPreferredOutpostArns(value); return *this;} /** *

The outpost ARNs in which the cache cluster is created.

*/ inline CreateCacheClusterRequest& WithPreferredOutpostArns(Aws::Vector&& value) { SetPreferredOutpostArns(std::move(value)); return *this;} /** *

The outpost ARNs in which the cache cluster is created.

*/ inline CreateCacheClusterRequest& AddPreferredOutpostArns(const Aws::String& value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns.push_back(value); return *this; } /** *

The outpost ARNs in which the cache cluster is created.

*/ inline CreateCacheClusterRequest& AddPreferredOutpostArns(Aws::String&& value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns.push_back(std::move(value)); return *this; } /** *

The outpost ARNs in which the cache cluster is created.

*/ inline CreateCacheClusterRequest& AddPreferredOutpostArns(const char* value) { m_preferredOutpostArnsHasBeenSet = true; m_preferredOutpostArns.push_back(value); return *this; } /** *

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

Specifies the destination, format and type of the logs.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

*/ inline CreateCacheClusterRequest& WithIpDiscovery(IpDiscovery&& value) { SetIpDiscovery(std::move(value)); return *this;} private: Aws::String m_cacheClusterId; bool m_cacheClusterIdHasBeenSet = false; Aws::String m_replicationGroupId; bool m_replicationGroupIdHasBeenSet = false; AZMode m_aZMode; bool m_aZModeHasBeenSet = false; Aws::String m_preferredAvailabilityZone; bool m_preferredAvailabilityZoneHasBeenSet = false; Aws::Vector m_preferredAvailabilityZones; bool m_preferredAvailabilityZonesHasBeenSet = false; int m_numCacheNodes; bool m_numCacheNodesHasBeenSet = false; Aws::String m_cacheNodeType; bool m_cacheNodeTypeHasBeenSet = false; Aws::String m_engine; bool m_engineHasBeenSet = false; Aws::String m_engineVersion; bool m_engineVersionHasBeenSet = false; Aws::String m_cacheParameterGroupName; bool m_cacheParameterGroupNameHasBeenSet = false; Aws::String m_cacheSubnetGroupName; bool m_cacheSubnetGroupNameHasBeenSet = false; Aws::Vector m_cacheSecurityGroupNames; bool m_cacheSecurityGroupNamesHasBeenSet = false; Aws::Vector m_securityGroupIds; bool m_securityGroupIdsHasBeenSet = false; Aws::Vector m_tags; bool m_tagsHasBeenSet = false; Aws::Vector m_snapshotArns; bool m_snapshotArnsHasBeenSet = false; Aws::String m_snapshotName; bool m_snapshotNameHasBeenSet = false; Aws::String m_preferredMaintenanceWindow; bool m_preferredMaintenanceWindowHasBeenSet = false; int m_port; bool m_portHasBeenSet = false; Aws::String m_notificationTopicArn; bool m_notificationTopicArnHasBeenSet = false; bool m_autoMinorVersionUpgrade; bool m_autoMinorVersionUpgradeHasBeenSet = false; int m_snapshotRetentionLimit; bool m_snapshotRetentionLimitHasBeenSet = false; Aws::String m_snapshotWindow; bool m_snapshotWindowHasBeenSet = false; Aws::String m_authToken; bool m_authTokenHasBeenSet = false; OutpostMode m_outpostMode; bool m_outpostModeHasBeenSet = false; Aws::String m_preferredOutpostArn; bool m_preferredOutpostArnHasBeenSet = false; Aws::Vector m_preferredOutpostArns; bool m_preferredOutpostArnsHasBeenSet = false; Aws::Vector m_logDeliveryConfigurations; bool m_logDeliveryConfigurationsHasBeenSet = false; bool m_transitEncryptionEnabled; bool m_transitEncryptionEnabledHasBeenSet = false; NetworkType m_networkType; bool m_networkTypeHasBeenSet = false; IpDiscovery m_ipDiscovery; bool m_ipDiscoveryHasBeenSet = false; }; } // namespace Model } // namespace ElastiCache } // namespace Aws