/** * 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 namespace Aws { namespace Utils { namespace Json { class JsonValue; class JsonView; } // namespace Json } // namespace Utils namespace EKS { namespace Model { /** *

An object representing an Amazon EKS managed node group.

See * Also:

AWS API * Reference

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

The name associated with an Amazon EKS managed node group.

*/ inline const Aws::String& GetNodegroupName() const{ return m_nodegroupName; } /** *

The name associated with an Amazon EKS managed node group.

*/ inline bool NodegroupNameHasBeenSet() const { return m_nodegroupNameHasBeenSet; } /** *

The name associated with an Amazon EKS managed node group.

*/ inline void SetNodegroupName(const Aws::String& value) { m_nodegroupNameHasBeenSet = true; m_nodegroupName = value; } /** *

The name associated with an Amazon EKS managed node group.

*/ inline void SetNodegroupName(Aws::String&& value) { m_nodegroupNameHasBeenSet = true; m_nodegroupName = std::move(value); } /** *

The name associated with an Amazon EKS managed node group.

*/ inline void SetNodegroupName(const char* value) { m_nodegroupNameHasBeenSet = true; m_nodegroupName.assign(value); } /** *

The name associated with an Amazon EKS managed node group.

*/ inline Nodegroup& WithNodegroupName(const Aws::String& value) { SetNodegroupName(value); return *this;} /** *

The name associated with an Amazon EKS managed node group.

*/ inline Nodegroup& WithNodegroupName(Aws::String&& value) { SetNodegroupName(std::move(value)); return *this;} /** *

The name associated with an Amazon EKS managed node group.

*/ inline Nodegroup& WithNodegroupName(const char* value) { SetNodegroupName(value); return *this;} /** *

The Amazon Resource Name (ARN) associated with the managed node group.

*/ inline const Aws::String& GetNodegroupArn() const{ return m_nodegroupArn; } /** *

The Amazon Resource Name (ARN) associated with the managed node group.

*/ inline bool NodegroupArnHasBeenSet() const { return m_nodegroupArnHasBeenSet; } /** *

The Amazon Resource Name (ARN) associated with the managed node group.

*/ inline void SetNodegroupArn(const Aws::String& value) { m_nodegroupArnHasBeenSet = true; m_nodegroupArn = value; } /** *

The Amazon Resource Name (ARN) associated with the managed node group.

*/ inline void SetNodegroupArn(Aws::String&& value) { m_nodegroupArnHasBeenSet = true; m_nodegroupArn = std::move(value); } /** *

The Amazon Resource Name (ARN) associated with the managed node group.

*/ inline void SetNodegroupArn(const char* value) { m_nodegroupArnHasBeenSet = true; m_nodegroupArn.assign(value); } /** *

The Amazon Resource Name (ARN) associated with the managed node group.

*/ inline Nodegroup& WithNodegroupArn(const Aws::String& value) { SetNodegroupArn(value); return *this;} /** *

The Amazon Resource Name (ARN) associated with the managed node group.

*/ inline Nodegroup& WithNodegroupArn(Aws::String&& value) { SetNodegroupArn(std::move(value)); return *this;} /** *

The Amazon Resource Name (ARN) associated with the managed node group.

*/ inline Nodegroup& WithNodegroupArn(const char* value) { SetNodegroupArn(value); return *this;} /** *

The name of the cluster that the managed node group resides in.

*/ inline const Aws::String& GetClusterName() const{ return m_clusterName; } /** *

The name of the cluster that the managed node group resides in.

*/ inline bool ClusterNameHasBeenSet() const { return m_clusterNameHasBeenSet; } /** *

The name of the cluster that the managed node group resides in.

*/ inline void SetClusterName(const Aws::String& value) { m_clusterNameHasBeenSet = true; m_clusterName = value; } /** *

The name of the cluster that the managed node group resides in.

*/ inline void SetClusterName(Aws::String&& value) { m_clusterNameHasBeenSet = true; m_clusterName = std::move(value); } /** *

The name of the cluster that the managed node group resides in.

*/ inline void SetClusterName(const char* value) { m_clusterNameHasBeenSet = true; m_clusterName.assign(value); } /** *

The name of the cluster that the managed node group resides in.

*/ inline Nodegroup& WithClusterName(const Aws::String& value) { SetClusterName(value); return *this;} /** *

The name of the cluster that the managed node group resides in.

*/ inline Nodegroup& WithClusterName(Aws::String&& value) { SetClusterName(std::move(value)); return *this;} /** *

The name of the cluster that the managed node group resides in.

*/ inline Nodegroup& WithClusterName(const char* value) { SetClusterName(value); return *this;} /** *

The Kubernetes version of the managed node group.

*/ inline const Aws::String& GetVersion() const{ return m_version; } /** *

The Kubernetes version of the managed node group.

*/ inline bool VersionHasBeenSet() const { return m_versionHasBeenSet; } /** *

The Kubernetes version of the managed node group.

*/ inline void SetVersion(const Aws::String& value) { m_versionHasBeenSet = true; m_version = value; } /** *

The Kubernetes version of the managed node group.

*/ inline void SetVersion(Aws::String&& value) { m_versionHasBeenSet = true; m_version = std::move(value); } /** *

The Kubernetes version of the managed node group.

*/ inline void SetVersion(const char* value) { m_versionHasBeenSet = true; m_version.assign(value); } /** *

The Kubernetes version of the managed node group.

*/ inline Nodegroup& WithVersion(const Aws::String& value) { SetVersion(value); return *this;} /** *

The Kubernetes version of the managed node group.

*/ inline Nodegroup& WithVersion(Aws::String&& value) { SetVersion(std::move(value)); return *this;} /** *

The Kubernetes version of the managed node group.

*/ inline Nodegroup& WithVersion(const char* value) { SetVersion(value); return *this;} /** *

If the node group was deployed using a launch template with a custom AMI, * then this is the AMI ID that was specified in the launch template. For node * groups that weren't deployed using a launch template, this is the version of the * Amazon EKS optimized AMI that the node group was deployed with.

*/ inline const Aws::String& GetReleaseVersion() const{ return m_releaseVersion; } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is the AMI ID that was specified in the launch template. For node * groups that weren't deployed using a launch template, this is the version of the * Amazon EKS optimized AMI that the node group was deployed with.

