/** * 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 #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace EKS { namespace Model { class CreateClusterRequest; class CreateFargateProfileRequest; class CreateNodegroupRequest; class DeleteClusterRequest; class DeleteFargateProfileRequest; class DeleteNodegroupRequest; class DescribeClusterRequest; class DescribeFargateProfileRequest; class DescribeNodegroupRequest; class DescribeUpdateRequest; class ListClustersRequest; class ListFargateProfilesRequest; class ListNodegroupsRequest; class ListTagsForResourceRequest; class ListUpdatesRequest; class TagResourceRequest; class UntagResourceRequest; class UpdateClusterConfigRequest; class UpdateClusterVersionRequest; class UpdateNodegroupConfigRequest; class UpdateNodegroupVersionRequest; typedef Aws::Utils::Outcome CreateClusterOutcome; typedef Aws::Utils::Outcome CreateFargateProfileOutcome; typedef Aws::Utils::Outcome CreateNodegroupOutcome; typedef Aws::Utils::Outcome DeleteClusterOutcome; typedef Aws::Utils::Outcome DeleteFargateProfileOutcome; typedef Aws::Utils::Outcome DeleteNodegroupOutcome; typedef Aws::Utils::Outcome DescribeClusterOutcome; typedef Aws::Utils::Outcome DescribeFargateProfileOutcome; typedef Aws::Utils::Outcome DescribeNodegroupOutcome; typedef Aws::Utils::Outcome DescribeUpdateOutcome; typedef Aws::Utils::Outcome ListClustersOutcome; typedef Aws::Utils::Outcome ListFargateProfilesOutcome; typedef Aws::Utils::Outcome ListNodegroupsOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome ListUpdatesOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateClusterConfigOutcome; typedef Aws::Utils::Outcome UpdateClusterVersionOutcome; typedef Aws::Utils::Outcome UpdateNodegroupConfigOutcome; typedef Aws::Utils::Outcome UpdateNodegroupVersionOutcome; typedef std::future CreateClusterOutcomeCallable; typedef std::future CreateFargateProfileOutcomeCallable; typedef std::future CreateNodegroupOutcomeCallable; typedef std::future DeleteClusterOutcomeCallable; typedef std::future DeleteFargateProfileOutcomeCallable; typedef std::future DeleteNodegroupOutcomeCallable; typedef std::future DescribeClusterOutcomeCallable; typedef std::future DescribeFargateProfileOutcomeCallable; typedef std::future DescribeNodegroupOutcomeCallable; typedef std::future DescribeUpdateOutcomeCallable; typedef std::future ListClustersOutcomeCallable; typedef std::future ListFargateProfilesOutcomeCallable; typedef std::future ListNodegroupsOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future ListUpdatesOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateClusterConfigOutcomeCallable; typedef std::future UpdateClusterVersionOutcomeCallable; typedef std::future UpdateNodegroupConfigOutcomeCallable; typedef std::future UpdateNodegroupVersionOutcomeCallable; } // namespace Model class EKSClient; typedef std::function&) > CreateClusterResponseReceivedHandler; typedef std::function&) > CreateFargateProfileResponseReceivedHandler; typedef std::function&) > CreateNodegroupResponseReceivedHandler; typedef std::function&) > DeleteClusterResponseReceivedHandler; typedef std::function&) > DeleteFargateProfileResponseReceivedHandler; typedef std::function&) > DeleteNodegroupResponseReceivedHandler; typedef std::function&) > DescribeClusterResponseReceivedHandler; typedef std::function&) > DescribeFargateProfileResponseReceivedHandler; typedef std::function&) > DescribeNodegroupResponseReceivedHandler; typedef std::function&) > DescribeUpdateResponseReceivedHandler; typedef std::function&) > ListClustersResponseReceivedHandler; typedef std::function&) > ListFargateProfilesResponseReceivedHandler; typedef std::function&) > ListNodegroupsResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > ListUpdatesResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateClusterConfigResponseReceivedHandler; typedef std::function&) > UpdateClusterVersionResponseReceivedHandler; typedef std::function&) > UpdateNodegroupConfigResponseReceivedHandler; typedef std::function&) > UpdateNodegroupVersionResponseReceivedHandler; /** *

Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that * makes it easy for you to run Kubernetes on AWS without needing to stand up or * maintain your own Kubernetes control plane. Kubernetes is an open-source system * for automating the deployment, scaling, and management of containerized * applications.

Amazon EKS runs up-to-date versions of the open-source * Kubernetes software, so you can use all the existing plugins and tooling from * the Kubernetes community. Applications running on Amazon EKS are fully * compatible with applications running on any standard Kubernetes environment, * whether running in on-premises data centers or public clouds. This means that * you can easily migrate any standard Kubernetes application to Amazon EKS without * any code modification required.

*/ class AWS_EKS_API EKSClient : public Aws::Client::AWSJsonClient { public: typedef Aws::Client::AWSJsonClient BASECLASS; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ EKSClient(const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ EKSClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ EKSClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration()); virtual ~EKSClient(); /** *

Creates an Amazon EKS control plane.

The Amazon EKS control plane * consists of control plane instances that run the Kubernetes software, such as * etcd and the API server. The control plane runs in an account * managed by AWS, and the Kubernetes API is exposed via the Amazon EKS API server * endpoint. Each Amazon EKS cluster control plane is single-tenant and unique and * runs on its own set of Amazon EC2 instances.

The cluster control plane is * provisioned across multiple Availability Zones and fronted by an Elastic Load * Balancing Network Load Balancer. Amazon EKS also provisions elastic network * interfaces in your VPC subnets to provide connectivity from the control plane * instances to the worker nodes (for example, to support kubectl * exec, logs, and proxy data flows).

*

Amazon EKS worker nodes run in your AWS account and connect to your cluster's * control plane via the Kubernetes API server endpoint and a certificate file that * is created for your cluster.

You can use the * endpointPublicAccess and endpointPrivateAccess * parameters to enable or disable public and private access to your cluster's * Kubernetes API server endpoint. By default, public access is enabled, and * private access is disabled. For more information, see Amazon * EKS Cluster Endpoint Access Control in the Amazon EKS User Guide * .

You can use the logging parameter to enable or * disable exporting the Kubernetes control plane logs for your cluster to * CloudWatch Logs. By default, cluster control plane logs aren't exported to * CloudWatch Logs. For more information, see Amazon * EKS Cluster Control Plane Logs in the Amazon EKS User Guide * .

CloudWatch Logs ingestion, archive storage, and data * scanning rates apply to exported control plane logs. For more information, see * Amazon CloudWatch * Pricing.

Cluster creation typically takes between 10 and 15 * minutes. After you create an Amazon EKS cluster, you must configure your * Kubernetes tooling to communicate with the API server and launch worker nodes * into your cluster. For more information, see Managing * Cluster Authentication and Launching * Amazon EKS Worker Nodes in the Amazon EKS User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateClusterOutcome CreateCluster(const Model::CreateClusterRequest& request) const; /** *

Creates an Amazon EKS control plane.

The Amazon EKS control plane * consists of control plane instances that run the Kubernetes software, such as * etcd and the API server. The control plane runs in an account * managed by AWS, and the Kubernetes API is exposed via the Amazon EKS API server * endpoint. Each Amazon EKS cluster control plane is single-tenant and unique and * runs on its own set of Amazon EC2 instances.

The cluster control plane is * provisioned across multiple Availability Zones and fronted by an Elastic Load * Balancing Network Load Balancer. Amazon EKS also provisions elastic network * interfaces in your VPC subnets to provide connectivity from the control plane * instances to the worker nodes (for example, to support kubectl * exec, logs, and proxy data flows).

*

Amazon EKS worker nodes run in your AWS account and connect to your cluster's * control plane via the Kubernetes API server endpoint and a certificate file that * is created for your cluster.

You can use the * endpointPublicAccess and endpointPrivateAccess * parameters to enable or disable public and private access to your cluster's * Kubernetes API server endpoint. By default, public access is enabled, and * private access is disabled. For more information, see Amazon * EKS Cluster Endpoint Access Control in the Amazon EKS User Guide * .

You can use the logging parameter to enable or * disable exporting the Kubernetes control plane logs for your cluster to * CloudWatch Logs. By default, cluster control plane logs aren't exported to * CloudWatch Logs. For more information, see Amazon * EKS Cluster Control Plane Logs in the Amazon EKS User Guide * .

CloudWatch Logs ingestion, archive storage, and data * scanning rates apply to exported control plane logs. For more information, see * Amazon CloudWatch * Pricing.

Cluster creation typically takes between 10 and 15 * minutes. After you create an Amazon EKS cluster, you must configure your * Kubernetes tooling to communicate with the API server and launch worker nodes * into your cluster. For more information, see Managing * Cluster Authentication and Launching * Amazon EKS Worker Nodes in the Amazon EKS User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateClusterOutcomeCallable CreateClusterCallable(const Model::CreateClusterRequest& request) const; /** *

Creates an Amazon EKS control plane.

The Amazon EKS control plane * consists of control plane instances that run the Kubernetes software, such as * etcd and the API server. The control plane runs in an account * managed by AWS, and the Kubernetes API is exposed via the Amazon EKS API server * endpoint. Each Amazon EKS cluster control plane is single-tenant and unique and * runs on its own set of Amazon EC2 instances.

The cluster control plane is * provisioned across multiple Availability Zones and fronted by an Elastic Load * Balancing Network Load Balancer. Amazon EKS also provisions elastic network * interfaces in your VPC subnets to provide connectivity from the control plane * instances to the worker nodes (for example, to support kubectl * exec, logs, and proxy data flows).

*

Amazon EKS worker nodes run in your AWS account and connect to your cluster's * control plane via the Kubernetes API server endpoint and a certificate file that * is created for your cluster.

You can use the * endpointPublicAccess and endpointPrivateAccess * parameters to enable or disable public and private access to your cluster's * Kubernetes API server endpoint. By default, public access is enabled, and * private access is disabled. For more information, see Amazon * EKS Cluster Endpoint Access Control in the Amazon EKS User Guide * .

You can use the logging parameter to enable or * disable exporting the Kubernetes control plane logs for your cluster to * CloudWatch Logs. By default, cluster control plane logs aren't exported to * CloudWatch Logs. For more information, see Amazon * EKS Cluster Control Plane Logs in the Amazon EKS User Guide * .

CloudWatch Logs ingestion, archive storage, and data * scanning rates apply to exported control plane logs. For more information, see * Amazon CloudWatch * Pricing.

Cluster creation typically takes between 10 and 15 * minutes. After you create an Amazon EKS cluster, you must configure your * Kubernetes tooling to communicate with the API server and launch worker nodes * into your cluster. For more information, see Managing * Cluster Authentication and Launching * Amazon EKS Worker Nodes in the Amazon EKS User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateClusterAsync(const Model::CreateClusterRequest& request, const CreateClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates an AWS Fargate profile for your Amazon EKS cluster. You must have at * least one Fargate profile in a cluster to be able to run pods on Fargate.

*

The Fargate profile allows an administrator to declare which pods run on * Fargate and specify which pods run on which Fargate profile. This declaration is * done through the profile’s selectors. Each profile can have up to five selectors * that contain a namespace and labels. A namespace is required for every selector. * The label field consists of multiple optional key-value pairs. Pods that match * the selectors are scheduled on Fargate. If a to-be-scheduled pod matches any of * the selectors in the Fargate profile, then that pod is run on Fargate.

*

When you create a Fargate profile, you must specify a pod execution role to * use with the pods that are scheduled with the profile. This role is added to the * cluster's Kubernetes Role Based Access * Control (RBAC) for authorization so that the kubelet that is * running on the Fargate infrastructure can register with your Amazon EKS cluster * so that it can appear in your cluster as a node. The pod execution role also * provides IAM permissions to the Fargate infrastructure to allow read access to * Amazon ECR image repositories. For more information, see Pod * Execution Role in the Amazon EKS User Guide.

Fargate profiles * are immutable. However, you can create a new updated profile to replace an * existing profile and then delete the original after the updated profile has * finished creating.

If any Fargate profiles in a cluster are in the * DELETING status, you must wait for that Fargate profile to finish * deleting before you can create any other profiles in that cluster.

For * more information, see AWS * Fargate Profile in the Amazon EKS User Guide.

See * Also:

AWS * API Reference

*/ virtual Model::CreateFargateProfileOutcome CreateFargateProfile(const Model::CreateFargateProfileRequest& request) const; /** *

Creates an AWS Fargate profile for your Amazon EKS cluster. You must have at * least one Fargate profile in a cluster to be able to run pods on Fargate.

*

The Fargate profile allows an administrator to declare which pods run on * Fargate and specify which pods run on which Fargate profile. This declaration is * done through the profile’s selectors. Each profile can have up to five selectors * that contain a namespace and labels. A namespace is required for every selector. * The label field consists of multiple optional key-value pairs. Pods that match * the selectors are scheduled on Fargate. If a to-be-scheduled pod matches any of * the selectors in the Fargate profile, then that pod is run on Fargate.

*

When you create a Fargate profile, you must specify a pod execution role to * use with the pods that are scheduled with the profile. This role is added to the * cluster's Kubernetes Role Based Access * Control (RBAC) for authorization so that the kubelet that is * running on the Fargate infrastructure can register with your Amazon EKS cluster * so that it can appear in your cluster as a node. The pod execution role also * provides IAM permissions to the Fargate infrastructure to allow read access to * Amazon ECR image repositories. For more information, see Pod * Execution Role in the Amazon EKS User Guide.

Fargate profiles * are immutable. However, you can create a new updated profile to replace an * existing profile and then delete the original after the updated profile has * finished creating.

If any Fargate profiles in a cluster are in the * DELETING status, you must wait for that Fargate profile to finish * deleting before you can create any other profiles in that cluster.

For * more information, see AWS * Fargate Profile in the Amazon EKS User Guide.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateFargateProfileOutcomeCallable CreateFargateProfileCallable(const Model::CreateFargateProfileRequest& request) const; /** *

Creates an AWS Fargate profile for your Amazon EKS cluster. You must have at * least one Fargate profile in a cluster to be able to run pods on Fargate.

*

The Fargate profile allows an administrator to declare which pods run on * Fargate and specify which pods run on which Fargate profile. This declaration is * done through the profile’s selectors. Each profile can have up to five selectors * that contain a namespace and labels. A namespace is required for every selector. * The label field consists of multiple optional key-value pairs. Pods that match * the selectors are scheduled on Fargate. If a to-be-scheduled pod matches any of * the selectors in the Fargate profile, then that pod is run on Fargate.

*

When you create a Fargate profile, you must specify a pod execution role to * use with the pods that are scheduled with the profile. This role is added to the * cluster's Kubernetes Role Based Access * Control (RBAC) for authorization so that the kubelet that is * running on the Fargate infrastructure can register with your Amazon EKS cluster * so that it can appear in your cluster as a node. The pod execution role also * provides IAM permissions to the Fargate infrastructure to allow read access to * Amazon ECR image repositories. For more information, see Pod * Execution Role in the Amazon EKS User Guide.

Fargate profiles * are immutable. However, you can create a new updated profile to replace an * existing profile and then delete the original after the updated profile has * finished creating.

If any Fargate profiles in a cluster are in the * DELETING status, you must wait for that Fargate profile to finish * deleting before you can create any other profiles in that cluster.

For * more information, see AWS * Fargate Profile in the Amazon EKS User Guide.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateFargateProfileAsync(const Model::CreateFargateProfileRequest& request, const CreateFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Creates a managed worker node group for an Amazon EKS cluster. You can only * create a node group for your cluster that is equal to the current Kubernetes * version for the cluster. All node groups are created with the latest AMI release * version for the respective minor Kubernetes version of the cluster, unless you * deploy a custom AMI using a launch template. For more information about using * launch templates, see Launch * template support.

An Amazon EKS managed node group is an Amazon EC2 * Auto Scaling group and associated Amazon EC2 instances that are managed by AWS * for an Amazon EKS cluster. Each node group uses a version of the Amazon * EKS-optimized Amazon Linux 2 AMI. For more information, see Managed * Node Groups in the Amazon EKS User Guide.

See Also:

* AWS * API Reference

*/ virtual Model::CreateNodegroupOutcome CreateNodegroup(const Model::CreateNodegroupRequest& request) const; /** *

Creates a managed worker node group for an Amazon EKS cluster. You can only * create a node group for your cluster that is equal to the current Kubernetes * version for the cluster. All node groups are created with the latest AMI release * version for the respective minor Kubernetes version of the cluster, unless you * deploy a custom AMI using a launch template. For more information about using * launch templates, see Launch * template support.

An Amazon EKS managed node group is an Amazon EC2 * Auto Scaling group and associated Amazon EC2 instances that are managed by AWS * for an Amazon EKS cluster. Each node group uses a version of the Amazon * EKS-optimized Amazon Linux 2 AMI. For more information, see Managed * Node Groups in the Amazon EKS User Guide.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::CreateNodegroupOutcomeCallable CreateNodegroupCallable(const Model::CreateNodegroupRequest& request) const; /** *

Creates a managed worker node group for an Amazon EKS cluster. You can only * create a node group for your cluster that is equal to the current Kubernetes * version for the cluster. All node groups are created with the latest AMI release * version for the respective minor Kubernetes version of the cluster, unless you * deploy a custom AMI using a launch template. For more information about using * launch templates, see Launch * template support.

An Amazon EKS managed node group is an Amazon EC2 * Auto Scaling group and associated Amazon EC2 instances that are managed by AWS * for an Amazon EKS cluster. Each node group uses a version of the Amazon * EKS-optimized Amazon Linux 2 AMI. For more information, see Managed * Node Groups in the Amazon EKS User Guide.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void CreateNodegroupAsync(const Model::CreateNodegroupRequest& request, const CreateNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes the Amazon EKS cluster control plane.

If you have active * services in your cluster that are associated with a load balancer, you must * delete those services before deleting the cluster so that the load balancers are * deleted properly. Otherwise, you can have orphaned resources in your VPC that * prevent you from being able to delete the VPC. For more information, see Deleting * a Cluster in the Amazon EKS User Guide.

If you have managed * node groups or Fargate profiles attached to the cluster, you must delete them * first. For more information, see DeleteNodegroup and * DeleteFargateProfile.

See Also:

AWS * API Reference

*/ virtual Model::DeleteClusterOutcome DeleteCluster(const Model::DeleteClusterRequest& request) const; /** *

Deletes the Amazon EKS cluster control plane.

If you have active * services in your cluster that are associated with a load balancer, you must * delete those services before deleting the cluster so that the load balancers are * deleted properly. Otherwise, you can have orphaned resources in your VPC that * prevent you from being able to delete the VPC. For more information, see Deleting * a Cluster in the Amazon EKS User Guide.

If you have managed * node groups or Fargate profiles attached to the cluster, you must delete them * first. For more information, see DeleteNodegroup and * DeleteFargateProfile.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteClusterOutcomeCallable DeleteClusterCallable(const Model::DeleteClusterRequest& request) const; /** *

Deletes the Amazon EKS cluster control plane.

If you have active * services in your cluster that are associated with a load balancer, you must * delete those services before deleting the cluster so that the load balancers are * deleted properly. Otherwise, you can have orphaned resources in your VPC that * prevent you from being able to delete the VPC. For more information, see Deleting * a Cluster in the Amazon EKS User Guide.

If you have managed * node groups or Fargate profiles attached to the cluster, you must delete them * first. For more information, see DeleteNodegroup and * DeleteFargateProfile.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteClusterAsync(const Model::DeleteClusterRequest& request, const DeleteClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes an AWS Fargate profile.

When you delete a Fargate profile, any * pods running on Fargate that were created with the profile are deleted. If those * pods match another Fargate profile, then they are scheduled on Fargate with that * profile. If they no longer match any Fargate profiles, then they are not * scheduled on Fargate and they may remain in a pending state.

Only one * Fargate profile in a cluster can be in the DELETING status at a * time. You must wait for a Fargate profile to finish deleting before you can * delete any other profiles in that cluster.

See Also:

AWS * API Reference

*/ virtual Model::DeleteFargateProfileOutcome DeleteFargateProfile(const Model::DeleteFargateProfileRequest& request) const; /** *

Deletes an AWS Fargate profile.

When you delete a Fargate profile, any * pods running on Fargate that were created with the profile are deleted. If those * pods match another Fargate profile, then they are scheduled on Fargate with that * profile. If they no longer match any Fargate profiles, then they are not * scheduled on Fargate and they may remain in a pending state.

Only one * Fargate profile in a cluster can be in the DELETING status at a * time. You must wait for a Fargate profile to finish deleting before you can * delete any other profiles in that cluster.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteFargateProfileOutcomeCallable DeleteFargateProfileCallable(const Model::DeleteFargateProfileRequest& request) const; /** *

Deletes an AWS Fargate profile.

When you delete a Fargate profile, any * pods running on Fargate that were created with the profile are deleted. If those * pods match another Fargate profile, then they are scheduled on Fargate with that * profile. If they no longer match any Fargate profiles, then they are not * scheduled on Fargate and they may remain in a pending state.

Only one * Fargate profile in a cluster can be in the DELETING status at a * time. You must wait for a Fargate profile to finish deleting before you can * delete any other profiles in that cluster.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteFargateProfileAsync(const Model::DeleteFargateProfileRequest& request, const DeleteFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes an Amazon EKS node group for a cluster.

See Also:

AWS * API Reference

*/ virtual Model::DeleteNodegroupOutcome DeleteNodegroup(const Model::DeleteNodegroupRequest& request) const; /** *

Deletes an Amazon EKS node group for a cluster.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DeleteNodegroupOutcomeCallable DeleteNodegroupCallable(const Model::DeleteNodegroupRequest& request) const; /** *

Deletes an Amazon EKS node group for a cluster.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DeleteNodegroupAsync(const Model::DeleteNodegroupRequest& request, const DeleteNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns descriptive information about an Amazon EKS cluster.

The API * server endpoint and certificate authority data returned by this operation are * required for kubelet and kubectl to communicate with * your Kubernetes API server. For more information, see Create * a kubeconfig for Amazon EKS.

The API server endpoint and * certificate authority data aren't available until the cluster reaches the * ACTIVE state.

See Also:

AWS * API Reference

*/ virtual Model::DescribeClusterOutcome DescribeCluster(const Model::DescribeClusterRequest& request) const; /** *

Returns descriptive information about an Amazon EKS cluster.

The API * server endpoint and certificate authority data returned by this operation are * required for kubelet and kubectl to communicate with * your Kubernetes API server. For more information, see Create * a kubeconfig for Amazon EKS.

The API server endpoint and * certificate authority data aren't available until the cluster reaches the * ACTIVE state.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeClusterOutcomeCallable DescribeClusterCallable(const Model::DescribeClusterRequest& request) const; /** *

Returns descriptive information about an Amazon EKS cluster.

The API * server endpoint and certificate authority data returned by this operation are * required for kubelet and kubectl to communicate with * your Kubernetes API server. For more information, see Create * a kubeconfig for Amazon EKS.

The API server endpoint and * certificate authority data aren't available until the cluster reaches the * ACTIVE state.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeClusterAsync(const Model::DescribeClusterRequest& request, const DescribeClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns descriptive information about an AWS Fargate profile.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeFargateProfileOutcome DescribeFargateProfile(const Model::DescribeFargateProfileRequest& request) const; /** *

Returns descriptive information about an AWS Fargate profile.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeFargateProfileOutcomeCallable DescribeFargateProfileCallable(const Model::DescribeFargateProfileRequest& request) const; /** *

Returns descriptive information about an AWS Fargate profile.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeFargateProfileAsync(const Model::DescribeFargateProfileRequest& request, const DescribeFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns descriptive information about an Amazon EKS node group.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeNodegroupOutcome DescribeNodegroup(const Model::DescribeNodegroupRequest& request) const; /** *

Returns descriptive information about an Amazon EKS node group.

See * Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeNodegroupOutcomeCallable DescribeNodegroupCallable(const Model::DescribeNodegroupRequest& request) const; /** *

Returns descriptive information about an Amazon EKS node group.

See * Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeNodegroupAsync(const Model::DescribeNodegroupRequest& request, const DescribeNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Returns descriptive information about an update against your Amazon EKS * cluster or associated managed node group.

When the status of the update * is Succeeded, the update is complete. If an update fails, the * status is Failed, and an error detail explains the reason for the * failure.

See Also:

AWS * API Reference

*/ virtual Model::DescribeUpdateOutcome DescribeUpdate(const Model::DescribeUpdateRequest& request) const; /** *

Returns descriptive information about an update against your Amazon EKS * cluster or associated managed node group.

When the status of the update * is Succeeded, the update is complete. If an update fails, the * status is Failed, and an error detail explains the reason for the * failure.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::DescribeUpdateOutcomeCallable DescribeUpdateCallable(const Model::DescribeUpdateRequest& request) const; /** *

Returns descriptive information about an update against your Amazon EKS * cluster or associated managed node group.

When the status of the update * is Succeeded, the update is complete. If an update fails, the * status is Failed, and an error detail explains the reason for the * failure.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void DescribeUpdateAsync(const Model::DescribeUpdateRequest& request, const DescribeUpdateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the Amazon EKS clusters in your AWS account in the specified * Region.

See Also:

AWS * API Reference

*/ virtual Model::ListClustersOutcome ListClusters(const Model::ListClustersRequest& request) const; /** *

Lists the Amazon EKS clusters in your AWS account in the specified * Region.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListClustersOutcomeCallable ListClustersCallable(const Model::ListClustersRequest& request) const; /** *

Lists the Amazon EKS clusters in your AWS account in the specified * Region.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListClustersAsync(const Model::ListClustersRequest& request, const ListClustersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the AWS Fargate profiles associated with the specified cluster in your * AWS account in the specified Region.

See Also:

AWS * API Reference

*/ virtual Model::ListFargateProfilesOutcome ListFargateProfiles(const Model::ListFargateProfilesRequest& request) const; /** *

Lists the AWS Fargate profiles associated with the specified cluster in your * AWS account in the specified Region.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListFargateProfilesOutcomeCallable ListFargateProfilesCallable(const Model::ListFargateProfilesRequest& request) const; /** *

Lists the AWS Fargate profiles associated with the specified cluster in your * AWS account in the specified Region.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListFargateProfilesAsync(const Model::ListFargateProfilesRequest& request, const ListFargateProfilesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the Amazon EKS managed node groups associated with the specified * cluster in your AWS account in the specified Region. Self-managed node groups * are not listed.

See Also:

AWS * API Reference

*/ virtual Model::ListNodegroupsOutcome ListNodegroups(const Model::ListNodegroupsRequest& request) const; /** *

Lists the Amazon EKS managed node groups associated with the specified * cluster in your AWS account in the specified Region. Self-managed node groups * are not listed.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListNodegroupsOutcomeCallable ListNodegroupsCallable(const Model::ListNodegroupsRequest& request) const; /** *

Lists the Amazon EKS managed node groups associated with the specified * cluster in your AWS account in the specified Region. Self-managed node groups * are not listed.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListNodegroupsAsync(const Model::ListNodegroupsRequest& request, const ListNodegroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

List the tags for an Amazon EKS resource.

See Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** *

List the tags for an Amazon EKS resource.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const Model::ListTagsForResourceRequest& request) const; /** *

List the tags for an Amazon EKS resource.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListTagsForResourceAsync(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Lists the updates associated with an Amazon EKS cluster or managed node group * in your AWS account, in the specified Region.

See Also:

AWS API * Reference

*/ virtual Model::ListUpdatesOutcome ListUpdates(const Model::ListUpdatesRequest& request) const; /** *

Lists the updates associated with an Amazon EKS cluster or managed node group * in your AWS account, in the specified Region.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::ListUpdatesOutcomeCallable ListUpdatesCallable(const Model::ListUpdatesRequest& request) const; /** *

Lists the updates associated with an Amazon EKS cluster or managed node group * in your AWS account, in the specified Region.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void ListUpdatesAsync(const Model::ListUpdatesRequest& request, const ListUpdatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Associates the specified tags to a resource with the specified * resourceArn. If existing tags on a resource are not specified in * the request parameters, they are not changed. When a resource is deleted, the * tags associated with that resource are deleted as well. Tags that you create for * Amazon EKS resources do not propagate to any other resources associated with the * cluster. For example, if you tag a cluster with this operation, that tag does * not automatically propagate to the subnets and worker nodes associated with the * cluster.

See Also:

AWS API * Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** *

Associates the specified tags to a resource with the specified * resourceArn. If existing tags on a resource are not specified in * the request parameters, they are not changed. When a resource is deleted, the * tags associated with that resource are deleted as well. Tags that you create for * Amazon EKS resources do not propagate to any other resources associated with the * cluster. For example, if you tag a cluster with this operation, that tag does * not automatically propagate to the subnets and worker nodes associated with the * cluster.

See Also:

AWS API * Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::TagResourceOutcomeCallable TagResourceCallable(const Model::TagResourceRequest& request) const; /** *

Associates the specified tags to a resource with the specified * resourceArn. If existing tags on a resource are not specified in * the request parameters, they are not changed. When a resource is deleted, the * tags associated with that resource are deleted as well. Tags that you create for * Amazon EKS resources do not propagate to any other resources associated with the * cluster. For example, if you tag a cluster with this operation, that tag does * not automatically propagate to the subnets and worker nodes associated with the * cluster.

See Also:

AWS API * Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void TagResourceAsync(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Deletes specified tags from a resource.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** *

Deletes specified tags from a resource.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UntagResourceOutcomeCallable UntagResourceCallable(const Model::UntagResourceRequest& request) const; /** *

Deletes specified tags from a resource.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UntagResourceAsync(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates an Amazon EKS cluster configuration. Your cluster continues to * function during the update. The response output includes an update ID that you * can use to track the status of your cluster update with the * DescribeUpdate API operation.

You can use this API operation to * enable or disable exporting the Kubernetes control plane logs for your cluster * to CloudWatch Logs. By default, cluster control plane logs aren't exported to * CloudWatch Logs. For more information, see Amazon * EKS Cluster Control Plane Logs in the Amazon EKS User Guide * .

CloudWatch Logs ingestion, archive storage, and data * scanning rates apply to exported control plane logs. For more information, see * Amazon CloudWatch * Pricing.

You can also use this API operation to enable or * disable public and private access to your cluster's Kubernetes API server * endpoint. By default, public access is enabled, and private access is disabled. * For more information, see Amazon * EKS Cluster Endpoint Access Control in the Amazon EKS User Guide * .

At this time, you can not update the subnets or * security group IDs for an existing cluster.

Cluster updates * are asynchronous, and they should finish within a few minutes. During an update, * the cluster status moves to UPDATING (this status transition is * eventually consistent). When the update is complete (either Failed * or Successful), the cluster status moves to * Active.

See Also:

AWS * API Reference

*/ virtual Model::UpdateClusterConfigOutcome UpdateClusterConfig(const Model::UpdateClusterConfigRequest& request) const; /** *

Updates an Amazon EKS cluster configuration. Your cluster continues to * function during the update. The response output includes an update ID that you * can use to track the status of your cluster update with the * DescribeUpdate API operation.

You can use this API operation to * enable or disable exporting the Kubernetes control plane logs for your cluster * to CloudWatch Logs. By default, cluster control plane logs aren't exported to * CloudWatch Logs. For more information, see Amazon * EKS Cluster Control Plane Logs in the Amazon EKS User Guide * .

CloudWatch Logs ingestion, archive storage, and data * scanning rates apply to exported control plane logs. For more information, see * Amazon CloudWatch * Pricing.

You can also use this API operation to enable or * disable public and private access to your cluster's Kubernetes API server * endpoint. By default, public access is enabled, and private access is disabled. * For more information, see Amazon * EKS Cluster Endpoint Access Control in the Amazon EKS User Guide * .

At this time, you can not update the subnets or * security group IDs for an existing cluster.

Cluster updates * are asynchronous, and they should finish within a few minutes. During an update, * the cluster status moves to UPDATING (this status transition is * eventually consistent). When the update is complete (either Failed * or Successful), the cluster status moves to * Active.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateClusterConfigOutcomeCallable UpdateClusterConfigCallable(const Model::UpdateClusterConfigRequest& request) const; /** *

Updates an Amazon EKS cluster configuration. Your cluster continues to * function during the update. The response output includes an update ID that you * can use to track the status of your cluster update with the * DescribeUpdate API operation.

You can use this API operation to * enable or disable exporting the Kubernetes control plane logs for your cluster * to CloudWatch Logs. By default, cluster control plane logs aren't exported to * CloudWatch Logs. For more information, see Amazon * EKS Cluster Control Plane Logs in the Amazon EKS User Guide * .

CloudWatch Logs ingestion, archive storage, and data * scanning rates apply to exported control plane logs. For more information, see * Amazon CloudWatch * Pricing.

You can also use this API operation to enable or * disable public and private access to your cluster's Kubernetes API server * endpoint. By default, public access is enabled, and private access is disabled. * For more information, see Amazon * EKS Cluster Endpoint Access Control in the Amazon EKS User Guide * .

At this time, you can not update the subnets or * security group IDs for an existing cluster.

Cluster updates * are asynchronous, and they should finish within a few minutes. During an update, * the cluster status moves to UPDATING (this status transition is * eventually consistent). When the update is complete (either Failed * or Successful), the cluster status moves to * Active.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateClusterConfigAsync(const Model::UpdateClusterConfigRequest& request, const UpdateClusterConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates an Amazon EKS cluster to the specified Kubernetes version. Your * cluster continues to function during the update. The response output includes an * update ID that you can use to track the status of your cluster update with the * DescribeUpdate API operation.

Cluster updates are asynchronous, * and they should finish within a few minutes. During an update, the cluster * status moves to UPDATING (this status transition is eventually * consistent). When the update is complete (either Failed or * Successful), the cluster status moves to Active.

*

If your cluster has managed node groups attached to it, all of your node * groups’ Kubernetes versions must match the cluster’s Kubernetes version in order * to update the cluster to a new Kubernetes version.

See Also:

AWS * API Reference

*/ virtual Model::UpdateClusterVersionOutcome UpdateClusterVersion(const Model::UpdateClusterVersionRequest& request) const; /** *

Updates an Amazon EKS cluster to the specified Kubernetes version. Your * cluster continues to function during the update. The response output includes an * update ID that you can use to track the status of your cluster update with the * DescribeUpdate API operation.

Cluster updates are asynchronous, * and they should finish within a few minutes. During an update, the cluster * status moves to UPDATING (this status transition is eventually * consistent). When the update is complete (either Failed or * Successful), the cluster status moves to Active.

*

If your cluster has managed node groups attached to it, all of your node * groups’ Kubernetes versions must match the cluster’s Kubernetes version in order * to update the cluster to a new Kubernetes version.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateClusterVersionOutcomeCallable UpdateClusterVersionCallable(const Model::UpdateClusterVersionRequest& request) const; /** *

Updates an Amazon EKS cluster to the specified Kubernetes version. Your * cluster continues to function during the update. The response output includes an * update ID that you can use to track the status of your cluster update with the * DescribeUpdate API operation.

Cluster updates are asynchronous, * and they should finish within a few minutes. During an update, the cluster * status moves to UPDATING (this status transition is eventually * consistent). When the update is complete (either Failed or * Successful), the cluster status moves to Active.

*

If your cluster has managed node groups attached to it, all of your node * groups’ Kubernetes versions must match the cluster’s Kubernetes version in order * to update the cluster to a new Kubernetes version.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateClusterVersionAsync(const Model::UpdateClusterVersionRequest& request, const UpdateClusterVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates an Amazon EKS managed node group configuration. Your node group * continues to function during the update. The response output includes an update * ID that you can use to track the status of your node group update with the * DescribeUpdate API operation. Currently you can update the Kubernetes * labels for a node group or the scaling configuration.

See Also:

* AWS * API Reference

*/ virtual Model::UpdateNodegroupConfigOutcome UpdateNodegroupConfig(const Model::UpdateNodegroupConfigRequest& request) const; /** *

Updates an Amazon EKS managed node group configuration. Your node group * continues to function during the update. The response output includes an update * ID that you can use to track the status of your node group update with the * DescribeUpdate API operation. Currently you can update the Kubernetes * labels for a node group or the scaling configuration.

See Also:

* AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateNodegroupConfigOutcomeCallable UpdateNodegroupConfigCallable(const Model::UpdateNodegroupConfigRequest& request) const; /** *

Updates an Amazon EKS managed node group configuration. Your node group * continues to function during the update. The response output includes an update * ID that you can use to track the status of your node group update with the * DescribeUpdate API operation. Currently you can update the Kubernetes * labels for a node group or the scaling configuration.

See Also:

* AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateNodegroupConfigAsync(const Model::UpdateNodegroupConfigRequest& request, const UpdateNodegroupConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; /** *

Updates the Kubernetes version or AMI version of an Amazon EKS managed node * group.

You can update a node group using a launch template only if the * node group was originally deployed with a launch template. If you need to update * a custom AMI in a node group that was deployed with a launch template, then * update your custom AMI, specify the new ID in a new version of the launch * template, and then update the node group to the new version of the launch * template.

If you update without a launch template, then you can update to * the latest available AMI version of a node group's current Kubernetes version by * not specifying a Kubernetes version in the request. You can update to the latest * AMI version of your cluster's current Kubernetes version by specifying your * cluster's Kubernetes version in the request. For more information, see Amazon * EKS-Optimized Linux AMI Versions in the Amazon EKS User Guide.

*

You cannot roll back a node group to an earlier Kubernetes version or AMI * version.

When a node in a managed node group is terminated due to a * scaling action or update, the pods in that node are drained first. Amazon EKS * attempts to drain the nodes gracefully and will fail if it is unable to do so. * You can force the update if Amazon EKS is unable to drain the nodes * as a result of a pod disruption budget issue.

See Also:

AWS * API Reference

*/ virtual Model::UpdateNodegroupVersionOutcome UpdateNodegroupVersion(const Model::UpdateNodegroupVersionRequest& request) const; /** *

Updates the Kubernetes version or AMI version of an Amazon EKS managed node * group.

You can update a node group using a launch template only if the * node group was originally deployed with a launch template. If you need to update * a custom AMI in a node group that was deployed with a launch template, then * update your custom AMI, specify the new ID in a new version of the launch * template, and then update the node group to the new version of the launch * template.

If you update without a launch template, then you can update to * the latest available AMI version of a node group's current Kubernetes version by * not specifying a Kubernetes version in the request. You can update to the latest * AMI version of your cluster's current Kubernetes version by specifying your * cluster's Kubernetes version in the request. For more information, see Amazon * EKS-Optimized Linux AMI Versions in the Amazon EKS User Guide.

*

You cannot roll back a node group to an earlier Kubernetes version or AMI * version.

When a node in a managed node group is terminated due to a * scaling action or update, the pods in that node are drained first. Amazon EKS * attempts to drain the nodes gracefully and will fail if it is unable to do so. * You can force the update if Amazon EKS is unable to drain the nodes * as a result of a pod disruption budget issue.

See Also:

AWS * API Reference

* * returns a future to the operation so that it can be executed in parallel to other requests. */ virtual Model::UpdateNodegroupVersionOutcomeCallable UpdateNodegroupVersionCallable(const Model::UpdateNodegroupVersionRequest& request) const; /** *

Updates the Kubernetes version or AMI version of an Amazon EKS managed node * group.

You can update a node group using a launch template only if the * node group was originally deployed with a launch template. If you need to update * a custom AMI in a node group that was deployed with a launch template, then * update your custom AMI, specify the new ID in a new version of the launch * template, and then update the node group to the new version of the launch * template.

If you update without a launch template, then you can update to * the latest available AMI version of a node group's current Kubernetes version by * not specifying a Kubernetes version in the request. You can update to the latest * AMI version of your cluster's current Kubernetes version by specifying your * cluster's Kubernetes version in the request. For more information, see Amazon * EKS-Optimized Linux AMI Versions in the Amazon EKS User Guide.

*

You cannot roll back a node group to an earlier Kubernetes version or AMI * version.

When a node in a managed node group is terminated due to a * scaling action or update, the pods in that node are drained first. Amazon EKS * attempts to drain the nodes gracefully and will fail if it is unable to do so. * You can force the update if Amazon EKS is unable to drain the nodes * as a result of a pod disruption budget issue.

See Also:

AWS * API Reference

* * Queues the request into a thread executor and triggers associated callback when operation has finished. */ virtual void UpdateNodegroupVersionAsync(const Model::UpdateNodegroupVersionRequest& request, const UpdateNodegroupVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const; void OverrideEndpoint(const Aws::String& endpoint); private: void init(const Aws::Client::ClientConfiguration& clientConfiguration); void CreateClusterAsyncHelper(const Model::CreateClusterRequest& request, const CreateClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateFargateProfileAsyncHelper(const Model::CreateFargateProfileRequest& request, const CreateFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void CreateNodegroupAsyncHelper(const Model::CreateNodegroupRequest& request, const CreateNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteClusterAsyncHelper(const Model::DeleteClusterRequest& request, const DeleteClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteFargateProfileAsyncHelper(const Model::DeleteFargateProfileRequest& request, const DeleteFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DeleteNodegroupAsyncHelper(const Model::DeleteNodegroupRequest& request, const DeleteNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeClusterAsyncHelper(const Model::DescribeClusterRequest& request, const DescribeClusterResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeFargateProfileAsyncHelper(const Model::DescribeFargateProfileRequest& request, const DescribeFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeNodegroupAsyncHelper(const Model::DescribeNodegroupRequest& request, const DescribeNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context) const; void DescribeUpdateAsyncHelper(const Model::DescribeUpdateRequest& request, const DescribeUpdateResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListClustersAsyncHelper(const Model::ListClustersRequest& request, const ListClustersResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListFargateProfilesAsyncHelper(const Model::ListFargateProfilesRequest& request, const ListFargateProfilesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListNodegroupsAsyncHelper(const Model::ListNodegroupsRequest& request, const ListNodegroupsResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void ListUpdatesAsyncHelper(const Model::ListUpdatesRequest& request, const ListUpdatesResponseReceivedHandler& handler, const std::shared_ptr& context) const; void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateClusterConfigAsyncHelper(const Model::UpdateClusterConfigRequest& request, const UpdateClusterConfigResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateClusterVersionAsyncHelper(const Model::UpdateClusterVersionRequest& request, const UpdateClusterVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateNodegroupConfigAsyncHelper(const Model::UpdateNodegroupConfigRequest& request, const UpdateNodegroupConfigResponseReceivedHandler& handler, const std::shared_ptr& context) const; void UpdateNodegroupVersionAsyncHelper(const Model::UpdateNodegroupVersionRequest& request, const UpdateNodegroupVersionResponseReceivedHandler& handler, const std::shared_ptr& context) const; Aws::String m_uri; Aws::String m_configScheme; std::shared_ptr m_executor; }; } // namespace EKS } // namespace Aws