/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace EKS { namespace Model { /** */ class UpdateNodegroupVersionRequest : public EKSRequest { public: AWS_EKS_API UpdateNodegroupVersionRequest(); // Service request name is the Operation name which will send this request out, // each operation should has unique request name, so that we can get operation's name from this request. // Note: this is not true for response, multiple operations may have the same response name, // so we can not get operation's name from response. inline virtual const char* GetServiceRequestName() const override { return "UpdateNodegroupVersion"; } AWS_EKS_API Aws::String SerializePayload() const override; /** *

The name of the Amazon EKS cluster that is associated with the managed node * group to update.

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

The name of the Amazon EKS cluster that is associated with the managed node * group to update.

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

The name of the Amazon EKS cluster that is associated with the managed node * group to update.

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

The name of the Amazon EKS cluster that is associated with the managed node * group to update.

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

The name of the Amazon EKS cluster that is associated with the managed node * group to update.

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

The name of the Amazon EKS cluster that is associated with the managed node * group to update.

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

The name of the Amazon EKS cluster that is associated with the managed node * group to update.

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

The name of the Amazon EKS cluster that is associated with the managed node * group to update.

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

The name of the managed node group to update.

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

The name of the managed node group to update.

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

The name of the managed node group to update.

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

The name of the managed node group to update.

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

The name of the managed node group to update.

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

The name of the managed node group to update.

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

The name of the managed node group to update.

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

The name of the managed node group to update.

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

The Kubernetes version to update to. If no version is specified, then the * Kubernetes version of the node group does not change. You can specify the * Kubernetes version of the cluster to update the node group to the latest AMI * version of the cluster's Kubernetes version. If you specify * launchTemplate, and your launch template uses a custom AMI, then * don't specify version, or the node group update will fail. For more * information about using launch templates with Amazon EKS, see Launch * template support in the Amazon EKS User Guide.

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

The Kubernetes version to update to. If no version is specified, then the * Kubernetes version of the node group does not change. You can specify the * Kubernetes version of the cluster to update the node group to the latest AMI * version of the cluster's Kubernetes version. If you specify * launchTemplate, and your launch template uses a custom AMI, then * don't specify version, or the node group update will fail. For more * information about using launch templates with Amazon EKS, see Launch * template support in the Amazon EKS User Guide.

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

The Kubernetes version to update to. If no version is specified, then the * Kubernetes version of the node group does not change. You can specify the * Kubernetes version of the cluster to update the node group to the latest AMI * version of the cluster's Kubernetes version. If you specify * launchTemplate, and your launch template uses a custom AMI, then * don't specify version, or the node group update will fail. For more * information about using launch templates with Amazon EKS, see Launch * template support in the Amazon EKS User Guide.

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

The Kubernetes version to update to. If no version is specified, then the * Kubernetes version of the node group does not change. You can specify the * Kubernetes version of the cluster to update the node group to the latest AMI * version of the cluster's Kubernetes version. If you specify * launchTemplate, and your launch template uses a custom AMI, then * don't specify version, or the node group update will fail. For more * information about using launch templates with Amazon EKS, see Launch * template support in the Amazon EKS User Guide.

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

The Kubernetes version to update to. If no version is specified, then the * Kubernetes version of the node group does not change. You can specify the * Kubernetes version of the cluster to update the node group to the latest AMI * version of the cluster's Kubernetes version. If you specify * launchTemplate, and your launch template uses a custom AMI, then * don't specify version, or the node group update will fail. For more * information about using launch templates with Amazon EKS, see Launch * template support in the Amazon EKS User Guide.

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

The Kubernetes version to update to. If no version is specified, then the * Kubernetes version of the node group does not change. You can specify the * Kubernetes version of the cluster to update the node group to the latest AMI * version of the cluster's Kubernetes version. If you specify * launchTemplate, and your launch template uses a custom AMI, then * don't specify version, or the node group update will fail. For more * information about using launch templates with Amazon EKS, see Launch * template support in the Amazon EKS User Guide.

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

The Kubernetes version to update to. If no version is specified, then the * Kubernetes version of the node group does not change. You can specify the * Kubernetes version of the cluster to update the node group to the latest AMI * version of the cluster's Kubernetes version. If you specify * launchTemplate, and your launch template uses a custom AMI, then * don't specify version, or the node group update will fail. For more * information about using launch templates with Amazon EKS, see Launch * template support in the Amazon EKS User Guide.

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

The Kubernetes version to update to. If no version is specified, then the * Kubernetes version of the node group does not change. You can specify the * Kubernetes version of the cluster to update the node group to the latest AMI * version of the cluster's Kubernetes version. If you specify * launchTemplate, and your launch template uses a custom AMI, then * don't specify version, or the node group update will fail. For more * information about using launch templates with Amazon EKS, see Launch * template support in the Amazon EKS User Guide.

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

The AMI version of the Amazon EKS optimized AMI to use for the update. By * default, the latest available AMI version for the node group's Kubernetes * version is used. For information about Linux versions, see Amazon * EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. * Amazon EKS managed node groups support the November 2022 and later releases of * the Windows AMIs. For information about Windows versions, see Amazon * EKS optimized Windows AMI versions in the Amazon EKS User Guide.

*

If you specify launchTemplate, and your launch template uses a * custom AMI, then don't specify releaseVersion, or the node group * update will fail. For more information about using launch templates with Amazon * EKS, see Launch * template support in the Amazon EKS User Guide.

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

The AMI version of the Amazon EKS optimized AMI to use for the update. By * default, the latest available AMI version for the node group's Kubernetes * version is used. For information about Linux versions, see Amazon * EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. * Amazon EKS managed node groups support the November 2022 and later releases of * the Windows AMIs. For information about Windows versions, see Amazon * EKS optimized Windows AMI versions in the Amazon EKS User Guide.

*

If you specify launchTemplate, and your launch template uses a * custom AMI, then don't specify releaseVersion, or the node group * update will fail. For more information about using launch templates with Amazon * EKS, see Launch * template support in the Amazon EKS User Guide.

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

The AMI version of the Amazon EKS optimized AMI to use for the update. By * default, the latest available AMI version for the node group's Kubernetes * version is used. For information about Linux versions, see Amazon * EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. * Amazon EKS managed node groups support the November 2022 and later releases of * the Windows AMIs. For information about Windows versions, see Amazon * EKS optimized Windows AMI versions in the Amazon EKS User Guide.

*

If you specify launchTemplate, and your launch template uses a * custom AMI, then don't specify releaseVersion, or the node group * update will fail. For more information about using launch templates with Amazon * EKS, see Launch * template support in the Amazon EKS User Guide.

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

The AMI version of the Amazon EKS optimized AMI to use for the update. By * default, the latest available AMI version for the node group's Kubernetes * version is used. For information about Linux versions, see Amazon * EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. * Amazon EKS managed node groups support the November 2022 and later releases of * the Windows AMIs. For information about Windows versions, see Amazon * EKS optimized Windows AMI versions in the Amazon EKS User Guide.

*

If you specify launchTemplate, and your launch template uses a * custom AMI, then don't specify releaseVersion, or the node group * update will fail. For more information about using launch templates with Amazon * EKS, see Launch * template support in the Amazon EKS User Guide.

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

The AMI version of the Amazon EKS optimized AMI to use for the update. By * default, the latest available AMI version for the node group's Kubernetes * version is used. For information about Linux versions, see Amazon * EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. * Amazon EKS managed node groups support the November 2022 and later releases of * the Windows AMIs. For information about Windows versions, see Amazon * EKS optimized Windows AMI versions in the Amazon EKS User Guide.

*

If you specify launchTemplate, and your launch template uses a * custom AMI, then don't specify releaseVersion, or the node group * update will fail. For more information about using launch templates with Amazon * EKS, see Launch * template support in the Amazon EKS User Guide.

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

The AMI version of the Amazon EKS optimized AMI to use for the update. By * default, the latest available AMI version for the node group's Kubernetes * version is used. For information about Linux versions, see Amazon * EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. * Amazon EKS managed node groups support the November 2022 and later releases of * the Windows AMIs. For information about Windows versions, see Amazon * EKS optimized Windows AMI versions in the Amazon EKS User Guide.

*

If you specify launchTemplate, and your launch template uses a * custom AMI, then don't specify releaseVersion, or the node group * update will fail. For more information about using launch templates with Amazon * EKS, see Launch * template support in the Amazon EKS User Guide.

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

The AMI version of the Amazon EKS optimized AMI to use for the update. By * default, the latest available AMI version for the node group's Kubernetes * version is used. For information about Linux versions, see Amazon * EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. * Amazon EKS managed node groups support the November 2022 and later releases of * the Windows AMIs. For information about Windows versions, see Amazon * EKS optimized Windows AMI versions in the Amazon EKS User Guide.

*

If you specify launchTemplate, and your launch template uses a * custom AMI, then don't specify releaseVersion, or the node group * update will fail. For more information about using launch templates with Amazon * EKS, see Launch * template support in the Amazon EKS User Guide.

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

The AMI version of the Amazon EKS optimized AMI to use for the update. By * default, the latest available AMI version for the node group's Kubernetes * version is used. For information about Linux versions, see Amazon * EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide. * Amazon EKS managed node groups support the November 2022 and later releases of * the Windows AMIs. For information about Windows versions, see Amazon * EKS optimized Windows AMI versions in the Amazon EKS User Guide.

*

If you specify launchTemplate, and your launch template uses a * custom AMI, then don't specify releaseVersion, or the node group * update will fail. For more information about using launch templates with Amazon * EKS, see Launch * template support in the Amazon EKS User Guide.

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

An object representing a node group's launch template specification. You can * only update a node group using a launch template if the node group was * originally deployed with a launch template.

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

An object representing a node group's launch template specification. You can * only update a node group using a launch template if the node group was * originally deployed with a launch template.

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

An object representing a node group's launch template specification. You can * only update a node group using a launch template if the node group was * originally deployed with a launch template.

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

An object representing a node group's launch template specification. You can * only update a node group using a launch template if the node group was * originally deployed with a launch template.

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

An object representing a node group's launch template specification. You can * only update a node group using a launch template if the node group was * originally deployed with a launch template.

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

An object representing a node group's launch template specification. You can * only update a node group using a launch template if the node group was * originally deployed with a launch template.

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

Force the update if the existing node group's pods are unable to be drained * due to a pod disruption budget issue. If an update fails because pods could not * be drained, you can force the update after it fails to terminate the old node * whether or not any pods are running on the node.

*/ inline bool GetForce() const{ return m_force; } /** *

Force the update if the existing node group's pods are unable to be drained * due to a pod disruption budget issue. If an update fails because pods could not * be drained, you can force the update after it fails to terminate the old node * whether or not any pods are running on the node.

*/ inline bool ForceHasBeenSet() const { return m_forceHasBeenSet; } /** *

Force the update if the existing node group's pods are unable to be drained * due to a pod disruption budget issue. If an update fails because pods could not * be drained, you can force the update after it fails to terminate the old node * whether or not any pods are running on the node.

*/ inline void SetForce(bool value) { m_forceHasBeenSet = true; m_force = value; } /** *

Force the update if the existing node group's pods are unable to be drained * due to a pod disruption budget issue. If an update fails because pods could not * be drained, you can force the update after it fails to terminate the old node * whether or not any pods are running on the node.

*/ inline UpdateNodegroupVersionRequest& WithForce(bool value) { SetForce(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request.

*/ inline const Aws::String& GetClientRequestToken() const{ return m_clientRequestToken; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request.

*/ inline bool ClientRequestTokenHasBeenSet() const { return m_clientRequestTokenHasBeenSet; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request.

*/ inline void SetClientRequestToken(const Aws::String& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = value; } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request.

*/ inline void SetClientRequestToken(Aws::String&& value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken = std::move(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request.

*/ inline void SetClientRequestToken(const char* value) { m_clientRequestTokenHasBeenSet = true; m_clientRequestToken.assign(value); } /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request.

*/ inline UpdateNodegroupVersionRequest& WithClientRequestToken(const Aws::String& value) { SetClientRequestToken(value); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request.

*/ inline UpdateNodegroupVersionRequest& WithClientRequestToken(Aws::String&& value) { SetClientRequestToken(std::move(value)); return *this;} /** *

Unique, case-sensitive identifier that you provide to ensure the idempotency * of the request.

*/ inline UpdateNodegroupVersionRequest& WithClientRequestToken(const char* value) { SetClientRequestToken(value); return *this;} private: Aws::String m_clusterName; bool m_clusterNameHasBeenSet = false; Aws::String m_nodegroupName; bool m_nodegroupNameHasBeenSet = false; Aws::String m_version; bool m_versionHasBeenSet = false; Aws::String m_releaseVersion; bool m_releaseVersionHasBeenSet = false; LaunchTemplateSpecification m_launchTemplate; bool m_launchTemplateHasBeenSet = false; bool m_force; bool m_forceHasBeenSet = false; Aws::String m_clientRequestToken; bool m_clientRequestTokenHasBeenSet = false; }; } // namespace Model } // namespace EKS } // namespace Aws