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

Represents the subnet associated with a cluster. This parameter refers to * subnets defined in Amazon Virtual Private Cloud (Amazon VPC) and used with * ElastiCache.

See Also:

AWS * API Reference

*/ class Subnet { public: AWS_ELASTICACHE_API Subnet(); AWS_ELASTICACHE_API Subnet(const Aws::Utils::Xml::XmlNode& xmlNode); AWS_ELASTICACHE_API Subnet& 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 unique identifier for the subnet.

*/ inline const Aws::String& GetSubnetIdentifier() const{ return m_subnetIdentifier; } /** *

The unique identifier for the subnet.

*/ inline bool SubnetIdentifierHasBeenSet() const { return m_subnetIdentifierHasBeenSet; } /** *

The unique identifier for the subnet.

*/ inline void SetSubnetIdentifier(const Aws::String& value) { m_subnetIdentifierHasBeenSet = true; m_subnetIdentifier = value; } /** *

The unique identifier for the subnet.

*/ inline void SetSubnetIdentifier(Aws::String&& value) { m_subnetIdentifierHasBeenSet = true; m_subnetIdentifier = std::move(value); } /** *

The unique identifier for the subnet.

*/ inline void SetSubnetIdentifier(const char* value) { m_subnetIdentifierHasBeenSet = true; m_subnetIdentifier.assign(value); } /** *

The unique identifier for the subnet.

*/ inline Subnet& WithSubnetIdentifier(const Aws::String& value) { SetSubnetIdentifier(value); return *this;} /** *

The unique identifier for the subnet.

*/ inline Subnet& WithSubnetIdentifier(Aws::String&& value) { SetSubnetIdentifier(std::move(value)); return *this;} /** *

The unique identifier for the subnet.

*/ inline Subnet& WithSubnetIdentifier(const char* value) { SetSubnetIdentifier(value); return *this;} /** *

The Availability Zone associated with the subnet.

*/ inline const AvailabilityZone& GetSubnetAvailabilityZone() const{ return m_subnetAvailabilityZone; } /** *

The Availability Zone associated with the subnet.

*/ inline bool SubnetAvailabilityZoneHasBeenSet() const { return m_subnetAvailabilityZoneHasBeenSet; } /** *

The Availability Zone associated with the subnet.

*/ inline void SetSubnetAvailabilityZone(const AvailabilityZone& value) { m_subnetAvailabilityZoneHasBeenSet = true; m_subnetAvailabilityZone = value; } /** *

The Availability Zone associated with the subnet.

*/ inline void SetSubnetAvailabilityZone(AvailabilityZone&& value) { m_subnetAvailabilityZoneHasBeenSet = true; m_subnetAvailabilityZone = std::move(value); } /** *

The Availability Zone associated with the subnet.

*/ inline Subnet& WithSubnetAvailabilityZone(const AvailabilityZone& value) { SetSubnetAvailabilityZone(value); return *this;} /** *

The Availability Zone associated with the subnet.

*/ inline Subnet& WithSubnetAvailabilityZone(AvailabilityZone&& value) { SetSubnetAvailabilityZone(std::move(value)); return *this;} /** *

The outpost ARN of the subnet.

*/ inline const SubnetOutpost& GetSubnetOutpost() const{ return m_subnetOutpost; } /** *

The outpost ARN of the subnet.

*/ inline bool SubnetOutpostHasBeenSet() const { return m_subnetOutpostHasBeenSet; } /** *

The outpost ARN of the subnet.

*/ inline void SetSubnetOutpost(const SubnetOutpost& value) { m_subnetOutpostHasBeenSet = true; m_subnetOutpost = value; } /** *

The outpost ARN of the subnet.

*/ inline void SetSubnetOutpost(SubnetOutpost&& value) { m_subnetOutpostHasBeenSet = true; m_subnetOutpost = std::move(value); } /** *

The outpost ARN of the subnet.

*/ inline Subnet& WithSubnetOutpost(const SubnetOutpost& value) { SetSubnetOutpost(value); return *this;} /** *

The outpost ARN of the subnet.

*/ inline Subnet& WithSubnetOutpost(SubnetOutpost&& value) { SetSubnetOutpost(std::move(value)); return *this;} /** *

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 Aws::Vector& GetSupportedNetworkTypes() const{ return m_supportedNetworkTypes; } /** *

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

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 SetSupportedNetworkTypes(const Aws::Vector& value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes = value; } /** *

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 SetSupportedNetworkTypes(Aws::Vector&& value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes = std::move(value); } /** *

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 Subnet& WithSupportedNetworkTypes(const Aws::Vector& value) { SetSupportedNetworkTypes(value); return *this;} /** *

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 Subnet& WithSupportedNetworkTypes(Aws::Vector&& value) { SetSupportedNetworkTypes(std::move(value)); return *this;} /** *

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 Subnet& AddSupportedNetworkTypes(const NetworkType& value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes.push_back(value); return *this; } /** *

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 Subnet& AddSupportedNetworkTypes(NetworkType&& value) { m_supportedNetworkTypesHasBeenSet = true; m_supportedNetworkTypes.push_back(std::move(value)); return *this; } private: Aws::String m_subnetIdentifier; bool m_subnetIdentifierHasBeenSet = false; AvailabilityZone m_subnetAvailabilityZone; bool m_subnetAvailabilityZoneHasBeenSet = false; SubnetOutpost m_subnetOutpost; bool m_subnetOutpostHasBeenSet = false; Aws::Vector m_supportedNetworkTypes; bool m_supportedNetworkTypesHasBeenSet = false; }; } // namespace Model } // namespace ElastiCache } // namespace Aws