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

The Kubernetes network configuration for the cluster.

See * Also:

AWS * API Reference

*/ class KubernetesNetworkConfigRequest { public: AWS_EKS_API KubernetesNetworkConfigRequest(); AWS_EKS_API KubernetesNetworkConfigRequest(Aws::Utils::Json::JsonView jsonValue); AWS_EKS_API KubernetesNetworkConfigRequest& operator=(Aws::Utils::Json::JsonView jsonValue); AWS_EKS_API Aws::Utils::Json::JsonValue Jsonize() const; /** *

Don't specify a value if you select ipv6 for ipFamily. * The CIDR block to assign Kubernetes service IP addresses from. If you don't * specify a block, Kubernetes assigns addresses from either the * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We * recommend that you specify a block that does not overlap with resources in other * networks that are peered or connected to your VPC. The block must meet the * following requirements:

  • Within one of the following private IP * address blocks: 10.0.0.0/8, 172.16.0.0/12, or * 192.168.0.0/16.

  • Doesn't overlap with any CIDR * block assigned to the VPC that you selected for VPC.

  • Between * /24 and /12.

You can only specify a custom CIDR * block when you create a cluster and can't change this value once the cluster is * created.

*/ inline const Aws::String& GetServiceIpv4Cidr() const{ return m_serviceIpv4Cidr; } /** *

Don't specify a value if you select ipv6 for ipFamily. * The CIDR block to assign Kubernetes service IP addresses from. If you don't * specify a block, Kubernetes assigns addresses from either the * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We * recommend that you specify a block that does not overlap with resources in other * networks that are peered or connected to your VPC. The block must meet the * following requirements:

  • Within one of the following private IP * address blocks: 10.0.0.0/8, 172.16.0.0/12, or * 192.168.0.0/16.

  • Doesn't overlap with any CIDR * block assigned to the VPC that you selected for VPC.

  • Between * /24 and /12.

You can only specify a custom CIDR * block when you create a cluster and can't change this value once the cluster is * created.

*/ inline bool ServiceIpv4CidrHasBeenSet() const { return m_serviceIpv4CidrHasBeenSet; } /** *

Don't specify a value if you select ipv6 for ipFamily. * The CIDR block to assign Kubernetes service IP addresses from. If you don't * specify a block, Kubernetes assigns addresses from either the * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We * recommend that you specify a block that does not overlap with resources in other * networks that are peered or connected to your VPC. The block must meet the * following requirements:

  • Within one of the following private IP * address blocks: 10.0.0.0/8, 172.16.0.0/12, or * 192.168.0.0/16.

  • Doesn't overlap with any CIDR * block assigned to the VPC that you selected for VPC.

  • Between * /24 and /12.

You can only specify a custom CIDR * block when you create a cluster and can't change this value once the cluster is * created.

*/ inline void SetServiceIpv4Cidr(const Aws::String& value) { m_serviceIpv4CidrHasBeenSet = true; m_serviceIpv4Cidr = value; } /** *

Don't specify a value if you select ipv6 for ipFamily. * The CIDR block to assign Kubernetes service IP addresses from. If you don't * specify a block, Kubernetes assigns addresses from either the * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We * recommend that you specify a block that does not overlap with resources in other * networks that are peered or connected to your VPC. The block must meet the * following requirements:

  • Within one of the following private IP * address blocks: 10.0.0.0/8, 172.16.0.0/12, or * 192.168.0.0/16.

  • Doesn't overlap with any CIDR * block assigned to the VPC that you selected for VPC.

  • Between * /24 and /12.

You can only specify a custom CIDR * block when you create a cluster and can't change this value once the cluster is * created.

*/ inline void SetServiceIpv4Cidr(Aws::String&& value) { m_serviceIpv4CidrHasBeenSet = true; m_serviceIpv4Cidr = std::move(value); } /** *

Don't specify a value if you select ipv6 for ipFamily. * The CIDR block to assign Kubernetes service IP addresses from. If you don't * specify a block, Kubernetes assigns addresses from either the * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We * recommend that you specify a block that does not overlap with resources in other * networks that are peered or connected to your VPC. The block must meet the * following requirements:

  • Within one of the following private IP * address blocks: 10.0.0.0/8, 172.16.0.0/12, or * 192.168.0.0/16.

  • Doesn't overlap with any CIDR * block assigned to the VPC that you selected for VPC.

  • Between * /24 and /12.

You can only specify a custom CIDR * block when you create a cluster and can't change this value once the cluster is * created.

*/ inline void SetServiceIpv4Cidr(const char* value) { m_serviceIpv4CidrHasBeenSet = true; m_serviceIpv4Cidr.assign(value); } /** *

Don't specify a value if you select ipv6 for ipFamily. * The CIDR block to assign Kubernetes service IP addresses from. If you don't * specify a block, Kubernetes assigns addresses from either the * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We * recommend that you specify a block that does not overlap with resources in other * networks that are peered or connected to your VPC. The block must meet the * following requirements:

  • Within one of the following private IP * address blocks: 10.0.0.0/8, 172.16.0.0/12, or * 192.168.0.0/16.

  • Doesn't overlap with any CIDR * block assigned to the VPC that you selected for VPC.

  • Between * /24 and /12.

You can only specify a custom CIDR * block when you create a cluster and can't change this value once the cluster is * created.

*/ inline KubernetesNetworkConfigRequest& WithServiceIpv4Cidr(const Aws::String& value) { SetServiceIpv4Cidr(value); return *this;} /** *

Don't specify a value if you select ipv6 for ipFamily. * The CIDR block to assign Kubernetes service IP addresses from. If you don't * specify a block, Kubernetes assigns addresses from either the * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We * recommend that you specify a block that does not overlap with resources in other * networks that are peered or connected to your VPC. The block must meet the * following requirements:

  • Within one of the following private IP * address blocks: 10.0.0.0/8, 172.16.0.0/12, or * 192.168.0.0/16.

  • Doesn't overlap with any CIDR * block assigned to the VPC that you selected for VPC.

  • Between * /24 and /12.

You can only specify a custom CIDR * block when you create a cluster and can't change this value once the cluster is * created.

*/ inline KubernetesNetworkConfigRequest& WithServiceIpv4Cidr(Aws::String&& value) { SetServiceIpv4Cidr(std::move(value)); return *this;} /** *

Don't specify a value if you select ipv6 for ipFamily. * The CIDR block to assign Kubernetes service IP addresses from. If you don't * specify a block, Kubernetes assigns addresses from either the * 10.100.0.0/16 or 172.20.0.0/16 CIDR blocks. We * recommend that you specify a block that does not overlap with resources in other * networks that are peered or connected to your VPC. The block must meet the * following requirements:

  • Within one of the following private IP * address blocks: 10.0.0.0/8, 172.16.0.0/12, or * 192.168.0.0/16.

  • Doesn't overlap with any CIDR * block assigned to the VPC that you selected for VPC.

  • Between * /24 and /12.

You can only specify a custom CIDR * block when you create a cluster and can't change this value once the cluster is * created.

*/ inline KubernetesNetworkConfigRequest& WithServiceIpv4Cidr(const char* value) { SetServiceIpv4Cidr(value); return *this;} /** *

Specify which IP family is used to assign Kubernetes pod and service IP * addresses. If you don't specify a value, ipv4 is used by default. * You can only specify an IP family when you create a cluster and can't change * this value once the cluster is created. If you specify ipv6, the * VPC and subnets that you specify for cluster creation must have both * IPv4 and IPv6 CIDR blocks assigned to them. You can't * specify ipv6 for clusters in China Regions.

You can only * specify ipv6 for 1.21 and later clusters that use * version 1.10.1 or later of the Amazon VPC CNI add-on. If you * specify ipv6, then ensure that your VPC meets the requirements * listed in the considerations listed in Assigning * IPv6 addresses to pods and services in the Amazon EKS User Guide. Kubernetes * assigns services IPv6 addresses from the unique local address range * (fc00::/7). You can't specify a custom IPv6 CIDR * block. Pod addresses are assigned from the subnet's IPv6 CIDR.

*/ inline const IpFamily& GetIpFamily() const{ return m_ipFamily; } /** *

Specify which IP family is used to assign Kubernetes pod and service IP * addresses. If you don't specify a value, ipv4 is used by default. * You can only specify an IP family when you create a cluster and can't change * this value once the cluster is created. If you specify ipv6, the * VPC and subnets that you specify for cluster creation must have both * IPv4 and IPv6 CIDR blocks assigned to them. You can't * specify ipv6 for clusters in China Regions.

You can only * specify ipv6 for 1.21 and later clusters that use * version 1.10.1 or later of the Amazon VPC CNI add-on. If you * specify ipv6, then ensure that your VPC meets the requirements * listed in the considerations listed in Assigning * IPv6 addresses to pods and services in the Amazon EKS User Guide. Kubernetes * assigns services IPv6 addresses from the unique local address range * (fc00::/7). You can't specify a custom IPv6 CIDR * block. Pod addresses are assigned from the subnet's IPv6 CIDR.

*/ inline bool IpFamilyHasBeenSet() const { return m_ipFamilyHasBeenSet; } /** *

Specify which IP family is used to assign Kubernetes pod and service IP * addresses. If you don't specify a value, ipv4 is used by default. * You can only specify an IP family when you create a cluster and can't change * this value once the cluster is created. If you specify ipv6, the * VPC and subnets that you specify for cluster creation must have both * IPv4 and IPv6 CIDR blocks assigned to them. You can't * specify ipv6 for clusters in China Regions.

You can only * specify ipv6 for 1.21 and later clusters that use * version 1.10.1 or later of the Amazon VPC CNI add-on. If you * specify ipv6, then ensure that your VPC meets the requirements * listed in the considerations listed in Assigning * IPv6 addresses to pods and services in the Amazon EKS User Guide. Kubernetes * assigns services IPv6 addresses from the unique local address range * (fc00::/7). You can't specify a custom IPv6 CIDR * block. Pod addresses are assigned from the subnet's IPv6 CIDR.

*/ inline void SetIpFamily(const IpFamily& value) { m_ipFamilyHasBeenSet = true; m_ipFamily = value; } /** *

Specify which IP family is used to assign Kubernetes pod and service IP * addresses. If you don't specify a value, ipv4 is used by default. * You can only specify an IP family when you create a cluster and can't change * this value once the cluster is created. If you specify ipv6, the * VPC and subnets that you specify for cluster creation must have both * IPv4 and IPv6 CIDR blocks assigned to them. You can't * specify ipv6 for clusters in China Regions.

You can only * specify ipv6 for 1.21 and later clusters that use * version 1.10.1 or later of the Amazon VPC CNI add-on. If you * specify ipv6, then ensure that your VPC meets the requirements * listed in the considerations listed in Assigning * IPv6 addresses to pods and services in the Amazon EKS User Guide. Kubernetes * assigns services IPv6 addresses from the unique local address range * (fc00::/7). You can't specify a custom IPv6 CIDR * block. Pod addresses are assigned from the subnet's IPv6 CIDR.

*/ inline void SetIpFamily(IpFamily&& value) { m_ipFamilyHasBeenSet = true; m_ipFamily = std::move(value); } /** *

Specify which IP family is used to assign Kubernetes pod and service IP * addresses. If you don't specify a value, ipv4 is used by default. * You can only specify an IP family when you create a cluster and can't change * this value once the cluster is created. If you specify ipv6, the * VPC and subnets that you specify for cluster creation must have both * IPv4 and IPv6 CIDR blocks assigned to them. You can't * specify ipv6 for clusters in China Regions.

You can only * specify ipv6 for 1.21 and later clusters that use * version 1.10.1 or later of the Amazon VPC CNI add-on. If you * specify ipv6, then ensure that your VPC meets the requirements * listed in the considerations listed in Assigning * IPv6 addresses to pods and services in the Amazon EKS User Guide. Kubernetes * assigns services IPv6 addresses from the unique local address range * (fc00::/7). You can't specify a custom IPv6 CIDR * block. Pod addresses are assigned from the subnet's IPv6 CIDR.

*/ inline KubernetesNetworkConfigRequest& WithIpFamily(const IpFamily& value) { SetIpFamily(value); return *this;} /** *

Specify which IP family is used to assign Kubernetes pod and service IP * addresses. If you don't specify a value, ipv4 is used by default. * You can only specify an IP family when you create a cluster and can't change * this value once the cluster is created. If you specify ipv6, the * VPC and subnets that you specify for cluster creation must have both * IPv4 and IPv6 CIDR blocks assigned to them. You can't * specify ipv6 for clusters in China Regions.

You can only * specify ipv6 for 1.21 and later clusters that use * version 1.10.1 or later of the Amazon VPC CNI add-on. If you * specify ipv6, then ensure that your VPC meets the requirements * listed in the considerations listed in Assigning * IPv6 addresses to pods and services in the Amazon EKS User Guide. Kubernetes * assigns services IPv6 addresses from the unique local address range * (fc00::/7). You can't specify a custom IPv6 CIDR * block. Pod addresses are assigned from the subnet's IPv6 CIDR.

*/ inline KubernetesNetworkConfigRequest& WithIpFamily(IpFamily&& value) { SetIpFamily(std::move(value)); return *this;} private: Aws::String m_serviceIpv4Cidr; bool m_serviceIpv4CidrHasBeenSet = false; IpFamily m_ipFamily; bool m_ipFamilyHasBeenSet = false; }; } // namespace Model } // namespace EKS } // namespace Aws