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

The details for the pod.

See Also:

AWS * API Reference

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

The name of the service account that's used to run the pod. For more * information, see Kubernetes * service accounts and Configure * a Kubernetes service account to assume an IAM role in the Amazon EKS User * Guide and Configure * service accounts for pods in the Kubernetes documentation.

*/ inline const Aws::String& GetServiceAccountName() const{ return m_serviceAccountName; } /** *

The name of the service account that's used to run the pod. For more * information, see Kubernetes * service accounts and Configure * a Kubernetes service account to assume an IAM role in the Amazon EKS User * Guide and Configure * service accounts for pods in the Kubernetes documentation.

*/ inline bool ServiceAccountNameHasBeenSet() const { return m_serviceAccountNameHasBeenSet; } /** *

The name of the service account that's used to run the pod. For more * information, see Kubernetes * service accounts and Configure * a Kubernetes service account to assume an IAM role in the Amazon EKS User * Guide and Configure * service accounts for pods in the Kubernetes documentation.

*/ inline void SetServiceAccountName(const Aws::String& value) { m_serviceAccountNameHasBeenSet = true; m_serviceAccountName = value; } /** *

The name of the service account that's used to run the pod. For more * information, see Kubernetes * service accounts and Configure * a Kubernetes service account to assume an IAM role in the Amazon EKS User * Guide and Configure * service accounts for pods in the Kubernetes documentation.

*/ inline void SetServiceAccountName(Aws::String&& value) { m_serviceAccountNameHasBeenSet = true; m_serviceAccountName = std::move(value); } /** *

The name of the service account that's used to run the pod. For more * information, see Kubernetes * service accounts and Configure * a Kubernetes service account to assume an IAM role in the Amazon EKS User * Guide and Configure * service accounts for pods in the Kubernetes documentation.

*/ inline void SetServiceAccountName(const char* value) { m_serviceAccountNameHasBeenSet = true; m_serviceAccountName.assign(value); } /** *

The name of the service account that's used to run the pod. For more * information, see Kubernetes * service accounts and Configure * a Kubernetes service account to assume an IAM role in the Amazon EKS User * Guide and Configure * service accounts for pods in the Kubernetes documentation.

*/ inline EksPodPropertiesDetail& WithServiceAccountName(const Aws::String& value) { SetServiceAccountName(value); return *this;} /** *

The name of the service account that's used to run the pod. For more * information, see Kubernetes * service accounts and Configure * a Kubernetes service account to assume an IAM role in the Amazon EKS User * Guide and Configure * service accounts for pods in the Kubernetes documentation.

*/ inline EksPodPropertiesDetail& WithServiceAccountName(Aws::String&& value) { SetServiceAccountName(std::move(value)); return *this;} /** *

The name of the service account that's used to run the pod. For more * information, see Kubernetes * service accounts and Configure * a Kubernetes service account to assume an IAM role in the Amazon EKS User * Guide and Configure * service accounts for pods in the Kubernetes documentation.

*/ inline EksPodPropertiesDetail& WithServiceAccountName(const char* value) { SetServiceAccountName(value); return *this;} /** *

Indicates if the pod uses the hosts' network IP address. The default value is * true. Setting this to false enables the Kubernetes pod * networking model. Most Batch workloads are egress-only and don't require the * overhead of IP allocation for each pod for incoming connections. For more * information, see Host * namespaces and Pod * networking in the Kubernetes documentation.

*/ inline bool GetHostNetwork() const{ return m_hostNetwork; } /** *

Indicates if the pod uses the hosts' network IP address. The default value is * true. Setting this to false enables the Kubernetes pod * networking model. Most Batch workloads are egress-only and don't require the * overhead of IP allocation for each pod for incoming connections. For more * information, see Host * namespaces and Pod * networking in the Kubernetes documentation.

*/ inline bool HostNetworkHasBeenSet() const { return m_hostNetworkHasBeenSet; } /** *

Indicates if the pod uses the hosts' network IP address. The default value is * true. Setting this to false enables the Kubernetes pod * networking model. Most Batch workloads are egress-only and don't require the * overhead of IP allocation for each pod for incoming connections. For more * information, see Host * namespaces and Pod * networking in the Kubernetes documentation.

*/ inline void SetHostNetwork(bool value) { m_hostNetworkHasBeenSet = true; m_hostNetwork = value; } /** *

Indicates if the pod uses the hosts' network IP address. The default value is * true. Setting this to false enables the Kubernetes pod * networking model. Most Batch workloads are egress-only and don't require the * overhead of IP allocation for each pod for incoming connections. For more * information, see Host * namespaces and Pod * networking in the Kubernetes documentation.

*/ inline EksPodPropertiesDetail& WithHostNetwork(bool value) { SetHostNetwork(value); return *this;} /** *

The DNS policy for the pod. The default value is ClusterFirst. * If the hostNetwork parameter is not specified, the default is * ClusterFirstWithHostNet. ClusterFirst indicates that * any DNS query that does not match the configured cluster domain suffix is * forwarded to the upstream nameserver inherited from the node. If no value was * specified for dnsPolicy in the RegisterJobDefinition * API operation, then no value will be returned for dnsPolicy by * either of DescribeJobDefinitions * or DescribeJobs * API operations. The pod spec setting will contain either * ClusterFirst or ClusterFirstWithHostNet, depending on * the value of the hostNetwork parameter. For more information, see * Pod's * DNS policy in the Kubernetes documentation.

Valid values: * Default | ClusterFirst | * ClusterFirstWithHostNet

*/ inline const Aws::String& GetDnsPolicy() const{ return m_dnsPolicy; } /** *

The DNS policy for the pod. The default value is ClusterFirst. * If the hostNetwork parameter is not specified, the default is * ClusterFirstWithHostNet. ClusterFirst indicates that * any DNS query that does not match the configured cluster domain suffix is * forwarded to the upstream nameserver inherited from the node. If no value was * specified for dnsPolicy in the RegisterJobDefinition * API operation, then no value will be returned for dnsPolicy by * either of DescribeJobDefinitions * or DescribeJobs * API operations. The pod spec setting will contain either * ClusterFirst or ClusterFirstWithHostNet, depending on * the value of the hostNetwork parameter. For more information, see * Pod's * DNS policy in the Kubernetes documentation.

Valid values: * Default | ClusterFirst | * ClusterFirstWithHostNet

*/ inline bool DnsPolicyHasBeenSet() const { return m_dnsPolicyHasBeenSet; } /** *

The DNS policy for the pod. The default value is ClusterFirst. * If the hostNetwork parameter is not specified, the default is * ClusterFirstWithHostNet. ClusterFirst indicates that * any DNS query that does not match the configured cluster domain suffix is * forwarded to the upstream nameserver inherited from the node. If no value was * specified for dnsPolicy in the RegisterJobDefinition * API operation, then no value will be returned for dnsPolicy by * either of DescribeJobDefinitions * or DescribeJobs * API operations. The pod spec setting will contain either * ClusterFirst or ClusterFirstWithHostNet, depending on * the value of the hostNetwork parameter. For more information, see * Pod's * DNS policy in the Kubernetes documentation.

Valid values: * Default | ClusterFirst | * ClusterFirstWithHostNet

*/ inline void SetDnsPolicy(const Aws::String& value) { m_dnsPolicyHasBeenSet = true; m_dnsPolicy = value; } /** *

The DNS policy for the pod. The default value is ClusterFirst. * If the hostNetwork parameter is not specified, the default is * ClusterFirstWithHostNet. ClusterFirst indicates that * any DNS query that does not match the configured cluster domain suffix is * forwarded to the upstream nameserver inherited from the node. If no value was * specified for dnsPolicy in the RegisterJobDefinition * API operation, then no value will be returned for dnsPolicy by * either of DescribeJobDefinitions * or DescribeJobs * API operations. The pod spec setting will contain either * ClusterFirst or ClusterFirstWithHostNet, depending on * the value of the hostNetwork parameter. For more information, see * Pod's * DNS policy in the Kubernetes documentation.

Valid values: * Default | ClusterFirst | * ClusterFirstWithHostNet

*/ inline void SetDnsPolicy(Aws::String&& value) { m_dnsPolicyHasBeenSet = true; m_dnsPolicy = std::move(value); } /** *

The DNS policy for the pod. The default value is ClusterFirst. * If the hostNetwork parameter is not specified, the default is * ClusterFirstWithHostNet. ClusterFirst indicates that * any DNS query that does not match the configured cluster domain suffix is * forwarded to the upstream nameserver inherited from the node. If no value was * specified for dnsPolicy in the RegisterJobDefinition * API operation, then no value will be returned for dnsPolicy by * either of DescribeJobDefinitions * or DescribeJobs * API operations. The pod spec setting will contain either * ClusterFirst or ClusterFirstWithHostNet, depending on * the value of the hostNetwork parameter. For more information, see * Pod's * DNS policy in the Kubernetes documentation.

Valid values: * Default | ClusterFirst | * ClusterFirstWithHostNet

*/ inline void SetDnsPolicy(const char* value) { m_dnsPolicyHasBeenSet = true; m_dnsPolicy.assign(value); } /** *

The DNS policy for the pod. The default value is ClusterFirst. * If the hostNetwork parameter is not specified, the default is * ClusterFirstWithHostNet. ClusterFirst indicates that * any DNS query that does not match the configured cluster domain suffix is * forwarded to the upstream nameserver inherited from the node. If no value was * specified for dnsPolicy in the RegisterJobDefinition * API operation, then no value will be returned for dnsPolicy by * either of DescribeJobDefinitions * or DescribeJobs * API operations. The pod spec setting will contain either * ClusterFirst or ClusterFirstWithHostNet, depending on * the value of the hostNetwork parameter. For more information, see * Pod's * DNS policy in the Kubernetes documentation.

Valid values: * Default | ClusterFirst | * ClusterFirstWithHostNet

*/ inline EksPodPropertiesDetail& WithDnsPolicy(const Aws::String& value) { SetDnsPolicy(value); return *this;} /** *

The DNS policy for the pod. The default value is ClusterFirst. * If the hostNetwork parameter is not specified, the default is * ClusterFirstWithHostNet. ClusterFirst indicates that * any DNS query that does not match the configured cluster domain suffix is * forwarded to the upstream nameserver inherited from the node. If no value was * specified for dnsPolicy in the RegisterJobDefinition * API operation, then no value will be returned for dnsPolicy by * either of DescribeJobDefinitions * or DescribeJobs * API operations. The pod spec setting will contain either * ClusterFirst or ClusterFirstWithHostNet, depending on * the value of the hostNetwork parameter. For more information, see * Pod's * DNS policy in the Kubernetes documentation.

Valid values: * Default | ClusterFirst | * ClusterFirstWithHostNet

*/ inline EksPodPropertiesDetail& WithDnsPolicy(Aws::String&& value) { SetDnsPolicy(std::move(value)); return *this;} /** *

The DNS policy for the pod. The default value is ClusterFirst. * If the hostNetwork parameter is not specified, the default is * ClusterFirstWithHostNet. ClusterFirst indicates that * any DNS query that does not match the configured cluster domain suffix is * forwarded to the upstream nameserver inherited from the node. If no value was * specified for dnsPolicy in the RegisterJobDefinition * API operation, then no value will be returned for dnsPolicy by * either of DescribeJobDefinitions * or DescribeJobs * API operations. The pod spec setting will contain either * ClusterFirst or ClusterFirstWithHostNet, depending on * the value of the hostNetwork parameter. For more information, see * Pod's * DNS policy in the Kubernetes documentation.

Valid values: * Default | ClusterFirst | * ClusterFirstWithHostNet

*/ inline EksPodPropertiesDetail& WithDnsPolicy(const char* value) { SetDnsPolicy(value); return *this;} /** *

The properties of the container that's used on the Amazon EKS pod.

*/ inline const Aws::Vector& GetContainers() const{ return m_containers; } /** *

The properties of the container that's used on the Amazon EKS pod.

*/ inline bool ContainersHasBeenSet() const { return m_containersHasBeenSet; } /** *

The properties of the container that's used on the Amazon EKS pod.

*/ inline void SetContainers(const Aws::Vector& value) { m_containersHasBeenSet = true; m_containers = value; } /** *

The properties of the container that's used on the Amazon EKS pod.

*/ inline void SetContainers(Aws::Vector&& value) { m_containersHasBeenSet = true; m_containers = std::move(value); } /** *

The properties of the container that's used on the Amazon EKS pod.

*/ inline EksPodPropertiesDetail& WithContainers(const Aws::Vector& value) { SetContainers(value); return *this;} /** *

The properties of the container that's used on the Amazon EKS pod.

*/ inline EksPodPropertiesDetail& WithContainers(Aws::Vector&& value) { SetContainers(std::move(value)); return *this;} /** *

The properties of the container that's used on the Amazon EKS pod.

*/ inline EksPodPropertiesDetail& AddContainers(const EksContainerDetail& value) { m_containersHasBeenSet = true; m_containers.push_back(value); return *this; } /** *

The properties of the container that's used on the Amazon EKS pod.

*/ inline EksPodPropertiesDetail& AddContainers(EksContainerDetail&& value) { m_containersHasBeenSet = true; m_containers.push_back(std::move(value)); return *this; } /** *

Specifies the volumes for a job definition using Amazon EKS resources.

*/ inline const Aws::Vector& GetVolumes() const{ return m_volumes; } /** *

Specifies the volumes for a job definition using Amazon EKS resources.

*/ inline bool VolumesHasBeenSet() const { return m_volumesHasBeenSet; } /** *

Specifies the volumes for a job definition using Amazon EKS resources.

*/ inline void SetVolumes(const Aws::Vector& value) { m_volumesHasBeenSet = true; m_volumes = value; } /** *

Specifies the volumes for a job definition using Amazon EKS resources.

*/ inline void SetVolumes(Aws::Vector&& value) { m_volumesHasBeenSet = true; m_volumes = std::move(value); } /** *

Specifies the volumes for a job definition using Amazon EKS resources.

*/ inline EksPodPropertiesDetail& WithVolumes(const Aws::Vector& value) { SetVolumes(value); return *this;} /** *

Specifies the volumes for a job definition using Amazon EKS resources.

*/ inline EksPodPropertiesDetail& WithVolumes(Aws::Vector&& value) { SetVolumes(std::move(value)); return *this;} /** *

Specifies the volumes for a job definition using Amazon EKS resources.

*/ inline EksPodPropertiesDetail& AddVolumes(const EksVolume& value) { m_volumesHasBeenSet = true; m_volumes.push_back(value); return *this; } /** *

Specifies the volumes for a job definition using Amazon EKS resources.

*/ inline EksPodPropertiesDetail& AddVolumes(EksVolume&& value) { m_volumesHasBeenSet = true; m_volumes.push_back(std::move(value)); return *this; } /** *

The name of the pod for this job.

*/ inline const Aws::String& GetPodName() const{ return m_podName; } /** *

The name of the pod for this job.

*/ inline bool PodNameHasBeenSet() const { return m_podNameHasBeenSet; } /** *

The name of the pod for this job.

*/ inline void SetPodName(const Aws::String& value) { m_podNameHasBeenSet = true; m_podName = value; } /** *

The name of the pod for this job.

*/ inline void SetPodName(Aws::String&& value) { m_podNameHasBeenSet = true; m_podName = std::move(value); } /** *

The name of the pod for this job.

*/ inline void SetPodName(const char* value) { m_podNameHasBeenSet = true; m_podName.assign(value); } /** *

The name of the pod for this job.

*/ inline EksPodPropertiesDetail& WithPodName(const Aws::String& value) { SetPodName(value); return *this;} /** *

The name of the pod for this job.

*/ inline EksPodPropertiesDetail& WithPodName(Aws::String&& value) { SetPodName(std::move(value)); return *this;} /** *

The name of the pod for this job.

*/ inline EksPodPropertiesDetail& WithPodName(const char* value) { SetPodName(value); return *this;} /** *

The name of the node for this job.

*/ inline const Aws::String& GetNodeName() const{ return m_nodeName; } /** *

The name of the node for this job.

*/ inline bool NodeNameHasBeenSet() const { return m_nodeNameHasBeenSet; } /** *

The name of the node for this job.

*/ inline void SetNodeName(const Aws::String& value) { m_nodeNameHasBeenSet = true; m_nodeName = value; } /** *

The name of the node for this job.

*/ inline void SetNodeName(Aws::String&& value) { m_nodeNameHasBeenSet = true; m_nodeName = std::move(value); } /** *

The name of the node for this job.

*/ inline void SetNodeName(const char* value) { m_nodeNameHasBeenSet = true; m_nodeName.assign(value); } /** *

The name of the node for this job.

*/ inline EksPodPropertiesDetail& WithNodeName(const Aws::String& value) { SetNodeName(value); return *this;} /** *

The name of the node for this job.

*/ inline EksPodPropertiesDetail& WithNodeName(Aws::String&& value) { SetNodeName(std::move(value)); return *this;} /** *

The name of the node for this job.

*/ inline EksPodPropertiesDetail& WithNodeName(const char* value) { SetNodeName(value); return *this;} inline const EksMetadata& GetMetadata() const{ return m_metadata; } inline bool MetadataHasBeenSet() const { return m_metadataHasBeenSet; } inline void SetMetadata(const EksMetadata& value) { m_metadataHasBeenSet = true; m_metadata = value; } inline void SetMetadata(EksMetadata&& value) { m_metadataHasBeenSet = true; m_metadata = std::move(value); } inline EksPodPropertiesDetail& WithMetadata(const EksMetadata& value) { SetMetadata(value); return *this;} inline EksPodPropertiesDetail& WithMetadata(EksMetadata&& value) { SetMetadata(std::move(value)); return *this;} private: Aws::String m_serviceAccountName; bool m_serviceAccountNameHasBeenSet = false; bool m_hostNetwork; bool m_hostNetworkHasBeenSet = false; Aws::String m_dnsPolicy; bool m_dnsPolicyHasBeenSet = false; Aws::Vector m_containers; bool m_containersHasBeenSet = false; Aws::Vector m_volumes; bool m_volumesHasBeenSet = false; Aws::String m_podName; bool m_podNameHasBeenSet = false; Aws::String m_nodeName; bool m_nodeNameHasBeenSet = false; EksMetadata m_metadata; bool m_metadataHasBeenSet = false; }; } // namespace Model } // namespace Batch } // namespace Aws