*/ inline bool ReleaseVersionHasBeenSet() const { return m_releaseVersionHasBeenSet; } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is the AMI ID that was specified in the launch template. For node * groups that weren't deployed using a launch template, this is the version of the * Amazon EKS optimized AMI that the node group was deployed with.

*/ inline void SetReleaseVersion(const Aws::String& value) { m_releaseVersionHasBeenSet = true; m_releaseVersion = value; } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is the AMI ID that was specified in the launch template. For node * groups that weren't deployed using a launch template, this is the version of the * Amazon EKS optimized AMI that the node group was deployed with.

*/ inline void SetReleaseVersion(Aws::String&& value) { m_releaseVersionHasBeenSet = true; m_releaseVersion = std::move(value); } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is the AMI ID that was specified in the launch template. For node * groups that weren't deployed using a launch template, this is the version of the * Amazon EKS optimized AMI that the node group was deployed with.

*/ inline void SetReleaseVersion(const char* value) { m_releaseVersionHasBeenSet = true; m_releaseVersion.assign(value); } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is the AMI ID that was specified in the launch template. For node * groups that weren't deployed using a launch template, this is the version of the * Amazon EKS optimized AMI that the node group was deployed with.

*/ inline Nodegroup& WithReleaseVersion(const Aws::String& value) { SetReleaseVersion(value); return *this;} /** *

If the node group was deployed using a launch template with a custom AMI, * then this is the AMI ID that was specified in the launch template. For node * groups that weren't deployed using a launch template, this is the version of the * Amazon EKS optimized AMI that the node group was deployed with.

*/ inline Nodegroup& WithReleaseVersion(Aws::String&& value) { SetReleaseVersion(std::move(value)); return *this;} /** *

If the node group was deployed using a launch template with a custom AMI, * then this is the AMI ID that was specified in the launch template. For node * groups that weren't deployed using a launch template, this is the version of the * Amazon EKS optimized AMI that the node group was deployed with.

*/ inline Nodegroup& WithReleaseVersion(const char* value) { SetReleaseVersion(value); return *this;} /** *

The Unix epoch timestamp in seconds for when the managed node group was * created.

*/ inline const Aws::Utils::DateTime& GetCreatedAt() const{ return m_createdAt; } /** *

The Unix epoch timestamp in seconds for when the managed node group was * created.

*/ inline bool CreatedAtHasBeenSet() const { return m_createdAtHasBeenSet; } /** *

The Unix epoch timestamp in seconds for when the managed node group was * created.

*/ inline void SetCreatedAt(const Aws::Utils::DateTime& value) { m_createdAtHasBeenSet = true; m_createdAt = value; } /** *

The Unix epoch timestamp in seconds for when the managed node group was * created.

*/ inline void SetCreatedAt(Aws::Utils::DateTime&& value) { m_createdAtHasBeenSet = true; m_createdAt = std::move(value); } /** *

The Unix epoch timestamp in seconds for when the managed node group was * created.

*/ inline Nodegroup& WithCreatedAt(const Aws::Utils::DateTime& value) { SetCreatedAt(value); return *this;} /** *

The Unix epoch timestamp in seconds for when the managed node group was * created.

*/ inline Nodegroup& WithCreatedAt(Aws::Utils::DateTime&& value) { SetCreatedAt(std::move(value)); return *this;} /** *

The Unix epoch timestamp in seconds for when the managed node group was last * modified.

*/ inline const Aws::Utils::DateTime& GetModifiedAt() const{ return m_modifiedAt; } /** *

The Unix epoch timestamp in seconds for when the managed node group was last * modified.

*/ inline bool ModifiedAtHasBeenSet() const { return m_modifiedAtHasBeenSet; } /** *

The Unix epoch timestamp in seconds for when the managed node group was last * modified.

*/ inline void SetModifiedAt(const Aws::Utils::DateTime& value) { m_modifiedAtHasBeenSet = true; m_modifiedAt = value; } /** *

The Unix epoch timestamp in seconds for when the managed node group was last * modified.

*/ inline void SetModifiedAt(Aws::Utils::DateTime&& value) { m_modifiedAtHasBeenSet = true; m_modifiedAt = std::move(value); } /** *

The Unix epoch timestamp in seconds for when the managed node group was last * modified.

*/ inline Nodegroup& WithModifiedAt(const Aws::Utils::DateTime& value) { SetModifiedAt(value); return *this;} /** *

The Unix epoch timestamp in seconds for when the managed node group was last * modified.

*/ inline Nodegroup& WithModifiedAt(Aws::Utils::DateTime&& value) { SetModifiedAt(std::move(value)); return *this;} /** *

The current status of the managed node group.

*/ inline const NodegroupStatus& GetStatus() const{ return m_status; } /** *

The current status of the managed node group.

*/ inline bool StatusHasBeenSet() const { return m_statusHasBeenSet; } /** *

The current status of the managed node group.

*/ inline void SetStatus(const NodegroupStatus& value) { m_statusHasBeenSet = true; m_status = value; } /** *

The current status of the managed node group.

*/ inline void SetStatus(NodegroupStatus&& value) { m_statusHasBeenSet = true; m_status = std::move(value); } /** *

The current status of the managed node group.

*/ inline Nodegroup& WithStatus(const NodegroupStatus& value) { SetStatus(value); return *this;} /** *

The current status of the managed node group.

*/ inline Nodegroup& WithStatus(NodegroupStatus&& value) { SetStatus(std::move(value)); return *this;} /** *

The capacity type of your managed node group.

*/ inline const CapacityTypes& GetCapacityType() const{ return m_capacityType; } /** *

The capacity type of your managed node group.

*/ inline bool CapacityTypeHasBeenSet() const { return m_capacityTypeHasBeenSet; } /** *

The capacity type of your managed node group.

*/ inline void SetCapacityType(const CapacityTypes& value) { m_capacityTypeHasBeenSet = true; m_capacityType = value; } /** *

The capacity type of your managed node group.

*/ inline void SetCapacityType(CapacityTypes&& value) { m_capacityTypeHasBeenSet = true; m_capacityType = std::move(value); } /** *

The capacity type of your managed node group.

*/ inline Nodegroup& WithCapacityType(const CapacityTypes& value) { SetCapacityType(value); return *this;} /** *

The capacity type of your managed node group.

*/ inline Nodegroup& WithCapacityType(CapacityTypes&& value) { SetCapacityType(std::move(value)); return *this;} /** *

The scaling configuration details for the Auto Scaling group that is * associated with your node group.

*/ inline const NodegroupScalingConfig& GetScalingConfig() const{ return m_scalingConfig; } /** *

The scaling configuration details for the Auto Scaling group that is * associated with your node group.

*/ inline bool ScalingConfigHasBeenSet() const { return m_scalingConfigHasBeenSet; } /** *

The scaling configuration details for the Auto Scaling group that is * associated with your node group.

*/ inline void SetScalingConfig(const NodegroupScalingConfig& value) { m_scalingConfigHasBeenSet = true; m_scalingConfig = value; } /** *

The scaling configuration details for the Auto Scaling group that is * associated with your node group.

*/ inline void SetScalingConfig(NodegroupScalingConfig&& value) { m_scalingConfigHasBeenSet = true; m_scalingConfig = std::move(value); } /** *

The scaling configuration details for the Auto Scaling group that is * associated with your node group.

*/ inline Nodegroup& WithScalingConfig(const NodegroupScalingConfig& value) { SetScalingConfig(value); return *this;} /** *

The scaling configuration details for the Auto Scaling group that is * associated with your node group.

*/ inline Nodegroup& WithScalingConfig(NodegroupScalingConfig&& value) { SetScalingConfig(std::move(value)); return *this;} /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline const Aws::Vector& GetInstanceTypes() const{ return m_instanceTypes; } /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline bool InstanceTypesHasBeenSet() const { return m_instanceTypesHasBeenSet; } /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline void SetInstanceTypes(const Aws::Vector& value) { m_instanceTypesHasBeenSet = true; m_instanceTypes = value; } /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline void SetInstanceTypes(Aws::Vector&& value) { m_instanceTypesHasBeenSet = true; m_instanceTypes = std::move(value); } /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline Nodegroup& WithInstanceTypes(const Aws::Vector& value) { SetInstanceTypes(value); return *this;} /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline Nodegroup& WithInstanceTypes(Aws::Vector&& value) { SetInstanceTypes(std::move(value)); return *this;} /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline Nodegroup& AddInstanceTypes(const Aws::String& value) { m_instanceTypesHasBeenSet = true; m_instanceTypes.push_back(value); return *this; } /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline Nodegroup& AddInstanceTypes(Aws::String&& value) { m_instanceTypesHasBeenSet = true; m_instanceTypes.push_back(std::move(value)); return *this; } /** *

If the node group wasn't deployed with a launch template, then this is the * instance type that is associated with the node group. If the node group was * deployed with a launch template, then this is null.

*/ inline Nodegroup& AddInstanceTypes(const char* value) { m_instanceTypesHasBeenSet = true; m_instanceTypes.push_back(value); return *this; } /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline const Aws::Vector& GetSubnets() const{ return m_subnets; } /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline bool SubnetsHasBeenSet() const { return m_subnetsHasBeenSet; } /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline void SetSubnets(const Aws::Vector& value) { m_subnetsHasBeenSet = true; m_subnets = value; } /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline void SetSubnets(Aws::Vector&& value) { m_subnetsHasBeenSet = true; m_subnets = std::move(value); } /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline Nodegroup& WithSubnets(const Aws::Vector& value) { SetSubnets(value); return *this;} /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline Nodegroup& WithSubnets(Aws::Vector&& value) { SetSubnets(std::move(value)); return *this;} /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline Nodegroup& AddSubnets(const Aws::String& value) { m_subnetsHasBeenSet = true; m_subnets.push_back(value); return *this; } /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline Nodegroup& AddSubnets(Aws::String&& value) { m_subnetsHasBeenSet = true; m_subnets.push_back(std::move(value)); return *this; } /** *

The subnets that were specified for the Auto Scaling group that is associated * with your node group.

*/ inline Nodegroup& AddSubnets(const char* value) { m_subnetsHasBeenSet = true; m_subnets.push_back(value); return *this; } /** *

If the node group wasn't deployed with a launch template, then this is the * remote access configuration that is associated with the node group. If the node * group was deployed with a launch template, then this is null.

*/ inline const RemoteAccessConfig& GetRemoteAccess() const{ return m_remoteAccess; } /** *

If the node group wasn't deployed with a launch template, then this is the * remote access configuration that is associated with the node group. If the node * group was deployed with a launch template, then this is null.

*/ inline bool RemoteAccessHasBeenSet() const { return m_remoteAccessHasBeenSet; } /** *

If the node group wasn't deployed with a launch template, then this is the * remote access configuration that is associated with the node group. If the node * group was deployed with a launch template, then this is null.

*/ inline void SetRemoteAccess(const RemoteAccessConfig& value) { m_remoteAccessHasBeenSet = true; m_remoteAccess = value; } /** *

If the node group wasn't deployed with a launch template, then this is the * remote access configuration that is associated with the node group. If the node * group was deployed with a launch template, then this is null.

*/ inline void SetRemoteAccess(RemoteAccessConfig&& value) { m_remoteAccessHasBeenSet = true; m_remoteAccess = std::move(value); } /** *

If the node group wasn't deployed with a launch template, then this is the * remote access configuration that is associated with the node group. If the node * group was deployed with a launch template, then this is null.

*/ inline Nodegroup& WithRemoteAccess(const RemoteAccessConfig& value) { SetRemoteAccess(value); return *this;} /** *

If the node group wasn't deployed with a launch template, then this is the * remote access configuration that is associated with the node group. If the node * group was deployed with a launch template, then this is null.

*/ inline Nodegroup& WithRemoteAccess(RemoteAccessConfig&& value) { SetRemoteAccess(std::move(value)); return *this;} /** *

If the node group was deployed using a launch template with a custom AMI, * then this is CUSTOM. For node groups that weren't deployed using a * launch template, this is the AMI type that was specified in the node group * configuration.

*/ inline const AMITypes& GetAmiType() const{ return m_amiType; } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is CUSTOM. For node groups that weren't deployed using a * launch template, this is the AMI type that was specified in the node group * configuration.

