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

Contains all of the attributes of a specific cluster.

See * Also:

AWS * API Reference

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

The user-supplied identifier of the cluster. This identifier is a unique key * that identifies a cluster.

*/ inline const Aws::String& GetCacheClusterId() const{ return m_cacheClusterId; } /** *

The user-supplied identifier of the cluster. This identifier is a unique key * that identifies a cluster.

*/ inline bool CacheClusterIdHasBeenSet() const { return m_cacheClusterIdHasBeenSet; } /** *

The user-supplied identifier of the cluster. This identifier is a unique key * that identifies a cluster.

*/ inline void SetCacheClusterId(const Aws::String& value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId = value; } /** *

The user-supplied identifier of the cluster. This identifier is a unique key * that identifies a cluster.

*/ inline void SetCacheClusterId(Aws::String&& value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId = std::move(value); } /** *

The user-supplied identifier of the cluster. This identifier is a unique key * that identifies a cluster.

*/ inline void SetCacheClusterId(const char* value) { m_cacheClusterIdHasBeenSet = true; m_cacheClusterId.assign(value); } /** *

The user-supplied identifier of the cluster. This identifier is a unique key * that identifies a cluster.

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

The user-supplied identifier of the cluster. This identifier is a unique key * that identifies a cluster.

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

The user-supplied identifier of the cluster. This identifier is a unique key * that identifies a cluster.

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

Represents a Memcached cluster endpoint which can be used by an application * to connect to any node in the cluster. The configuration endpoint will always * have .cfg in it.

Example: * mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211

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

Represents a Memcached cluster endpoint which can be used by an application * to connect to any node in the cluster. The configuration endpoint will always * have .cfg in it.

Example: * mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211

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

Represents a Memcached cluster endpoint which can be used by an application * to connect to any node in the cluster. The configuration endpoint will always * have .cfg in it.

Example: * mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211

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

Represents a Memcached cluster endpoint which can be used by an application * to connect to any node in the cluster. The configuration endpoint will always * have .cfg in it.

Example: * mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211

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

Represents a Memcached cluster endpoint which can be used by an application * to connect to any node in the cluster. The configuration endpoint will always * have .cfg in it.

Example: * mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211

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

Represents a Memcached cluster endpoint which can be used by an application * to connect to any node in the cluster. The configuration endpoint will always * have .cfg in it.

Example: * mem-3.9dvc4r.cfg.usw2.cache.amazonaws.com:11211

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

The URL of the web page where you can download the latest ElastiCache client * library.

*/ inline const Aws::String& GetClientDownloadLandingPage() const{ return m_clientDownloadLandingPage; } /** *

The URL of the web page where you can download the latest ElastiCache client * library.

*/ inline bool ClientDownloadLandingPageHasBeenSet() const { return m_clientDownloadLandingPageHasBeenSet; } /** *

The URL of the web page where you can download the latest ElastiCache client * library.

*/ inline void SetClientDownloadLandingPage(const Aws::String& value) { m_clientDownloadLandingPageHasBeenSet = true; m_clientDownloadLandingPage = value; } /** *

The URL of the web page where you can download the latest ElastiCache client * library.

*/ inline void SetClientDownloadLandingPage(Aws::String&& value) { m_clientDownloadLandingPageHasBeenSet = true; m_clientDownloadLandingPage = std::move(value); } /** *

The URL of the web page where you can download the latest ElastiCache client * library.

*/ inline void SetClientDownloadLandingPage(const char* value) { m_clientDownloadLandingPageHasBeenSet = true; m_clientDownloadLandingPage.assign(value); } /** *

The URL of the web page where you can download the latest ElastiCache client * library.

*/ inline CacheCluster& WithClientDownloadLandingPage(const Aws::String& value) { SetClientDownloadLandingPage(value); return *this;} /** *

The URL of the web page where you can download the latest ElastiCache client * library.

*/ inline CacheCluster& WithClientDownloadLandingPage(Aws::String&& value) { SetClientDownloadLandingPage(std::move(value)); return *this;} /** *

The URL of the web page where you can download the latest ElastiCache client * library.

*/ inline CacheCluster& WithClientDownloadLandingPage(const char* value) { SetClientDownloadLandingPage(value); return *this;} /** *

The name of the compute and memory capacity node type for the cluster.

*

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 name of the compute and memory capacity node type for the cluster.

*

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 name of the compute and memory capacity node type for the cluster.

*

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 name of the compute and memory capacity node type for the cluster.

*

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 name of the compute and memory capacity node type for the cluster.

*

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 name of the compute and memory capacity node type for the cluster.

*

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 CacheCluster& WithCacheNodeType(const Aws::String& value) { SetCacheNodeType(value); return *this;} /** *

The name of the compute and memory capacity node type for the cluster.

*

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

The name of the compute and memory capacity node type for the cluster.

*

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 CacheCluster& WithCacheNodeType(const char* value) { SetCacheNodeType(value); return *this;} /** *

The name of the cache engine (memcached or redis) * to be used for this cluster.

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

The name of the cache engine (memcached or redis) * to be used for this cluster.

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

The name of the cache engine (memcached or redis) * to be used for this cluster.

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

The name of the cache engine (memcached or redis) * to be used for this cluster.

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

The name of the cache engine (memcached or redis) * to be used for this cluster.

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

The name of the cache engine (memcached or redis) * to be used for this cluster.

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

The name of the cache engine (memcached or redis) * to be used for this cluster.

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

The name of the cache engine (memcached or redis) * to be used for this cluster.

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

The version of the cache engine that is used in this cluster.

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

The version of the cache engine that is used in this cluster.

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

The version of the cache engine that is used in this cluster.

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

The version of the cache engine that is used in this cluster.

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

The version of the cache engine that is used in this cluster.

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

The version of the cache engine that is used in this cluster.

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

The version of the cache engine that is used in this cluster.

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

The version of the cache engine that is used in this cluster.

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

The current state of this cluster, one of the following values: * available, creating, deleted, * deleting, incompatible-network, * modifying, rebooting cluster nodes, * restore-failed, or snapshotting.

*/ inline const Aws::String& GetCacheClusterStatus() const{ return m_cacheClusterStatus; } /** *

The current state of this cluster, one of the following values: * available, creating, deleted, * deleting, incompatible-network, * modifying, rebooting cluster nodes, * restore-failed, or snapshotting.

*/ inline bool CacheClusterStatusHasBeenSet() const { return m_cacheClusterStatusHasBeenSet; } /** *

The current state of this cluster, one of the following values: * available, creating, deleted, * deleting, incompatible-network, * modifying, rebooting cluster nodes, * restore-failed, or snapshotting.

*/ inline void SetCacheClusterStatus(const Aws::String& value) { m_cacheClusterStatusHasBeenSet = true; m_cacheClusterStatus = value; } /** *

The current state of this cluster, one of the following values: * available, creating, deleted, * deleting, incompatible-network, * modifying, rebooting cluster nodes, * restore-failed, or snapshotting.

*/ inline void SetCacheClusterStatus(Aws::String&& value) { m_cacheClusterStatusHasBeenSet = true; m_cacheClusterStatus = std::move(value); } /** *

The current state of this cluster, one of the following values: * available, creating, deleted, * deleting, incompatible-network, * modifying, rebooting cluster nodes, * restore-failed, or snapshotting.

*/ inline void SetCacheClusterStatus(const char* value) { m_cacheClusterStatusHasBeenSet = true; m_cacheClusterStatus.assign(value); } /** *

The current state of this cluster, one of the following values: * available, creating, deleted, * deleting, incompatible-network, * modifying, rebooting cluster nodes, * restore-failed, or snapshotting.

*/ inline CacheCluster& WithCacheClusterStatus(const Aws::String& value) { SetCacheClusterStatus(value); return *this;} /** *

The current state of this cluster, one of the following values: * available, creating, deleted, * deleting, incompatible-network, * modifying, rebooting cluster nodes, * restore-failed, or snapshotting.

*/ inline CacheCluster& WithCacheClusterStatus(Aws::String&& value) { SetCacheClusterStatus(std::move(value)); return *this;} /** *

The current state of this cluster, one of the following values: * available, creating, deleted, * deleting, incompatible-network, * modifying, rebooting cluster nodes, * restore-failed, or snapshotting.

*/ inline CacheCluster& WithCacheClusterStatus(const char* value) { SetCacheClusterStatus(value); return *this;} /** *

The number of cache nodes in the cluster.

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

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

The number of cache nodes in the cluster.

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

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

The number of cache nodes in the cluster.

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

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

The number of cache nodes in the cluster.

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

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

The name of the Availability Zone in which the cluster is located or * "Multiple" if the cache nodes are located in different Availability Zones.

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

The name of the Availability Zone in which the cluster is located or * "Multiple" if the cache nodes are located in different Availability Zones.

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

The name of the Availability Zone in which the cluster is located or * "Multiple" if the cache nodes are located in different Availability Zones.

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

The name of the Availability Zone in which the cluster is located or * "Multiple" if the cache nodes are located in different Availability Zones.

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

The name of the Availability Zone in which the cluster is located or * "Multiple" if the cache nodes are located in different Availability Zones.

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

The name of the Availability Zone in which the cluster is located or * "Multiple" if the cache nodes are located in different Availability Zones.

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

The name of the Availability Zone in which the cluster is located or * "Multiple" if the cache nodes are located in different Availability Zones.

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

The name of the Availability Zone in which the cluster is located or * "Multiple" if the cache nodes are located in different Availability Zones.

*/ inline CacheCluster& WithPreferredAvailabilityZone(const char* value) { SetPreferredAvailabilityZone(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 CacheCluster& WithPreferredOutpostArn(const Aws::String& value) { SetPreferredOutpostArn(value); return *this;} /** *

The outpost ARN in which the cache cluster is created.

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

The outpost ARN in which the cache cluster is created.

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

The date and time when the cluster was created.

*/ inline const Aws::Utils::DateTime& GetCacheClusterCreateTime() const{ return m_cacheClusterCreateTime; } /** *

The date and time when the cluster was created.

*/ inline bool CacheClusterCreateTimeHasBeenSet() const { return m_cacheClusterCreateTimeHasBeenSet; } /** *

The date and time when the cluster was created.

*/ inline void SetCacheClusterCreateTime(const Aws::Utils::DateTime& value) { m_cacheClusterCreateTimeHasBeenSet = true; m_cacheClusterCreateTime = value; } /** *

The date and time when the cluster was created.

*/ inline void SetCacheClusterCreateTime(Aws::Utils::DateTime&& value) { m_cacheClusterCreateTimeHasBeenSet = true; m_cacheClusterCreateTime = std::move(value); } /** *

The date and time when the cluster was created.

*/ inline CacheCluster& WithCacheClusterCreateTime(const Aws::Utils::DateTime& value) { SetCacheClusterCreateTime(value); return *this;} /** *

The date and time when the cluster was created.

*/ inline CacheCluster& WithCacheClusterCreateTime(Aws::Utils::DateTime&& value) { SetCacheClusterCreateTime(std::move(value)); return *this;} /** *

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

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

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

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

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

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

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

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

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

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

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

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

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

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

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

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

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

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

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

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

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

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

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

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

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

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

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

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

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

Valid * values for ddd are:

  • sun

  • *
  • mon

  • tue

  • *

    wed

  • thu

  • * fri

  • sat

*

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

*/ inline CacheCluster& WithPreferredMaintenanceWindow(const char* value) { SetPreferredMaintenanceWindow(value); return *this;} inline const PendingModifiedValues& GetPendingModifiedValues() const{ return m_pendingModifiedValues; } inline bool PendingModifiedValuesHasBeenSet() const { return m_pendingModifiedValuesHasBeenSet; } inline void SetPendingModifiedValues(const PendingModifiedValues& value) { m_pendingModifiedValuesHasBeenSet = true; m_pendingModifiedValues = value; } inline void SetPendingModifiedValues(PendingModifiedValues&& value) { m_pendingModifiedValuesHasBeenSet = true; m_pendingModifiedValues = std::move(value); } inline CacheCluster& WithPendingModifiedValues(const PendingModifiedValues& value) { SetPendingModifiedValues(value); return *this;} inline CacheCluster& WithPendingModifiedValues(PendingModifiedValues&& value) { SetPendingModifiedValues(std::move(value)); return *this;} /** *

Describes a notification topic and its status. Notification topics are used * for publishing ElastiCache events to subscribers using Amazon Simple * Notification Service (SNS).

*/ inline const NotificationConfiguration& GetNotificationConfiguration() const{ return m_notificationConfiguration; } /** *

Describes a notification topic and its status. Notification topics are used * for publishing ElastiCache events to subscribers using Amazon Simple * Notification Service (SNS).

*/ inline bool NotificationConfigurationHasBeenSet() const { return m_notificationConfigurationHasBeenSet; } /** *

Describes a notification topic and its status. Notification topics are used * for publishing ElastiCache events to subscribers using Amazon Simple * Notification Service (SNS).

*/ inline void SetNotificationConfiguration(const NotificationConfiguration& value) { m_notificationConfigurationHasBeenSet = true; m_notificationConfiguration = value; } /** *

Describes a notification topic and its status. Notification topics are used * for publishing ElastiCache events to subscribers using Amazon Simple * Notification Service (SNS).

*/ inline void SetNotificationConfiguration(NotificationConfiguration&& value) { m_notificationConfigurationHasBeenSet = true; m_notificationConfiguration = std::move(value); } /** *

Describes a notification topic and its status. Notification topics are used * for publishing ElastiCache events to subscribers using Amazon Simple * Notification Service (SNS).

*/ inline CacheCluster& WithNotificationConfiguration(const NotificationConfiguration& value) { SetNotificationConfiguration(value); return *this;} /** *

Describes a notification topic and its status. Notification topics are used * for publishing ElastiCache events to subscribers using Amazon Simple * Notification Service (SNS).

*/ inline CacheCluster& WithNotificationConfiguration(NotificationConfiguration&& value) { SetNotificationConfiguration(std::move(value)); return *this;} /** *

A list of cache security group elements, composed of name and status * sub-elements.

*/ inline const Aws::Vector& GetCacheSecurityGroups() const{ return m_cacheSecurityGroups; } /** *

A list of cache security group elements, composed of name and status * sub-elements.

*/ inline bool CacheSecurityGroupsHasBeenSet() const { return m_cacheSecurityGroupsHasBeenSet; } /** *

A list of cache security group elements, composed of name and status * sub-elements.

*/ inline void SetCacheSecurityGroups(const Aws::Vector& value) { m_cacheSecurityGroupsHasBeenSet = true; m_cacheSecurityGroups = value; } /** *

A list of cache security group elements, composed of name and status * sub-elements.

*/ inline void SetCacheSecurityGroups(Aws::Vector&& value) { m_cacheSecurityGroupsHasBeenSet = true; m_cacheSecurityGroups = std::move(value); } /** *

A list of cache security group elements, composed of name and status * sub-elements.

*/ inline CacheCluster& WithCacheSecurityGroups(const Aws::Vector& value) { SetCacheSecurityGroups(value); return *this;} /** *

A list of cache security group elements, composed of name and status * sub-elements.

*/ inline CacheCluster& WithCacheSecurityGroups(Aws::Vector&& value) { SetCacheSecurityGroups(std::move(value)); return *this;} /** *

A list of cache security group elements, composed of name and status * sub-elements.

*/ inline CacheCluster& AddCacheSecurityGroups(const CacheSecurityGroupMembership& value) { m_cacheSecurityGroupsHasBeenSet = true; m_cacheSecurityGroups.push_back(value); return *this; } /** *

A list of cache security group elements, composed of name and status * sub-elements.

*/ inline CacheCluster& AddCacheSecurityGroups(CacheSecurityGroupMembership&& value) { m_cacheSecurityGroupsHasBeenSet = true; m_cacheSecurityGroups.push_back(std::move(value)); return *this; } /** *

Status of the cache parameter group.

*/ inline const CacheParameterGroupStatus& GetCacheParameterGroup() const{ return m_cacheParameterGroup; } /** *

Status of the cache parameter group.

*/ inline bool CacheParameterGroupHasBeenSet() const { return m_cacheParameterGroupHasBeenSet; } /** *

Status of the cache parameter group.

*/ inline void SetCacheParameterGroup(const CacheParameterGroupStatus& value) { m_cacheParameterGroupHasBeenSet = true; m_cacheParameterGroup = value; } /** *

Status of the cache parameter group.

*/ inline void SetCacheParameterGroup(CacheParameterGroupStatus&& value) { m_cacheParameterGroupHasBeenSet = true; m_cacheParameterGroup = std::move(value); } /** *

Status of the cache parameter group.

*/ inline CacheCluster& WithCacheParameterGroup(const CacheParameterGroupStatus& value) { SetCacheParameterGroup(value); return *this;} /** *

Status of the cache parameter group.

*/ inline CacheCluster& WithCacheParameterGroup(CacheParameterGroupStatus&& value) { SetCacheParameterGroup(std::move(value)); return *this;} /** *

The name of the cache subnet group associated with the cluster.

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

The name of the cache subnet group associated with the cluster.

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

The name of the cache subnet group associated with the cluster.

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

The name of the cache subnet group associated with the cluster.

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

The name of the cache subnet group associated with the cluster.

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

The name of the cache subnet group associated with the cluster.

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

The name of the cache subnet group associated with the cluster.

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

The name of the cache subnet group associated with the cluster.

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

A list of cache nodes that are members of the cluster.

*/ inline const Aws::Vector& GetCacheNodes() const{ return m_cacheNodes; } /** *

A list of cache nodes that are members of the cluster.

*/ inline bool CacheNodesHasBeenSet() const { return m_cacheNodesHasBeenSet; } /** *

A list of cache nodes that are members of the cluster.

*/ inline void SetCacheNodes(const Aws::Vector& value) { m_cacheNodesHasBeenSet = true; m_cacheNodes = value; } /** *

A list of cache nodes that are members of the cluster.

*/ inline void SetCacheNodes(Aws::Vector&& value) { m_cacheNodesHasBeenSet = true; m_cacheNodes = std::move(value); } /** *

A list of cache nodes that are members of the cluster.

*/ inline CacheCluster& WithCacheNodes(const Aws::Vector& value) { SetCacheNodes(value); return *this;} /** *

A list of cache nodes that are members of the cluster.

*/ inline CacheCluster& WithCacheNodes(Aws::Vector&& value) { SetCacheNodes(std::move(value)); return *this;} /** *

A list of cache nodes that are members of the cluster.

*/ inline CacheCluster& AddCacheNodes(const CacheNode& value) { m_cacheNodesHasBeenSet = true; m_cacheNodes.push_back(value); return *this; } /** *

A list of cache nodes that are members of the cluster.

*/ inline CacheCluster& AddCacheNodes(CacheNode&& value) { m_cacheNodesHasBeenSet = true; m_cacheNodes.push_back(std::move(value)); return *this; } /** *

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

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

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

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

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

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

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

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

A list of VPC Security Groups associated with the cluster.

*/ inline const Aws::Vector& GetSecurityGroups() const{ return m_securityGroups; } /** *

A list of VPC Security Groups associated with the cluster.

*/ inline bool SecurityGroupsHasBeenSet() const { return m_securityGroupsHasBeenSet; } /** *

A list of VPC Security Groups associated with the cluster.

*/ inline void SetSecurityGroups(const Aws::Vector& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = value; } /** *

A list of VPC Security Groups associated with the cluster.

*/ inline void SetSecurityGroups(Aws::Vector&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups = std::move(value); } /** *

A list of VPC Security Groups associated with the cluster.

*/ inline CacheCluster& WithSecurityGroups(const Aws::Vector& value) { SetSecurityGroups(value); return *this;} /** *

A list of VPC Security Groups associated with the cluster.

*/ inline CacheCluster& WithSecurityGroups(Aws::Vector&& value) { SetSecurityGroups(std::move(value)); return *this;} /** *

A list of VPC Security Groups associated with the cluster.

*/ inline CacheCluster& AddSecurityGroups(const SecurityGroupMembership& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(value); return *this; } /** *

A list of VPC Security Groups associated with the cluster.

*/ inline CacheCluster& AddSecurityGroups(SecurityGroupMembership&& value) { m_securityGroupsHasBeenSet = true; m_securityGroups.push_back(std::move(value)); return *this; } /** *

The replication group to which this cluster belongs. If this field is empty, * the cluster is not associated with any replication group.

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

The replication group to which this cluster belongs. If this field is empty, * the cluster is not associated with any replication group.

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

The replication group to which this cluster belongs. If this field is empty, * the cluster is not associated with any replication group.

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

The replication group to which this cluster belongs. If this field is empty, * the cluster is not associated with any replication group.

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

The replication group to which this cluster belongs. If this field is empty, * the cluster is not associated with any replication group.

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

The replication group to which this cluster belongs. If this field is empty, * the cluster is not associated with any replication group.

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

The replication group to which this cluster belongs. If this field is empty, * the cluster is not associated with any replication group.

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

The replication group to which this cluster belongs. If this field is empty, * the cluster is not associated with any replication group.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Example: 05:00-09:00

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

Example: 05:00-09:00

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

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

Example: 05:00-09:00

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

Example: 05:00-09:00

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

Example: 05:00-09:00

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

Example: 05:00-09:00

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

Example: 05:00-09:00

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

Example: 05:00-09:00

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

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

Default: false

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

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

Default: false

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

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

Default: false

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

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

Default: false

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

The date the auth token was last modified

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

The date the auth token was last modified

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

The date the auth token was last modified

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

The date the auth token was last modified

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

The date the auth token was last modified

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

The date the auth token was last modified

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

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

*

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

Default: false

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

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

*

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

Default: false

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

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

*

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

Default: false

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

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

*

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

Default: false

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

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

*

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

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

Default: false

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

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

*

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

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

Default: false

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

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

*

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

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

Default: false

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

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

*

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

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

Default: false

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

The ARN (Amazon Resource Name) of the cache cluster.

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

The ARN (Amazon Resource Name) of the cache cluster.

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

The ARN (Amazon Resource Name) of the cache cluster.

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

The ARN (Amazon Resource Name) of the cache cluster.

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

The ARN (Amazon Resource Name) of the cache cluster.

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

The ARN (Amazon Resource Name) of the cache cluster.

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

The ARN (Amazon Resource Name) of the cache cluster.

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

The ARN (Amazon Resource Name) of the cache cluster.

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

A boolean value indicating whether log delivery is enabled for the * replication group.

*/ inline bool GetReplicationGroupLogDeliveryEnabled() const{ return m_replicationGroupLogDeliveryEnabled; } /** *

A boolean value indicating whether log delivery is enabled for the * replication group.

*/ inline bool ReplicationGroupLogDeliveryEnabledHasBeenSet() const { return m_replicationGroupLogDeliveryEnabledHasBeenSet; } /** *

A boolean value indicating whether log delivery is enabled for the * replication group.

*/ inline void SetReplicationGroupLogDeliveryEnabled(bool value) { m_replicationGroupLogDeliveryEnabledHasBeenSet = true; m_replicationGroupLogDeliveryEnabled = value; } /** *

A boolean value indicating whether log delivery is enabled for the * replication group.

*/ inline CacheCluster& WithReplicationGroupLogDeliveryEnabled(bool value) { SetReplicationGroupLogDeliveryEnabled(value); return *this;} /** *

Returns the destination, format and type of the logs.

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

Returns the destination, format and type of the logs.

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

Returns the destination, format and type of the logs.

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

Returns the destination, format and type of the logs.

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

Returns the destination, format and type of the logs.

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

Returns the destination, format and type of the logs.

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

Returns the destination, format and type of the logs.

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

Returns the destination, format and type of the logs.

*/ inline CacheCluster& AddLogDeliveryConfigurations(LogDeliveryConfiguration&& value) { m_logDeliveryConfigurationsHasBeenSet = true; m_logDeliveryConfigurations.push_back(std::move(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 CacheCluster& 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 CacheCluster& WithNetworkType(NetworkType&& value) { SetNetworkType(std::move(value)); return *this;} /** *

The network type associated with the 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 associated with the 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 associated with the 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 associated with the 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 associated with the 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 CacheCluster& WithIpDiscovery(const IpDiscovery& value) { SetIpDiscovery(value); return *this;} /** *

The network type associated with the 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 CacheCluster& WithIpDiscovery(IpDiscovery&& value) { SetIpDiscovery(std::move(value)); return *this;} /** *

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

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

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

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

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

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

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

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

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

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

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

*/ inline CacheCluster& WithTransitEncryptionMode(TransitEncryptionMode&& value) { SetTransitEncryptionMode(std::move(value)); return *this;} private: Aws::String m_cacheClusterId; bool m_cacheClusterIdHasBeenSet = false; Endpoint m_configurationEndpoint; bool m_configurationEndpointHasBeenSet = false; Aws::String m_clientDownloadLandingPage; bool m_clientDownloadLandingPageHasBeenSet = 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_cacheClusterStatus; bool m_cacheClusterStatusHasBeenSet = false; int m_numCacheNodes; bool m_numCacheNodesHasBeenSet = false; Aws::String m_preferredAvailabilityZone; bool m_preferredAvailabilityZoneHasBeenSet = false; Aws::String m_preferredOutpostArn; bool m_preferredOutpostArnHasBeenSet = false; Aws::Utils::DateTime m_cacheClusterCreateTime; bool m_cacheClusterCreateTimeHasBeenSet = false; Aws::String m_preferredMaintenanceWindow; bool m_preferredMaintenanceWindowHasBeenSet = false; PendingModifiedValues m_pendingModifiedValues; bool m_pendingModifiedValuesHasBeenSet = false; NotificationConfiguration m_notificationConfiguration; bool m_notificationConfigurationHasBeenSet = false; Aws::Vector m_cacheSecurityGroups; bool m_cacheSecurityGroupsHasBeenSet = false; CacheParameterGroupStatus m_cacheParameterGroup; bool m_cacheParameterGroupHasBeenSet = false; Aws::String m_cacheSubnetGroupName; bool m_cacheSubnetGroupNameHasBeenSet = false; Aws::Vector m_cacheNodes; bool m_cacheNodesHasBeenSet = false; bool m_autoMinorVersionUpgrade; bool m_autoMinorVersionUpgradeHasBeenSet = false; Aws::Vector m_securityGroups; bool m_securityGroupsHasBeenSet = false; Aws::String m_replicationGroupId; bool m_replicationGroupIdHasBeenSet = false; int m_snapshotRetentionLimit; bool m_snapshotRetentionLimitHasBeenSet = false; Aws::String m_snapshotWindow; bool m_snapshotWindowHasBeenSet = false; bool m_authTokenEnabled; bool m_authTokenEnabledHasBeenSet = false; Aws::Utils::DateTime m_authTokenLastModifiedDate; bool m_authTokenLastModifiedDateHasBeenSet = false; bool m_transitEncryptionEnabled; bool m_transitEncryptionEnabledHasBeenSet = false; bool m_atRestEncryptionEnabled; bool m_atRestEncryptionEnabledHasBeenSet = false; Aws::String m_aRN; bool m_aRNHasBeenSet = false; bool m_replicationGroupLogDeliveryEnabled; bool m_replicationGroupLogDeliveryEnabledHasBeenSet = false; Aws::Vector m_logDeliveryConfigurations; bool m_logDeliveryConfigurationsHasBeenSet = false; NetworkType m_networkType; bool m_networkTypeHasBeenSet = false; IpDiscovery m_ipDiscovery; bool m_ipDiscoveryHasBeenSet = false; TransitEncryptionMode m_transitEncryptionMode; bool m_transitEncryptionModeHasBeenSet = false; }; } // namespace Model } // namespace ElastiCache } // namespace Aws