/**
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
* SPDX-License-Identifier: Apache-2.0.
*/
#pragma once
#include
#include
#include
#include
#include
#include
namespace Aws
{
namespace EKS
{
/**
* Amazon Elastic Kubernetes Service (Amazon EKS) is a managed service that
* makes it easy for you to run Kubernetes on Amazon Web Services 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 Aws::Client::ClientWithAsyncTemplateMethods
{
public:
typedef Aws::Client::AWSJsonClient BASECLASS;
static const char* SERVICE_NAME;
static const char* ALLOCATION_TAG;
typedef EKSClientConfiguration ClientConfigurationType;
typedef EKSEndpointProvider EndpointProviderType;
/**
* 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::EKS::EKSClientConfiguration& clientConfiguration = Aws::EKS::EKSClientConfiguration(),
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG));
/**
* 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,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::EKS::EKSClientConfiguration& clientConfiguration = Aws::EKS::EKSClientConfiguration());
/**
* 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,
std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG),
const Aws::EKS::EKSClientConfiguration& clientConfiguration = Aws::EKS::EKSClientConfiguration());
/* Legacy constructors due deprecation */
/**
* 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);
/**
* 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);
/**
* 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);
/* End of legacy constructors due deprecation */
virtual ~EKSClient();
/**
* Associate encryption configuration to an existing cluster.
You can use
* this API to enable encryption on existing clusters which do not have encryption
* already enabled. This allows you to implement a defense-in-depth security
* strategy without migrating applications to new Amazon EKS
* clusters.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateEncryptionConfigOutcome AssociateEncryptionConfig(const Model::AssociateEncryptionConfigRequest& request) const;
/**
* A Callable wrapper for AssociateEncryptionConfig that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateEncryptionConfigOutcomeCallable AssociateEncryptionConfigCallable(const AssociateEncryptionConfigRequestT& request) const
{
return SubmitCallable(&EKSClient::AssociateEncryptionConfig, request);
}
/**
* An Async wrapper for AssociateEncryptionConfig that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateEncryptionConfigAsync(const AssociateEncryptionConfigRequestT& request, const AssociateEncryptionConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::AssociateEncryptionConfig, request, handler, context);
}
/**
* Associate an identity provider configuration to a cluster.
If you want
* to authenticate identities using an identity provider, you can create an
* identity provider configuration and associate it to your cluster. After
* configuring authentication to your cluster you can create Kubernetes
* roles
and clusterroles
to assign permissions to the
* roles, and then bind the roles to the identities using Kubernetes
* rolebindings
and clusterrolebindings
. For more
* information see Using RBAC
* Authorization in the Kubernetes documentation.
See Also:
AWS
* API Reference
*/
virtual Model::AssociateIdentityProviderConfigOutcome AssociateIdentityProviderConfig(const Model::AssociateIdentityProviderConfigRequest& request) const;
/**
* A Callable wrapper for AssociateIdentityProviderConfig that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::AssociateIdentityProviderConfigOutcomeCallable AssociateIdentityProviderConfigCallable(const AssociateIdentityProviderConfigRequestT& request) const
{
return SubmitCallable(&EKSClient::AssociateIdentityProviderConfig, request);
}
/**
* An Async wrapper for AssociateIdentityProviderConfig that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void AssociateIdentityProviderConfigAsync(const AssociateIdentityProviderConfigRequestT& request, const AssociateIdentityProviderConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::AssociateIdentityProviderConfig, request, handler, context);
}
/**
* Creates an Amazon EKS add-on.
Amazon EKS add-ons help to automate the
* provisioning and lifecycle management of common operational software for Amazon
* EKS clusters. For more information, see Amazon
* EKS add-ons in the Amazon EKS User Guide.
See Also:
* AWS
* API Reference
*/
virtual Model::CreateAddonOutcome CreateAddon(const Model::CreateAddonRequest& request) const;
/**
* A Callable wrapper for CreateAddon that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateAddonOutcomeCallable CreateAddonCallable(const CreateAddonRequestT& request) const
{
return SubmitCallable(&EKSClient::CreateAddon, request);
}
/**
* An Async wrapper for CreateAddon that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateAddonAsync(const CreateAddonRequestT& request, const CreateAddonResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::CreateAddon, request, handler, context);
}
/**
* 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 Amazon Web Services, and the Kubernetes API is exposed by the Amazon
* EKS API server endpoint. Each Amazon EKS cluster control plane is single tenant
* and unique. It 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 nodes (for example, to support kubectl
* exec
, logs
, and proxy
data flows).
* Amazon EKS nodes run in your Amazon Web Services account and connect to your
* cluster's control plane over the Kubernetes API server endpoint and a
* certificate file that is created for your cluster.
In most cases, it
* takes several minutes to create a cluster. After you create an Amazon EKS
* cluster, you must configure your Kubernetes tooling to communicate with the API
* server and launch nodes into your cluster. For more information, see Managing
* Cluster Authentication and Launching
* Amazon EKS nodes in the Amazon EKS User Guide.
See
* Also:
AWS
* API Reference
*/
virtual Model::CreateClusterOutcome CreateCluster(const Model::CreateClusterRequest& request) const;
/**
* A Callable wrapper for CreateCluster that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateClusterOutcomeCallable CreateClusterCallable(const CreateClusterRequestT& request) const
{
return SubmitCallable(&EKSClient::CreateCluster, request);
}
/**
* An Async wrapper for CreateCluster that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateClusterAsync(const CreateClusterRequestT& request, const CreateClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::CreateCluster, request, handler, context);
}
/**
* Creates an 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 Fargate
* Profile in the Amazon EKS User Guide.
See Also:
AWS
* API Reference
*/
virtual Model::CreateFargateProfileOutcome CreateFargateProfile(const Model::CreateFargateProfileRequest& request) const;
/**
* A Callable wrapper for CreateFargateProfile that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateFargateProfileOutcomeCallable CreateFargateProfileCallable(const CreateFargateProfileRequestT& request) const
{
return SubmitCallable(&EKSClient::CreateFargateProfile, request);
}
/**
* An Async wrapper for CreateFargateProfile that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateFargateProfileAsync(const CreateFargateProfileRequestT& request, const CreateFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::CreateFargateProfile, request, handler, context);
}
/**
* Creates a managed 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
* Amazon Web Services for an Amazon EKS cluster. For more information, see Managed
* node groups in the Amazon EKS User Guide.
Windows AMI
* types are only supported for commercial Regions that support Windows Amazon
* EKS.
See Also:
AWS
* API Reference
*/
virtual Model::CreateNodegroupOutcome CreateNodegroup(const Model::CreateNodegroupRequest& request) const;
/**
* A Callable wrapper for CreateNodegroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::CreateNodegroupOutcomeCallable CreateNodegroupCallable(const CreateNodegroupRequestT& request) const
{
return SubmitCallable(&EKSClient::CreateNodegroup, request);
}
/**
* An Async wrapper for CreateNodegroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void CreateNodegroupAsync(const CreateNodegroupRequestT& request, const CreateNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::CreateNodegroup, request, handler, context);
}
/**
* Delete an Amazon EKS add-on.
When you remove the add-on, it will also
* be deleted from the cluster. You can always manually start an add-on on the
* cluster using the Kubernetes API.
See Also:
AWS API
* Reference
*/
virtual Model::DeleteAddonOutcome DeleteAddon(const Model::DeleteAddonRequest& request) const;
/**
* A Callable wrapper for DeleteAddon that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteAddonOutcomeCallable DeleteAddonCallable(const DeleteAddonRequestT& request) const
{
return SubmitCallable(&EKSClient::DeleteAddon, request);
}
/**
* An Async wrapper for DeleteAddon that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteAddonAsync(const DeleteAddonRequestT& request, const DeleteAddonResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DeleteAddon, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for DeleteCluster that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteClusterOutcomeCallable DeleteClusterCallable(const DeleteClusterRequestT& request) const
{
return SubmitCallable(&EKSClient::DeleteCluster, request);
}
/**
* An Async wrapper for DeleteCluster that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteClusterAsync(const DeleteClusterRequestT& request, const DeleteClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DeleteCluster, request, handler, context);
}
/**
* Deletes an 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;
/**
* A Callable wrapper for DeleteFargateProfile that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteFargateProfileOutcomeCallable DeleteFargateProfileCallable(const DeleteFargateProfileRequestT& request) const
{
return SubmitCallable(&EKSClient::DeleteFargateProfile, request);
}
/**
* An Async wrapper for DeleteFargateProfile that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteFargateProfileAsync(const DeleteFargateProfileRequestT& request, const DeleteFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DeleteFargateProfile, request, handler, context);
}
/**
* Deletes an Amazon EKS node group for a cluster.
See Also:
AWS
* API Reference
*/
virtual Model::DeleteNodegroupOutcome DeleteNodegroup(const Model::DeleteNodegroupRequest& request) const;
/**
* A Callable wrapper for DeleteNodegroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeleteNodegroupOutcomeCallable DeleteNodegroupCallable(const DeleteNodegroupRequestT& request) const
{
return SubmitCallable(&EKSClient::DeleteNodegroup, request);
}
/**
* An Async wrapper for DeleteNodegroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeleteNodegroupAsync(const DeleteNodegroupRequestT& request, const DeleteNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DeleteNodegroup, request, handler, context);
}
/**
* Deregisters a connected cluster to remove it from the Amazon EKS control
* plane.
See Also:
AWS
* API Reference
*/
virtual Model::DeregisterClusterOutcome DeregisterCluster(const Model::DeregisterClusterRequest& request) const;
/**
* A Callable wrapper for DeregisterCluster that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DeregisterClusterOutcomeCallable DeregisterClusterCallable(const DeregisterClusterRequestT& request) const
{
return SubmitCallable(&EKSClient::DeregisterCluster, request);
}
/**
* An Async wrapper for DeregisterCluster that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DeregisterClusterAsync(const DeregisterClusterRequestT& request, const DeregisterClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DeregisterCluster, request, handler, context);
}
/**
* Describes an Amazon EKS add-on.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeAddonOutcome DescribeAddon(const Model::DescribeAddonRequest& request) const;
/**
* A Callable wrapper for DescribeAddon that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeAddonOutcomeCallable DescribeAddonCallable(const DescribeAddonRequestT& request) const
{
return SubmitCallable(&EKSClient::DescribeAddon, request);
}
/**
* An Async wrapper for DescribeAddon that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeAddonAsync(const DescribeAddonRequestT& request, const DescribeAddonResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DescribeAddon, request, handler, context);
}
/**
* Returns configuration options.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeAddonConfigurationOutcome DescribeAddonConfiguration(const Model::DescribeAddonConfigurationRequest& request) const;
/**
* A Callable wrapper for DescribeAddonConfiguration that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeAddonConfigurationOutcomeCallable DescribeAddonConfigurationCallable(const DescribeAddonConfigurationRequestT& request) const
{
return SubmitCallable(&EKSClient::DescribeAddonConfiguration, request);
}
/**
* An Async wrapper for DescribeAddonConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeAddonConfigurationAsync(const DescribeAddonConfigurationRequestT& request, const DescribeAddonConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DescribeAddonConfiguration, request, handler, context);
}
/**
* Describes the versions for an add-on. Information such as the Kubernetes
* versions that you can use the add-on with, the owner
,
* publisher
, and the type
of the add-on are returned.
*
See Also:
AWS
* API Reference
*/
virtual Model::DescribeAddonVersionsOutcome DescribeAddonVersions(const Model::DescribeAddonVersionsRequest& request) const;
/**
* A Callable wrapper for DescribeAddonVersions that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeAddonVersionsOutcomeCallable DescribeAddonVersionsCallable(const DescribeAddonVersionsRequestT& request) const
{
return SubmitCallable(&EKSClient::DescribeAddonVersions, request);
}
/**
* An Async wrapper for DescribeAddonVersions that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeAddonVersionsAsync(const DescribeAddonVersionsRequestT& request, const DescribeAddonVersionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DescribeAddonVersions, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for DescribeCluster that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeClusterOutcomeCallable DescribeClusterCallable(const DescribeClusterRequestT& request) const
{
return SubmitCallable(&EKSClient::DescribeCluster, request);
}
/**
* An Async wrapper for DescribeCluster that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeClusterAsync(const DescribeClusterRequestT& request, const DescribeClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DescribeCluster, request, handler, context);
}
/**
* Returns descriptive information about an Fargate profile.
See
* Also:
AWS
* API Reference
*/
virtual Model::DescribeFargateProfileOutcome DescribeFargateProfile(const Model::DescribeFargateProfileRequest& request) const;
/**
* A Callable wrapper for DescribeFargateProfile that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeFargateProfileOutcomeCallable DescribeFargateProfileCallable(const DescribeFargateProfileRequestT& request) const
{
return SubmitCallable(&EKSClient::DescribeFargateProfile, request);
}
/**
* An Async wrapper for DescribeFargateProfile that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeFargateProfileAsync(const DescribeFargateProfileRequestT& request, const DescribeFargateProfileResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DescribeFargateProfile, request, handler, context);
}
/**
* Returns descriptive information about an identity provider
* configuration.
See Also:
AWS
* API Reference
*/
virtual Model::DescribeIdentityProviderConfigOutcome DescribeIdentityProviderConfig(const Model::DescribeIdentityProviderConfigRequest& request) const;
/**
* A Callable wrapper for DescribeIdentityProviderConfig that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeIdentityProviderConfigOutcomeCallable DescribeIdentityProviderConfigCallable(const DescribeIdentityProviderConfigRequestT& request) const
{
return SubmitCallable(&EKSClient::DescribeIdentityProviderConfig, request);
}
/**
* An Async wrapper for DescribeIdentityProviderConfig that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeIdentityProviderConfigAsync(const DescribeIdentityProviderConfigRequestT& request, const DescribeIdentityProviderConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DescribeIdentityProviderConfig, request, handler, context);
}
/**
* Returns descriptive information about an Amazon EKS node group.
See
* Also:
AWS
* API Reference
*/
virtual Model::DescribeNodegroupOutcome DescribeNodegroup(const Model::DescribeNodegroupRequest& request) const;
/**
* A Callable wrapper for DescribeNodegroup that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeNodegroupOutcomeCallable DescribeNodegroupCallable(const DescribeNodegroupRequestT& request) const
{
return SubmitCallable(&EKSClient::DescribeNodegroup, request);
}
/**
* An Async wrapper for DescribeNodegroup that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeNodegroupAsync(const DescribeNodegroupRequestT& request, const DescribeNodegroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DescribeNodegroup, request, handler, context);
}
/**
* Returns descriptive information about an update against your Amazon EKS
* cluster or associated managed node group or Amazon EKS add-on.
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;
/**
* A Callable wrapper for DescribeUpdate that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DescribeUpdateOutcomeCallable DescribeUpdateCallable(const DescribeUpdateRequestT& request) const
{
return SubmitCallable(&EKSClient::DescribeUpdate, request);
}
/**
* An Async wrapper for DescribeUpdate that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DescribeUpdateAsync(const DescribeUpdateRequestT& request, const DescribeUpdateResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DescribeUpdate, request, handler, context);
}
/**
* Disassociates an identity provider configuration from a cluster. If you
* disassociate an identity provider from your cluster, users included in the
* provider can no longer access the cluster. However, you can still access the
* cluster with Amazon Web Services IAM users.
See Also:
AWS
* API Reference
*/
virtual Model::DisassociateIdentityProviderConfigOutcome DisassociateIdentityProviderConfig(const Model::DisassociateIdentityProviderConfigRequest& request) const;
/**
* A Callable wrapper for DisassociateIdentityProviderConfig that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::DisassociateIdentityProviderConfigOutcomeCallable DisassociateIdentityProviderConfigCallable(const DisassociateIdentityProviderConfigRequestT& request) const
{
return SubmitCallable(&EKSClient::DisassociateIdentityProviderConfig, request);
}
/**
* An Async wrapper for DisassociateIdentityProviderConfig that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void DisassociateIdentityProviderConfigAsync(const DisassociateIdentityProviderConfigRequestT& request, const DisassociateIdentityProviderConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::DisassociateIdentityProviderConfig, request, handler, context);
}
/**
* Lists the available add-ons.
See Also:
AWS API
* Reference
*/
virtual Model::ListAddonsOutcome ListAddons(const Model::ListAddonsRequest& request) const;
/**
* A Callable wrapper for ListAddons that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListAddonsOutcomeCallable ListAddonsCallable(const ListAddonsRequestT& request) const
{
return SubmitCallable(&EKSClient::ListAddons, request);
}
/**
* An Async wrapper for ListAddons that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListAddonsAsync(const ListAddonsRequestT& request, const ListAddonsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::ListAddons, request, handler, context);
}
/**
* Lists the Amazon EKS clusters in your Amazon Web Services account in the
* specified Region.
See Also:
AWS
* API Reference
*/
virtual Model::ListClustersOutcome ListClusters(const Model::ListClustersRequest& request) const;
/**
* A Callable wrapper for ListClusters that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListClustersOutcomeCallable ListClustersCallable(const ListClustersRequestT& request) const
{
return SubmitCallable(&EKSClient::ListClusters, request);
}
/**
* An Async wrapper for ListClusters that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListClustersAsync(const ListClustersRequestT& request, const ListClustersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::ListClusters, request, handler, context);
}
/**
* Lists the Fargate profiles associated with the specified cluster in your
* Amazon Web Services account in the specified Region.
See Also:
* AWS
* API Reference
*/
virtual Model::ListFargateProfilesOutcome ListFargateProfiles(const Model::ListFargateProfilesRequest& request) const;
/**
* A Callable wrapper for ListFargateProfiles that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListFargateProfilesOutcomeCallable ListFargateProfilesCallable(const ListFargateProfilesRequestT& request) const
{
return SubmitCallable(&EKSClient::ListFargateProfiles, request);
}
/**
* An Async wrapper for ListFargateProfiles that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListFargateProfilesAsync(const ListFargateProfilesRequestT& request, const ListFargateProfilesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::ListFargateProfiles, request, handler, context);
}
/**
* A list of identity provider configurations.
See Also:
AWS
* API Reference
*/
virtual Model::ListIdentityProviderConfigsOutcome ListIdentityProviderConfigs(const Model::ListIdentityProviderConfigsRequest& request) const;
/**
* A Callable wrapper for ListIdentityProviderConfigs that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListIdentityProviderConfigsOutcomeCallable ListIdentityProviderConfigsCallable(const ListIdentityProviderConfigsRequestT& request) const
{
return SubmitCallable(&EKSClient::ListIdentityProviderConfigs, request);
}
/**
* An Async wrapper for ListIdentityProviderConfigs that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListIdentityProviderConfigsAsync(const ListIdentityProviderConfigsRequestT& request, const ListIdentityProviderConfigsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::ListIdentityProviderConfigs, request, handler, context);
}
/**
* Lists the Amazon EKS managed node groups associated with the specified
* cluster in your Amazon Web Services 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;
/**
* A Callable wrapper for ListNodegroups that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListNodegroupsOutcomeCallable ListNodegroupsCallable(const ListNodegroupsRequestT& request) const
{
return SubmitCallable(&EKSClient::ListNodegroups, request);
}
/**
* An Async wrapper for ListNodegroups that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListNodegroupsAsync(const ListNodegroupsRequestT& request, const ListNodegroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::ListNodegroups, request, handler, context);
}
/**
* List the tags for an Amazon EKS resource.
See Also:
AWS
* API Reference
*/
virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const;
/**
* A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const
{
return SubmitCallable(&EKSClient::ListTagsForResource, request);
}
/**
* An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::ListTagsForResource, request, handler, context);
}
/**
* Lists the updates associated with an Amazon EKS cluster or managed node group
* in your Amazon Web Services account, in the specified Region.
See
* Also:
AWS API
* Reference
*/
virtual Model::ListUpdatesOutcome ListUpdates(const Model::ListUpdatesRequest& request) const;
/**
* A Callable wrapper for ListUpdates that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::ListUpdatesOutcomeCallable ListUpdatesCallable(const ListUpdatesRequestT& request) const
{
return SubmitCallable(&EKSClient::ListUpdates, request);
}
/**
* An Async wrapper for ListUpdates that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void ListUpdatesAsync(const ListUpdatesRequestT& request, const ListUpdatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::ListUpdates, request, handler, context);
}
/**
* Connects a Kubernetes cluster to the Amazon EKS control plane.
Any
* Kubernetes cluster can be connected to the Amazon EKS control plane to view
* current information about the cluster and its nodes.
Cluster connection
* requires two steps. First, send a RegisterClusterRequest
* to add it to the Amazon EKS control plane.
Second, a Manifest
* containing the activationID
and activationCode
must be
* applied to the Kubernetes cluster through it's native provider to provide
* visibility.
After the Manifest is updated and applied, then the connected
* cluster is visible to the Amazon EKS control plane. If the Manifest is not
* applied within three days, then the connected cluster will no longer be visible
* and must be deregistered. See DeregisterCluster.
See Also:
* AWS
* API Reference
*/
virtual Model::RegisterClusterOutcome RegisterCluster(const Model::RegisterClusterRequest& request) const;
/**
* A Callable wrapper for RegisterCluster that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::RegisterClusterOutcomeCallable RegisterClusterCallable(const RegisterClusterRequestT& request) const
{
return SubmitCallable(&EKSClient::RegisterCluster, request);
}
/**
* An Async wrapper for RegisterCluster that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void RegisterClusterAsync(const RegisterClusterRequestT& request, const RegisterClusterResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::RegisterCluster, request, handler, context);
}
/**
* 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 nodes associated with the
* cluster.
See Also:
AWS API
* Reference
*/
virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const;
/**
* A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const
{
return SubmitCallable(&EKSClient::TagResource, request);
}
/**
* An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::TagResource, request, handler, context);
}
/**
* Deletes specified tags from a resource.
See Also:
AWS
* API Reference
*/
virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const;
/**
* A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const
{
return SubmitCallable(&EKSClient::UntagResource, request);
}
/**
* An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::UntagResource, request, handler, context);
}
/**
* Updates an Amazon EKS add-on.
See Also:
AWS API
* Reference
*/
virtual Model::UpdateAddonOutcome UpdateAddon(const Model::UpdateAddonRequest& request) const;
/**
* A Callable wrapper for UpdateAddon that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateAddonOutcomeCallable UpdateAddonCallable(const UpdateAddonRequestT& request) const
{
return SubmitCallable(&EKSClient::UpdateAddon, request);
}
/**
* An Async wrapper for UpdateAddon that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateAddonAsync(const UpdateAddonRequestT& request, const UpdateAddonResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::UpdateAddon, request, handler, context);
}
/**
* 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
* 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
* .
You can't 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;
/**
* A Callable wrapper for UpdateClusterConfig that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateClusterConfigOutcomeCallable UpdateClusterConfigCallable(const UpdateClusterConfigRequestT& request) const
{
return SubmitCallable(&EKSClient::UpdateClusterConfig, request);
}
/**
* An Async wrapper for UpdateClusterConfig that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateClusterConfigAsync(const UpdateClusterConfigRequestT& request, const UpdateClusterConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::UpdateClusterConfig, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for UpdateClusterVersion that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateClusterVersionOutcomeCallable UpdateClusterVersionCallable(const UpdateClusterVersionRequestT& request) const
{
return SubmitCallable(&EKSClient::UpdateClusterVersion, request);
}
/**
* An Async wrapper for UpdateClusterVersion that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateClusterVersionAsync(const UpdateClusterVersionRequestT& request, const UpdateClusterVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::UpdateClusterVersion, request, handler, context);
}
/**
* 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;
/**
* A Callable wrapper for UpdateNodegroupConfig that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateNodegroupConfigOutcomeCallable UpdateNodegroupConfigCallable(const UpdateNodegroupConfigRequestT& request) const
{
return SubmitCallable(&EKSClient::UpdateNodegroupConfig, request);
}
/**
* An Async wrapper for UpdateNodegroupConfig that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateNodegroupConfigAsync(const UpdateNodegroupConfigRequestT& request, const UpdateNodegroupConfigResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::UpdateNodegroupConfig, request, handler, context);
}
/**
* 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 information about Linux
* versions, see Amazon
* EKS optimized Amazon Linux AMI versions in the Amazon EKS User Guide.
* For information about Windows versions, see Amazon
* EKS optimized Windows 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;
/**
* A Callable wrapper for UpdateNodegroupVersion that returns a future to the operation so that it can be executed in parallel to other requests.
*/
template
Model::UpdateNodegroupVersionOutcomeCallable UpdateNodegroupVersionCallable(const UpdateNodegroupVersionRequestT& request) const
{
return SubmitCallable(&EKSClient::UpdateNodegroupVersion, request);
}
/**
* An Async wrapper for UpdateNodegroupVersion that queues the request into a thread executor and triggers associated callback when operation has finished.
*/
template
void UpdateNodegroupVersionAsync(const UpdateNodegroupVersionRequestT& request, const UpdateNodegroupVersionResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const
{
return SubmitAsync(&EKSClient::UpdateNodegroupVersion, request, handler, context);
}
void OverrideEndpoint(const Aws::String& endpoint);
std::shared_ptr& accessEndpointProvider();
private:
friend class Aws::Client::ClientWithAsyncTemplateMethods;
void init(const EKSClientConfiguration& clientConfiguration);
EKSClientConfiguration m_clientConfiguration;
std::shared_ptr m_executor;
std::shared_ptr m_endpointProvider;
};
} // namespace EKS
} // namespace Aws