*/ inline bool AmiTypeHasBeenSet() const { return m_amiTypeHasBeenSet; } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is CUSTOM. For node groups that weren't deployed using a * launch template, this is the AMI type that was specified in the node group * configuration.

*/ inline void SetAmiType(const AMITypes& value) { m_amiTypeHasBeenSet = true; m_amiType = value; } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is CUSTOM. For node groups that weren't deployed using a * launch template, this is the AMI type that was specified in the node group * configuration.

*/ inline void SetAmiType(AMITypes&& value) { m_amiTypeHasBeenSet = true; m_amiType = std::move(value); } /** *

If the node group was deployed using a launch template with a custom AMI, * then this is CUSTOM. For node groups that weren't deployed using a * launch template, this is the AMI type that was specified in the node group * configuration.

*/ inline Nodegroup& WithAmiType(const AMITypes& value) { SetAmiType(value); return *this;} /** *

If the node group was deployed using a launch template with a custom AMI, * then this is CUSTOM. For node groups that weren't deployed using a * launch template, this is the AMI type that was specified in the node group * configuration.

*/ inline Nodegroup& WithAmiType(AMITypes&& value) { SetAmiType(std::move(value)); return *this;} /** *

The IAM role associated with your node group. The Amazon EKS node * kubelet daemon makes calls to Amazon Web Services APIs on your * behalf. Nodes receive permissions for these API calls through an IAM instance * profile and associated policies.

*/ inline const Aws::String& GetNodeRole() const{ return m_nodeRole; } /** *

The IAM role associated with your node group. The Amazon EKS node * kubelet daemon makes calls to Amazon Web Services APIs on your * behalf. Nodes receive permissions for these API calls through an IAM instance * profile and associated policies.

*/ inline bool NodeRoleHasBeenSet() const { return m_nodeRoleHasBeenSet; } /** *

The IAM role associated with your node group. The Amazon EKS node * kubelet daemon makes calls to Amazon Web Services APIs on your * behalf. Nodes receive permissions for these API calls through an IAM instance * profile and associated policies.

*/ inline void SetNodeRole(const Aws::String& value) { m_nodeRoleHasBeenSet = true; m_nodeRole = value; } /** *

The IAM role associated with your node group. The Amazon EKS node * kubelet daemon makes calls to Amazon Web Services APIs on your * behalf. Nodes receive permissions for these API calls through an IAM instance * profile and associated policies.

*/ inline void SetNodeRole(Aws::String&& value) { m_nodeRoleHasBeenSet = true; m_nodeRole = std::move(value); } /** *

The IAM role associated with your node group. The Amazon EKS node * kubelet daemon makes calls to Amazon Web Services APIs on your * behalf. Nodes receive permissions for these API calls through an IAM instance * profile and associated policies.

*/ inline void SetNodeRole(const char* value) { m_nodeRoleHasBeenSet = true; m_nodeRole.assign(value); } /** *

The IAM role associated with your node group. The Amazon EKS node * kubelet daemon makes calls to Amazon Web Services APIs on your * behalf. Nodes receive permissions for these API calls through an IAM instance * profile and associated policies.

*/ inline Nodegroup& WithNodeRole(const Aws::String& value) { SetNodeRole(value); return *this;} /** *

The IAM role associated with your node group. The Amazon EKS node * kubelet daemon makes calls to Amazon Web Services APIs on your * behalf. Nodes receive permissions for these API calls through an IAM instance * profile and associated policies.

*/ inline Nodegroup& WithNodeRole(Aws::String&& value) { SetNodeRole(std::move(value)); return *this;} /** *

The IAM role associated with your node group. The Amazon EKS node * kubelet daemon makes calls to Amazon Web Services APIs on your * behalf. Nodes receive permissions for these API calls through an IAM instance * profile and associated policies.

*/ inline Nodegroup& WithNodeRole(const char* value) { SetNodeRole(value); return *this;} /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline const Aws::Map& GetLabels() const{ return m_labels; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline bool LabelsHasBeenSet() const { return m_labelsHasBeenSet; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline void SetLabels(const Aws::Map& value) { m_labelsHasBeenSet = true; m_labels = value; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline void SetLabels(Aws::Map&& value) { m_labelsHasBeenSet = true; m_labels = std::move(value); } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& WithLabels(const Aws::Map& value) { SetLabels(value); return *this;} /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& WithLabels(Aws::Map&& value) { SetLabels(std::move(value)); return *this;} /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& AddLabels(const Aws::String& key, const Aws::String& value) { m_labelsHasBeenSet = true; m_labels.emplace(key, value); return *this; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& AddLabels(Aws::String&& key, const Aws::String& value) { m_labelsHasBeenSet = true; m_labels.emplace(std::move(key), value); return *this; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& AddLabels(const Aws::String& key, Aws::String&& value) { m_labelsHasBeenSet = true; m_labels.emplace(key, std::move(value)); return *this; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& AddLabels(Aws::String&& key, Aws::String&& value) { m_labelsHasBeenSet = true; m_labels.emplace(std::move(key), std::move(value)); return *this; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& AddLabels(const char* key, Aws::String&& value) { m_labelsHasBeenSet = true; m_labels.emplace(key, std::move(value)); return *this; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& AddLabels(Aws::String&& key, const char* value) { m_labelsHasBeenSet = true; m_labels.emplace(std::move(key), value); return *this; } /** *

The Kubernetes labels applied to the nodes in the node group.

*

Only labels that are applied with the Amazon EKS API are shown here. There * may be other Kubernetes labels applied to the nodes in this group.

*/ inline Nodegroup& AddLabels(const char* key, const char* value) { m_labelsHasBeenSet = true; m_labels.emplace(key, value); return *this; } /** *

The Kubernetes taints to be applied to the nodes in the node group when they * are created. Effect is one of No_Schedule, * Prefer_No_Schedule, or No_Execute. Kubernetes taints * can be used together with tolerations to control how workloads are scheduled to * your nodes. For more information, see Node * taints on managed node groups.

*/ inline const Aws::Vector& GetTaints() const{ return m_taints; } /** *

The Kubernetes taints to be applied to the nodes in the node group when they * are created. Effect is one of No_Schedule, * Prefer_No_Schedule, or No_Execute. Kubernetes taints * can be used together with tolerations to control how workloads are scheduled to * your nodes. For more information, see Node * taints on managed node groups.

*/ inline bool TaintsHasBeenSet() const { return m_taintsHasBeenSet; } /** *

The Kubernetes taints to be applied to the nodes in the node group when they * are created. Effect is one of No_Schedule, * Prefer_No_Schedule, or No_Execute. Kubernetes taints * can be used together with tolerations to control how workloads are scheduled to * your nodes. For more information, see Node * taints on managed node groups.

*/ inline void SetTaints(const Aws::Vector& value) { m_taintsHasBeenSet = true; m_taints = value; } /** *

The Kubernetes taints to be applied to the nodes in the node group when they * are created. Effect is one of No_Schedule, * Prefer_No_Schedule, or No_Execute. Kubernetes taints * can be used together with tolerations to control how workloads are scheduled to * your nodes. For more information, see Node * taints on managed node groups.

*/ inline void SetTaints(Aws::Vector&& value) { m_taintsHasBeenSet = true; m_taints = std::move(value); } /** *

The Kubernetes taints to be applied to the nodes in the node group when they * are created. Effect is one of No_Schedule, * Prefer_No_Schedule, or No_Execute. Kubernetes taints * can be used together with tolerations to control how workloads are scheduled to * your nodes. For more information, see Node * taints on managed node groups.

*/ inline Nodegroup& WithTaints(const Aws::Vector& value) { SetTaints(value); return *this;} /** *

The Kubernetes taints to be applied to the nodes in the node group when they * are created. Effect is one of No_Schedule, * Prefer_No_Schedule, or No_Execute. Kubernetes taints * can be used together with tolerations to control how workloads are scheduled to * your nodes. For more information, see Node * taints on managed node groups.

*/ inline Nodegroup& WithTaints(Aws::Vector&& value) { SetTaints(std::move(value)); return *this;} /** *

The Kubernetes taints to be applied to the nodes in the node group when they * are created. Effect is one of No_Schedule, * Prefer_No_Schedule, or No_Execute. Kubernetes taints * can be used together with tolerations to control how workloads are scheduled to * your nodes. For more information, see Node * taints on managed node groups.

*/ inline Nodegroup& AddTaints(const Taint& value) { m_taintsHasBeenSet = true; m_taints.push_back(value); return *this; } /** *

The Kubernetes taints to be applied to the nodes in the node group when they * are created. Effect is one of No_Schedule, * Prefer_No_Schedule, or No_Execute. Kubernetes taints * can be used together with tolerations to control how workloads are scheduled to * your nodes. For more information, see Node * taints on managed node groups.

*/ inline Nodegroup& AddTaints(Taint&& value) { m_taintsHasBeenSet = true; m_taints.push_back(std::move(value)); return *this; } /** *

The resources associated with the node group, such as Auto Scaling groups and * security groups for remote access.

*/ inline const NodegroupResources& GetResources() const{ return m_resources; } /** *

The resources associated with the node group, such as Auto Scaling groups and * security groups for remote access.

*/ inline bool ResourcesHasBeenSet() const { return m_resourcesHasBeenSet; } /** *

The resources associated with the node group, such as Auto Scaling groups and * security groups for remote access.

*/ inline void SetResources(const NodegroupResources& value) { m_resourcesHasBeenSet = true; m_resources = value; } /** *

The resources associated with the node group, such as Auto Scaling groups and * security groups for remote access.

*/ inline void SetResources(NodegroupResources&& value) { m_resourcesHasBeenSet = true; m_resources = std::move(value); } /** *

The resources associated with the node group, such as Auto Scaling groups and * security groups for remote access.

*/ inline Nodegroup& WithResources(const NodegroupResources& value) { SetResources(value); return *this;} /** *

The resources associated with the node group, such as Auto Scaling groups and * security groups for remote access.

*/ inline Nodegroup& WithResources(NodegroupResources&& value) { SetResources(std::move(value)); return *this;} /** *

If the node group wasn't deployed with a launch template, then this is the * disk size in the node group configuration. If the node group was deployed with a * launch template, then this is null.

*/ inline int GetDiskSize() const{ return m_diskSize; } /** *

If the node group wasn't deployed with a launch template, then this is the * disk size in the node group configuration. If the node group was deployed with a * launch template, then this is null.

*/ inline bool DiskSizeHasBeenSet() const { return m_diskSizeHasBeenSet; } /** *

If the node group wasn't deployed with a launch template, then this is the * disk size in the node group configuration. If the node group was deployed with a * launch template, then this is null.

*/ inline void SetDiskSize(int value) { m_diskSizeHasBeenSet = true; m_diskSize = value; } /** *

If the node group wasn't deployed with a launch template, then this is the * disk size in the node group configuration. If the node group was deployed with a * launch template, then this is null.

*/ inline Nodegroup& WithDiskSize(int value) { SetDiskSize(value); return *this;} /** *

The health status of the node group. If there are issues with your node * group's health, they are listed here.

*/ inline const NodegroupHealth& GetHealth() const{ return m_health; } /** *

The health status of the node group. If there are issues with your node * group's health, they are listed here.

*/ inline bool HealthHasBeenSet() const { return m_healthHasBeenSet; } /** *

The health status of the node group. If there are issues with your node * group's health, they are listed here.

*/ inline void SetHealth(const NodegroupHealth& value) { m_healthHasBeenSet = true; m_health = value; } /** *

The health status of the node group. If there are issues with your node * group's health, they are listed here.

*/ inline void SetHealth(NodegroupHealth&& value) { m_healthHasBeenSet = true; m_health = std::move(value); } /** *

The health status of the node group. If there are issues with your node * group's health, they are listed here.

*/ inline Nodegroup& WithHealth(const NodegroupHealth& value) { SetHealth(value); return *this;} /** *

The health status of the node group. If there are issues with your node * group's health, they are listed here.

*/ inline Nodegroup& WithHealth(NodegroupHealth&& value) { SetHealth(std::move(value)); return *this;} /** *

The node group update configuration.

*/ inline const NodegroupUpdateConfig& GetUpdateConfig() const{ return m_updateConfig; } /** *

The node group update configuration.

*/ inline bool UpdateConfigHasBeenSet() const { return m_updateConfigHasBeenSet; } /** *

The node group update configuration.

*/ inline void SetUpdateConfig(const NodegroupUpdateConfig& value) { m_updateConfigHasBeenSet = true; m_updateConfig = value; } /** *

The node group update configuration.

*/ inline void SetUpdateConfig(NodegroupUpdateConfig&& value) { m_updateConfigHasBeenSet = true; m_updateConfig = std::move(value); } /** *

The node group update configuration.

*/ inline Nodegroup& WithUpdateConfig(const NodegroupUpdateConfig& value) { SetUpdateConfig(value); return *this;} /** *

The node group update configuration.

*/ inline Nodegroup& WithUpdateConfig(NodegroupUpdateConfig&& value) { SetUpdateConfig(std::move(value)); return *this;} /** *

If a launch template was used to create the node group, then this is the * launch template that was used.

*/ inline const LaunchTemplateSpecification& GetLaunchTemplate() const{ return m_launchTemplate; } /** *

If a launch template was used to create the node group, then this is the * launch template that was used.

*/ inline bool LaunchTemplateHasBeenSet() const { return m_launchTemplateHasBeenSet; } /** *

If a launch template was used to create the node group, then this is the * launch template that was used.

*/ inline void SetLaunchTemplate(const LaunchTemplateSpecification& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = value; } /** *

If a launch template was used to create the node group, then this is the * launch template that was used.

*/ inline void SetLaunchTemplate(LaunchTemplateSpecification&& value) { m_launchTemplateHasBeenSet = true; m_launchTemplate = std::move(value); } /** *

If a launch template was used to create the node group, then this is the * launch template that was used.

*/ inline Nodegroup& WithLaunchTemplate(const LaunchTemplateSpecification& value) { SetLaunchTemplate(value); return *this;} /** *

If a launch template was used to create the node group, then this is the * launch template that was used.

*/ inline Nodegroup& WithLaunchTemplate(LaunchTemplateSpecification&& value) { SetLaunchTemplate(std::move(value)); return *this;} /** *

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

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

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

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

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

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

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

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

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

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

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

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

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

*/ inline Nodegroup& AddTags(const Aws::String& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } /** *

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

*/ inline Nodegroup& AddTags(Aws::String&& key, const Aws::String& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

*/ inline Nodegroup& AddTags(const Aws::String& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

*/ inline Nodegroup& AddTags(Aws::String&& key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), std::move(value)); return *this; } /** *

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

*/ inline Nodegroup& AddTags(const char* key, Aws::String&& value) { m_tagsHasBeenSet = true; m_tags.emplace(key, std::move(value)); return *this; } /** *

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

*/ inline Nodegroup& AddTags(Aws::String&& key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(std::move(key), value); return *this; } /** *

The metadata applied to the node group to assist with categorization and * organization. Each tag consists of a key and an optional value. You define both. * Node group tags do not propagate to any other resources associated with the node * group, such as the Amazon EC2 instances or subnets.

*/ inline Nodegroup& AddTags(const char* key, const char* value) { m_tagsHasBeenSet = true; m_tags.emplace(key, value); return *this; } private: Aws::String m_nodegroupName; bool m_nodegroupNameHasBeenSet = false; Aws::String m_nodegroupArn; bool m_nodegroupArnHasBeenSet = false; Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; Aws::String m_version; bool m_versionHasBeenSet = false; Aws::String m_releaseVersion; bool m_releaseVersionHasBeenSet = false; Aws::Utils::DateTime m_createdAt; bool m_createdAtHasBeenSet = false; Aws::Utils::DateTime m_modifiedAt; bool m_modifiedAtHasBeenSet = false; NodegroupStatus m_status; bool m_statusHasBeenSet = false; CapacityTypes m_capacityType; bool m_capacityTypeHasBeenSet = false; NodegroupScalingConfig m_scalingConfig; bool m_scalingConfigHasBeenSet = false; Aws::Vector m_instanceTypes; bool m_instanceTypesHasBeenSet = false; Aws::Vector m_subnets; bool m_subnetsHasBeenSet = false; RemoteAccessConfig m_remoteAccess; bool m_remoteAccessHasBeenSet = false; AMITypes m_amiType; bool m_amiTypeHasBeenSet = false; Aws::String m_nodeRole; bool m_nodeRoleHasBeenSet = false; Aws::Map m_labels; bool m_labelsHasBeenSet = false; Aws::Vector m_taints; bool m_taintsHasBeenSet = false; NodegroupResources m_resources; bool m_resourcesHasBeenSet = false; int m_diskSize; bool m_diskSizeHasBeenSet = false; NodegroupHealth m_health; bool m_healthHasBeenSet = false; NodegroupUpdateConfig m_updateConfig; bool m_updateConfigHasBeenSet = false; LaunchTemplateSpecification m_launchTemplate; bool m_launchTemplateHasBeenSet = false; Aws::Map m_tags; bool m_tagsHasBeenSet = false; }; } // namespace Model } // namespace EKS } // namespace Aws