This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/aws-cpp-sdk-eks/include/aws/eks/EKSClient.h

1291 lines
91 KiB
C
Raw Normal View History

/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include <aws/eks/EKS_EXPORTS.h>
#include <aws/eks/EKSErrors.h>
#include <aws/core/client/AWSError.h>
#include <aws/core/client/ClientConfiguration.h>
#include <aws/core/client/AWSClient.h>
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/core/utils/json/JsonSerializer.h>
#include <aws/eks/model/CreateClusterResult.h>
#include <aws/eks/model/CreateFargateProfileResult.h>
#include <aws/eks/model/CreateNodegroupResult.h>
#include <aws/eks/model/DeleteClusterResult.h>
#include <aws/eks/model/DeleteFargateProfileResult.h>
#include <aws/eks/model/DeleteNodegroupResult.h>
#include <aws/eks/model/DescribeClusterResult.h>
#include <aws/eks/model/DescribeFargateProfileResult.h>
#include <aws/eks/model/DescribeNodegroupResult.h>
#include <aws/eks/model/DescribeUpdateResult.h>
#include <aws/eks/model/ListClustersResult.h>
#include <aws/eks/model/ListFargateProfilesResult.h>
#include <aws/eks/model/ListNodegroupsResult.h>
#include <aws/eks/model/ListTagsForResourceResult.h>
#include <aws/eks/model/ListUpdatesResult.h>
#include <aws/eks/model/TagResourceResult.h>
#include <aws/eks/model/UntagResourceResult.h>
#include <aws/eks/model/UpdateClusterConfigResult.h>
#include <aws/eks/model/UpdateClusterVersionResult.h>
#include <aws/eks/model/UpdateNodegroupConfigResult.h>
#include <aws/eks/model/UpdateNodegroupVersionResult.h>
#include <aws/core/client/AsyncCallerContext.h>
#include <aws/core/http/HttpTypes.h>
#include <future>
#include <functional>
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<CreateClusterResult, EKSError> CreateClusterOutcome;
typedef Aws::Utils::Outcome<CreateFargateProfileResult, EKSError> CreateFargateProfileOutcome;
typedef Aws::Utils::Outcome<CreateNodegroupResult, EKSError> CreateNodegroupOutcome;
typedef Aws::Utils::Outcome<DeleteClusterResult, EKSError> DeleteClusterOutcome;
typedef Aws::Utils::Outcome<DeleteFargateProfileResult, EKSError> DeleteFargateProfileOutcome;
typedef Aws::Utils::Outcome<DeleteNodegroupResult, EKSError> DeleteNodegroupOutcome;
typedef Aws::Utils::Outcome<DescribeClusterResult, EKSError> DescribeClusterOutcome;
typedef Aws::Utils::Outcome<DescribeFargateProfileResult, EKSError> DescribeFargateProfileOutcome;
typedef Aws::Utils::Outcome<DescribeNodegroupResult, EKSError> DescribeNodegroupOutcome;
typedef Aws::Utils::Outcome<DescribeUpdateResult, EKSError> DescribeUpdateOutcome;
typedef Aws::Utils::Outcome<ListClustersResult, EKSError> ListClustersOutcome;
typedef Aws::Utils::Outcome<ListFargateProfilesResult, EKSError> ListFargateProfilesOutcome;
typedef Aws::Utils::Outcome<ListNodegroupsResult, EKSError> ListNodegroupsOutcome;
typedef Aws::Utils::Outcome<ListTagsForResourceResult, EKSError> ListTagsForResourceOutcome;
typedef Aws::Utils::Outcome<ListUpdatesResult, EKSError> ListUpdatesOutcome;
typedef Aws::Utils::Outcome<TagResourceResult, EKSError> TagResourceOutcome;
typedef Aws::Utils::Outcome<UntagResourceResult, EKSError> UntagResourceOutcome;
typedef Aws::Utils::Outcome<UpdateClusterConfigResult, EKSError> UpdateClusterConfigOutcome;
typedef Aws::Utils::Outcome<UpdateClusterVersionResult, EKSError> UpdateClusterVersionOutcome;
typedef Aws::Utils::Outcome<UpdateNodegroupConfigResult, EKSError> UpdateNodegroupConfigOutcome;
typedef Aws::Utils::Outcome<UpdateNodegroupVersionResult, EKSError> UpdateNodegroupVersionOutcome;
typedef std::future<CreateClusterOutcome> CreateClusterOutcomeCallable;
typedef std::future<CreateFargateProfileOutcome> CreateFargateProfileOutcomeCallable;
typedef std::future<CreateNodegroupOutcome> CreateNodegroupOutcomeCallable;
typedef std::future<DeleteClusterOutcome> DeleteClusterOutcomeCallable;
typedef std::future<DeleteFargateProfileOutcome> DeleteFargateProfileOutcomeCallable;
typedef std::future<DeleteNodegroupOutcome> DeleteNodegroupOutcomeCallable;
typedef std::future<DescribeClusterOutcome> DescribeClusterOutcomeCallable;
typedef std::future<DescribeFargateProfileOutcome> DescribeFargateProfileOutcomeCallable;
typedef std::future<DescribeNodegroupOutcome> DescribeNodegroupOutcomeCallable;
typedef std::future<DescribeUpdateOutcome> DescribeUpdateOutcomeCallable;
typedef std::future<ListClustersOutcome> ListClustersOutcomeCallable;
typedef std::future<ListFargateProfilesOutcome> ListFargateProfilesOutcomeCallable;
typedef std::future<ListNodegroupsOutcome> ListNodegroupsOutcomeCallable;
typedef std::future<ListTagsForResourceOutcome> ListTagsForResourceOutcomeCallable;
typedef std::future<ListUpdatesOutcome> ListUpdatesOutcomeCallable;
typedef std::future<TagResourceOutcome> TagResourceOutcomeCallable;
typedef std::future<UntagResourceOutcome> UntagResourceOutcomeCallable;
typedef std::future<UpdateClusterConfigOutcome> UpdateClusterConfigOutcomeCallable;
typedef std::future<UpdateClusterVersionOutcome> UpdateClusterVersionOutcomeCallable;
typedef std::future<UpdateNodegroupConfigOutcome> UpdateNodegroupConfigOutcomeCallable;
typedef std::future<UpdateNodegroupVersionOutcome> UpdateNodegroupVersionOutcomeCallable;
} // namespace Model
class EKSClient;
typedef std::function<void(const EKSClient*, const Model::CreateClusterRequest&, const Model::CreateClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateClusterResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::CreateFargateProfileRequest&, const Model::CreateFargateProfileOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateFargateProfileResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::CreateNodegroupRequest&, const Model::CreateNodegroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > CreateNodegroupResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::DeleteClusterRequest&, const Model::DeleteClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteClusterResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::DeleteFargateProfileRequest&, const Model::DeleteFargateProfileOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteFargateProfileResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::DeleteNodegroupRequest&, const Model::DeleteNodegroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DeleteNodegroupResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::DescribeClusterRequest&, const Model::DescribeClusterOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeClusterResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::DescribeFargateProfileRequest&, const Model::DescribeFargateProfileOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeFargateProfileResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::DescribeNodegroupRequest&, const Model::DescribeNodegroupOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeNodegroupResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::DescribeUpdateRequest&, const Model::DescribeUpdateOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > DescribeUpdateResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::ListClustersRequest&, const Model::ListClustersOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListClustersResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::ListFargateProfilesRequest&, const Model::ListFargateProfilesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListFargateProfilesResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::ListNodegroupsRequest&, const Model::ListNodegroupsOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListNodegroupsResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::ListTagsForResourceRequest&, const Model::ListTagsForResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListTagsForResourceResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::ListUpdatesRequest&, const Model::ListUpdatesOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > ListUpdatesResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::TagResourceRequest&, const Model::TagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > TagResourceResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::UntagResourceRequest&, const Model::UntagResourceOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UntagResourceResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::UpdateClusterConfigRequest&, const Model::UpdateClusterConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateClusterConfigResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::UpdateClusterVersionRequest&, const Model::UpdateClusterVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateClusterVersionResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::UpdateNodegroupConfigRequest&, const Model::UpdateNodegroupConfigOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateNodegroupConfigResponseReceivedHandler;
typedef std::function<void(const EKSClient*, const Model::UpdateNodegroupVersionRequest&, const Model::UpdateNodegroupVersionOutcome&, const std::shared_ptr<const Aws::Client::AsyncCallerContext>&) > UpdateNodegroupVersionResponseReceivedHandler;
/**
* <p>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. </p> <p>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.</p>
*/
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<Aws::Auth::AWSCredentialsProvider>& credentialsProvider,
const Aws::Client::ClientConfiguration& clientConfiguration = Aws::Client::ClientConfiguration());
virtual ~EKSClient();
/**
* <p>Creates an Amazon EKS control plane. </p> <p>The Amazon EKS control plane
* consists of control plane instances that run the Kubernetes software, such as
* <code>etcd</code> 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.</p> <p>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 <code>kubectl
* exec</code>, <code>logs</code>, and <code>proxy</code> data flows).</p>
* <p>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.</p> <p>You can use the
* <code>endpointPublicAccess</code> and <code>endpointPrivateAccess</code>
* 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon
* EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>. </p> <p>You can use the <code>logging</code> 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon
* EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>.</p> <p>CloudWatch Logs ingestion, archive storage, and data
* scanning rates apply to exported control plane logs. For more information, see
* <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
* Pricing</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html">Managing
* Cluster Authentication</a> and <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html">Launching
* Amazon EKS Worker Nodes</a> in the <i>Amazon EKS User Guide</i>.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster">AWS
* API Reference</a></p>
*/
virtual Model::CreateClusterOutcome CreateCluster(const Model::CreateClusterRequest& request) const;
/**
* <p>Creates an Amazon EKS control plane. </p> <p>The Amazon EKS control plane
* consists of control plane instances that run the Kubernetes software, such as
* <code>etcd</code> 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.</p> <p>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 <code>kubectl
* exec</code>, <code>logs</code>, and <code>proxy</code> data flows).</p>
* <p>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.</p> <p>You can use the
* <code>endpointPublicAccess</code> and <code>endpointPrivateAccess</code>
* 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon
* EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>. </p> <p>You can use the <code>logging</code> 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon
* EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>.</p> <p>CloudWatch Logs ingestion, archive storage, and data
* scanning rates apply to exported control plane logs. For more information, see
* <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
* Pricing</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html">Managing
* Cluster Authentication</a> and <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html">Launching
* Amazon EKS Worker Nodes</a> in the <i>Amazon EKS User Guide</i>.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Creates an Amazon EKS control plane. </p> <p>The Amazon EKS control plane
* consists of control plane instances that run the Kubernetes software, such as
* <code>etcd</code> 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.</p> <p>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 <code>kubectl
* exec</code>, <code>logs</code>, and <code>proxy</code> data flows).</p>
* <p>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.</p> <p>You can use the
* <code>endpointPublicAccess</code> and <code>endpointPrivateAccess</code>
* 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon
* EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>. </p> <p>You can use the <code>logging</code> 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon
* EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>.</p> <p>CloudWatch Logs ingestion, archive storage, and data
* scanning rates apply to exported control plane logs. For more information, see
* <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
* Pricing</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html">Managing
* Cluster Authentication</a> and <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html">Launching
* Amazon EKS Worker Nodes</a> in the <i>Amazon EKS User Guide</i>.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateCluster">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>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.</p>
* <p>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 profiles 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.</p>
* <p>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 <a
* href="https://kubernetes.io/docs/admin/authorization/rbac/">Role Based Access
* Control</a> (RBAC) for authorization so that the <code>kubelet</code> 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html">Pod
* Execution Role</a> in the <i>Amazon EKS User Guide</i>.</p> <p>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.</p> <p>If any Fargate profiles in a cluster are in the
* <code>DELETING</code> status, you must wait for that Fargate profile to finish
* deleting before you can create any other profiles in that cluster.</p> <p>For
* more information, see <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html">AWS
* Fargate Profile</a> in the <i>Amazon EKS User Guide</i>.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateFargateProfile">AWS
* API Reference</a></p>
*/
virtual Model::CreateFargateProfileOutcome CreateFargateProfile(const Model::CreateFargateProfileRequest& request) const;
/**
* <p>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.</p>
* <p>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 profiles 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.</p>
* <p>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 <a
* href="https://kubernetes.io/docs/admin/authorization/rbac/">Role Based Access
* Control</a> (RBAC) for authorization so that the <code>kubelet</code> 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html">Pod
* Execution Role</a> in the <i>Amazon EKS User Guide</i>.</p> <p>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.</p> <p>If any Fargate profiles in a cluster are in the
* <code>DELETING</code> status, you must wait for that Fargate profile to finish
* deleting before you can create any other profiles in that cluster.</p> <p>For
* more information, see <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html">AWS
* Fargate Profile</a> in the <i>Amazon EKS User Guide</i>.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateFargateProfile">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>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.</p>
* <p>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 profiles 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.</p>
* <p>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 <a
* href="https://kubernetes.io/docs/admin/authorization/rbac/">Role Based Access
* Control</a> (RBAC) for authorization so that the <code>kubelet</code> 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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html">Pod
* Execution Role</a> in the <i>Amazon EKS User Guide</i>.</p> <p>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.</p> <p>If any Fargate profiles in a cluster are in the
* <code>DELETING</code> status, you must wait for that Fargate profile to finish
* deleting before you can create any other profiles in that cluster.</p> <p>For
* more information, see <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html">AWS
* Fargate Profile</a> in the <i>Amazon EKS User Guide</i>.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateFargateProfile">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch
* template support</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html">Managed
* Node Groups</a> in the <i>Amazon EKS User Guide</i>. </p><p><h3>See Also:</h3>
* <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroup">AWS
* API Reference</a></p>
*/
virtual Model::CreateNodegroupOutcome CreateNodegroup(const Model::CreateNodegroupRequest& request) const;
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch
* template support</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html">Managed
* Node Groups</a> in the <i>Amazon EKS User Guide</i>. </p><p><h3>See Also:</h3>
* <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroup">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html">Launch
* template support</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html">Managed
* Node Groups</a> in the <i>Amazon EKS User Guide</i>. </p><p><h3>See Also:</h3>
* <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/CreateNodegroup">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Deletes the Amazon EKS cluster control plane.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html">Deleting
* a Cluster</a> in the <i>Amazon EKS User Guide</i>.</p> <p>If you have managed
* node groups or Fargate profiles attached to the cluster, you must delete them
* first. For more information, see <a>DeleteNodegroup</a> and
* <a>DeleteFargateProfile</a>.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster">AWS
* API Reference</a></p>
*/
virtual Model::DeleteClusterOutcome DeleteCluster(const Model::DeleteClusterRequest& request) const;
/**
* <p>Deletes the Amazon EKS cluster control plane.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html">Deleting
* a Cluster</a> in the <i>Amazon EKS User Guide</i>.</p> <p>If you have managed
* node groups or Fargate profiles attached to the cluster, you must delete them
* first. For more information, see <a>DeleteNodegroup</a> and
* <a>DeleteFargateProfile</a>.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Deletes the Amazon EKS cluster control plane.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/delete-cluster.html">Deleting
* a Cluster</a> in the <i>Amazon EKS User Guide</i>.</p> <p>If you have managed
* node groups or Fargate profiles attached to the cluster, you must delete them
* first. For more information, see <a>DeleteNodegroup</a> and
* <a>DeleteFargateProfile</a>.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteCluster">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Deletes an AWS Fargate profile.</p> <p>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.</p> <p>Only one
* Fargate profile in a cluster can be in the <code>DELETING</code> status at a
* time. You must wait for a Fargate profile to finish deleting before you can
* delete any other profiles in that cluster.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteFargateProfile">AWS
* API Reference</a></p>
*/
virtual Model::DeleteFargateProfileOutcome DeleteFargateProfile(const Model::DeleteFargateProfileRequest& request) const;
/**
* <p>Deletes an AWS Fargate profile.</p> <p>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.</p> <p>Only one
* Fargate profile in a cluster can be in the <code>DELETING</code> status at a
* time. You must wait for a Fargate profile to finish deleting before you can
* delete any other profiles in that cluster.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteFargateProfile">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Deletes an AWS Fargate profile.</p> <p>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.</p> <p>Only one
* Fargate profile in a cluster can be in the <code>DELETING</code> status at a
* time. You must wait for a Fargate profile to finish deleting before you can
* delete any other profiles in that cluster.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteFargateProfile">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Deletes an Amazon EKS node group for a cluster.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteNodegroup">AWS
* API Reference</a></p>
*/
virtual Model::DeleteNodegroupOutcome DeleteNodegroup(const Model::DeleteNodegroupRequest& request) const;
/**
* <p>Deletes an Amazon EKS node group for a cluster.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteNodegroup">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Deletes an Amazon EKS node group for a cluster.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DeleteNodegroup">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Returns descriptive information about an Amazon EKS cluster.</p> <p>The API
* server endpoint and certificate authority data returned by this operation are
* required for <code>kubelet</code> and <code>kubectl</code> to communicate with
* your Kubernetes API server. For more information, see <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html">Create
* a kubeconfig for Amazon EKS</a>.</p> <p>The API server endpoint and
* certificate authority data aren't available until the cluster reaches the
* <code>ACTIVE</code> state.</p> <p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster">AWS
* API Reference</a></p>
*/
virtual Model::DescribeClusterOutcome DescribeCluster(const Model::DescribeClusterRequest& request) const;
/**
* <p>Returns descriptive information about an Amazon EKS cluster.</p> <p>The API
* server endpoint and certificate authority data returned by this operation are
* required for <code>kubelet</code> and <code>kubectl</code> to communicate with
* your Kubernetes API server. For more information, see <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html">Create
* a kubeconfig for Amazon EKS</a>.</p> <p>The API server endpoint and
* certificate authority data aren't available until the cluster reaches the
* <code>ACTIVE</code> state.</p> <p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Returns descriptive information about an Amazon EKS cluster.</p> <p>The API
* server endpoint and certificate authority data returned by this operation are
* required for <code>kubelet</code> and <code>kubectl</code> to communicate with
* your Kubernetes API server. For more information, see <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/create-kubeconfig.html">Create
* a kubeconfig for Amazon EKS</a>.</p> <p>The API server endpoint and
* certificate authority data aren't available until the cluster reaches the
* <code>ACTIVE</code> state.</p> <p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeCluster">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Returns descriptive information about an AWS Fargate profile.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeFargateProfile">AWS
* API Reference</a></p>
*/
virtual Model::DescribeFargateProfileOutcome DescribeFargateProfile(const Model::DescribeFargateProfileRequest& request) const;
/**
* <p>Returns descriptive information about an AWS Fargate profile.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeFargateProfile">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Returns descriptive information about an AWS Fargate profile.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeFargateProfile">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Returns descriptive information about an Amazon EKS node group.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeNodegroup">AWS
* API Reference</a></p>
*/
virtual Model::DescribeNodegroupOutcome DescribeNodegroup(const Model::DescribeNodegroupRequest& request) const;
/**
* <p>Returns descriptive information about an Amazon EKS node group.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeNodegroup">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Returns descriptive information about an Amazon EKS node group.</p><p><h3>See
* Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeNodegroup">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Returns descriptive information about an update against your Amazon EKS
* cluster or associated managed node group.</p> <p>When the status of the update
* is <code>Succeeded</code>, the update is complete. If an update fails, the
* status is <code>Failed</code>, and an error detail explains the reason for the
* failure.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdate">AWS
* API Reference</a></p>
*/
virtual Model::DescribeUpdateOutcome DescribeUpdate(const Model::DescribeUpdateRequest& request) const;
/**
* <p>Returns descriptive information about an update against your Amazon EKS
* cluster or associated managed node group.</p> <p>When the status of the update
* is <code>Succeeded</code>, the update is complete. If an update fails, the
* status is <code>Failed</code>, and an error detail explains the reason for the
* failure.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdate">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Returns descriptive information about an update against your Amazon EKS
* cluster or associated managed node group.</p> <p>When the status of the update
* is <code>Succeeded</code>, the update is complete. If an update fails, the
* status is <code>Failed</code>, and an error detail explains the reason for the
* failure.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/DescribeUpdate">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Lists the Amazon EKS clusters in your AWS account in the specified
* Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters">AWS
* API Reference</a></p>
*/
virtual Model::ListClustersOutcome ListClusters(const Model::ListClustersRequest& request) const;
/**
* <p>Lists the Amazon EKS clusters in your AWS account in the specified
* Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Lists the Amazon EKS clusters in your AWS account in the specified
* Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListClusters">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Lists the AWS Fargate profiles associated with the specified cluster in your
* AWS account in the specified Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListFargateProfiles">AWS
* API Reference</a></p>
*/
virtual Model::ListFargateProfilesOutcome ListFargateProfiles(const Model::ListFargateProfilesRequest& request) const;
/**
* <p>Lists the AWS Fargate profiles associated with the specified cluster in your
* AWS account in the specified Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListFargateProfiles">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Lists the AWS Fargate profiles associated with the specified cluster in your
* AWS account in the specified Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListFargateProfiles">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>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.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups">AWS
* API Reference</a></p>
*/
virtual Model::ListNodegroupsOutcome ListNodegroups(const Model::ListNodegroupsRequest& request) const;
/**
* <p>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.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>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.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListNodegroups">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>List the tags for an Amazon EKS resource.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListTagsForResource">AWS
* API Reference</a></p>
*/
virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
/**
* <p>List the tags for an Amazon EKS resource.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListTagsForResource">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>List the tags for an Amazon EKS resource.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListTagsForResource">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Lists the updates associated with an Amazon EKS cluster or managed node group
* in your AWS account, in the specified Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates">AWS API
* Reference</a></p>
*/
virtual Model::ListUpdatesOutcome ListUpdates(const Model::ListUpdatesRequest& request) const;
/**
* <p>Lists the updates associated with an Amazon EKS cluster or managed node group
* in your AWS account, in the specified Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates">AWS API
* Reference</a></p>
*
* 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;
/**
* <p>Lists the updates associated with an Amazon EKS cluster or managed node group
* in your AWS account, in the specified Region.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/ListUpdates">AWS API
* Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Associates the specified tags to a resource with the specified
* <code>resourceArn</code>. 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.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/TagResource">AWS API
* Reference</a></p>
*/
virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
/**
* <p>Associates the specified tags to a resource with the specified
* <code>resourceArn</code>. 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.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/TagResource">AWS API
* Reference</a></p>
*
* 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;
/**
* <p>Associates the specified tags to a resource with the specified
* <code>resourceArn</code>. 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.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/TagResource">AWS API
* Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Deletes specified tags from a resource.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UntagResource">AWS
* API Reference</a></p>
*/
virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
/**
* <p>Deletes specified tags from a resource.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UntagResource">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Deletes specified tags from a resource.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UntagResource">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>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
* <a>DescribeUpdate</a> API operation.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon
* EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>.</p> <p>CloudWatch Logs ingestion, archive storage, and data
* scanning rates apply to exported control plane logs. For more information, see
* <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
* Pricing</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon
* EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>. </p> <p>At this time, you can not update the subnets or
* security group IDs for an existing cluster.</p> <p>Cluster updates
* are asynchronous, and they should finish within a few minutes. During an update,
* the cluster status moves to <code>UPDATING</code> (this status transition is
* eventually consistent). When the update is complete (either <code>Failed</code>
* or <code>Successful</code>), the cluster status moves to
* <code>Active</code>.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig">AWS
* API Reference</a></p>
*/
virtual Model::UpdateClusterConfigOutcome UpdateClusterConfig(const Model::UpdateClusterConfigRequest& request) const;
/**
* <p>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
* <a>DescribeUpdate</a> API operation.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon
* EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>.</p> <p>CloudWatch Logs ingestion, archive storage, and data
* scanning rates apply to exported control plane logs. For more information, see
* <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
* Pricing</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon
* EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>. </p> <p>At this time, you can not update the subnets or
* security group IDs for an existing cluster.</p> <p>Cluster updates
* are asynchronous, and they should finish within a few minutes. During an update,
* the cluster status moves to <code>UPDATING</code> (this status transition is
* eventually consistent). When the update is complete (either <code>Failed</code>
* or <code>Successful</code>), the cluster status moves to
* <code>Active</code>.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>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
* <a>DescribeUpdate</a> API operation.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/control-plane-logs.html">Amazon
* EKS Cluster Control Plane Logs</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>.</p> <p>CloudWatch Logs ingestion, archive storage, and data
* scanning rates apply to exported control plane logs. For more information, see
* <a href="http://aws.amazon.com/cloudwatch/pricing/">Amazon CloudWatch
* Pricing</a>.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html">Amazon
* EKS Cluster Endpoint Access Control</a> in the <i> <i>Amazon EKS User Guide</i>
* </i>. </p> <p>At this time, you can not update the subnets or
* security group IDs for an existing cluster.</p> <p>Cluster updates
* are asynchronous, and they should finish within a few minutes. During an update,
* the cluster status moves to <code>UPDATING</code> (this status transition is
* eventually consistent). When the update is complete (either <code>Failed</code>
* or <code>Successful</code>), the cluster status moves to
* <code>Active</code>.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterConfig">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>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
* <a>DescribeUpdate</a> API operation.</p> <p>Cluster updates are asynchronous,
* and they should finish within a few minutes. During an update, the cluster
* status moves to <code>UPDATING</code> (this status transition is eventually
* consistent). When the update is complete (either <code>Failed</code> or
* <code>Successful</code>), the cluster status moves to <code>Active</code>.</p>
* <p>If your cluster has managed node groups attached to it, all of your node
* groups Kubernetes versions must match the clusters Kubernetes version in order
* to update the cluster to a new Kubernetes version.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion">AWS
* API Reference</a></p>
*/
virtual Model::UpdateClusterVersionOutcome UpdateClusterVersion(const Model::UpdateClusterVersionRequest& request) const;
/**
* <p>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
* <a>DescribeUpdate</a> API operation.</p> <p>Cluster updates are asynchronous,
* and they should finish within a few minutes. During an update, the cluster
* status moves to <code>UPDATING</code> (this status transition is eventually
* consistent). When the update is complete (either <code>Failed</code> or
* <code>Successful</code>), the cluster status moves to <code>Active</code>.</p>
* <p>If your cluster has managed node groups attached to it, all of your node
* groups Kubernetes versions must match the clusters Kubernetes version in order
* to update the cluster to a new Kubernetes version.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>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
* <a>DescribeUpdate</a> API operation.</p> <p>Cluster updates are asynchronous,
* and they should finish within a few minutes. During an update, the cluster
* status moves to <code>UPDATING</code> (this status transition is eventually
* consistent). When the update is complete (either <code>Failed</code> or
* <code>Successful</code>), the cluster status moves to <code>Active</code>.</p>
* <p>If your cluster has managed node groups attached to it, all of your node
* groups Kubernetes versions must match the clusters Kubernetes version in order
* to update the cluster to a new Kubernetes version.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateClusterVersion">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>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
* <a>DescribeUpdate</a> API operation. Currently you can update the Kubernetes
* labels for a node group or the scaling configuration.</p><p><h3>See Also:</h3>
* <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfig">AWS
* API Reference</a></p>
*/
virtual Model::UpdateNodegroupConfigOutcome UpdateNodegroupConfig(const Model::UpdateNodegroupConfigRequest& request) const;
/**
* <p>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
* <a>DescribeUpdate</a> API operation. Currently you can update the Kubernetes
* labels for a node group or the scaling configuration.</p><p><h3>See Also:</h3>
* <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfig">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>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
* <a>DescribeUpdate</a> API operation. Currently you can update the Kubernetes
* labels for a node group or the scaling configuration.</p><p><h3>See Also:</h3>
* <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupConfig">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& context = nullptr) const;
/**
* <p>Updates the Kubernetes version or AMI version of an Amazon EKS managed node
* group.</p> <p>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.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html">Amazon
* EKS-Optimized Linux AMI Versions</a> in the <i>Amazon EKS User Guide</i>.</p>
* <p>You cannot roll back a node group to an earlier Kubernetes version or AMI
* version.</p> <p>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 <code>force</code> the update if Amazon EKS is unable to drain the nodes
* as a result of a pod disruption budget issue.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion">AWS
* API Reference</a></p>
*/
virtual Model::UpdateNodegroupVersionOutcome UpdateNodegroupVersion(const Model::UpdateNodegroupVersionRequest& request) const;
/**
* <p>Updates the Kubernetes version or AMI version of an Amazon EKS managed node
* group.</p> <p>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.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html">Amazon
* EKS-Optimized Linux AMI Versions</a> in the <i>Amazon EKS User Guide</i>.</p>
* <p>You cannot roll back a node group to an earlier Kubernetes version or AMI
* version.</p> <p>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 <code>force</code> the update if Amazon EKS is unable to drain the nodes
* as a result of a pod disruption budget issue.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion">AWS
* API Reference</a></p>
*
* 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;
/**
* <p>Updates the Kubernetes version or AMI version of an Amazon EKS managed node
* group.</p> <p>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.</p> <p>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 <a
* href="https://docs.aws.amazon.com/eks/latest/userguide/eks-linux-ami-versions.html">Amazon
* EKS-Optimized Linux AMI Versions</a> in the <i>Amazon EKS User Guide</i>.</p>
* <p>You cannot roll back a node group to an earlier Kubernetes version or AMI
* version.</p> <p>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 <code>force</code> the update if Amazon EKS is unable to drain the nodes
* as a result of a pod disruption budget issue.</p><p><h3>See Also:</h3> <a
* href="http://docs.aws.amazon.com/goto/WebAPI/eks-2017-11-01/UpdateNodegroupVersion">AWS
* API Reference</a></p>
*
* 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<const Aws::Client::AsyncCallerContext>& 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<const Aws::Client::AsyncCallerContext>& context) const;
void CreateFargateProfileAsyncHelper(const Model::CreateFargateProfileRequest& request, const CreateFargateProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void CreateNodegroupAsyncHelper(const Model::CreateNodegroupRequest& request, const CreateNodegroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DeleteClusterAsyncHelper(const Model::DeleteClusterRequest& request, const DeleteClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DeleteFargateProfileAsyncHelper(const Model::DeleteFargateProfileRequest& request, const DeleteFargateProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DeleteNodegroupAsyncHelper(const Model::DeleteNodegroupRequest& request, const DeleteNodegroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DescribeClusterAsyncHelper(const Model::DescribeClusterRequest& request, const DescribeClusterResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DescribeFargateProfileAsyncHelper(const Model::DescribeFargateProfileRequest& request, const DescribeFargateProfileResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DescribeNodegroupAsyncHelper(const Model::DescribeNodegroupRequest& request, const DescribeNodegroupResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void DescribeUpdateAsyncHelper(const Model::DescribeUpdateRequest& request, const DescribeUpdateResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void ListClustersAsyncHelper(const Model::ListClustersRequest& request, const ListClustersResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void ListFargateProfilesAsyncHelper(const Model::ListFargateProfilesRequest& request, const ListFargateProfilesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void ListNodegroupsAsyncHelper(const Model::ListNodegroupsRequest& request, const ListNodegroupsResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void ListTagsForResourceAsyncHelper(const Model::ListTagsForResourceRequest& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void ListUpdatesAsyncHelper(const Model::ListUpdatesRequest& request, const ListUpdatesResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void TagResourceAsyncHelper(const Model::TagResourceRequest& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void UntagResourceAsyncHelper(const Model::UntagResourceRequest& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void UpdateClusterConfigAsyncHelper(const Model::UpdateClusterConfigRequest& request, const UpdateClusterConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void UpdateClusterVersionAsyncHelper(const Model::UpdateClusterVersionRequest& request, const UpdateClusterVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void UpdateNodegroupConfigAsyncHelper(const Model::UpdateNodegroupConfigRequest& request, const UpdateNodegroupConfigResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
void UpdateNodegroupVersionAsyncHelper(const Model::UpdateNodegroupVersionRequest& request, const UpdateNodegroupVersionResponseReceivedHandler& handler, const std::shared_ptr<const Aws::Client::AsyncCallerContext>& context) const;
Aws::String m_uri;
Aws::String m_configScheme;
std::shared_ptr<Aws::Utils::Threading::Executor> m_executor;
};
} // namespace EKS
} // namespace Aws