/* * Copyright 2018-2023 Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance with * the License. A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR * CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions * and limitations under the License. */ package com.amazonaws.services.eks; import org.w3c.dom.*; import java.net.*; import java.util.*; import javax.annotation.Generated; import org.apache.commons.logging.*; import com.amazonaws.*; import com.amazonaws.annotation.SdkInternalApi; import com.amazonaws.auth.*; import com.amazonaws.handlers.*; import com.amazonaws.http.*; import com.amazonaws.internal.*; import com.amazonaws.internal.auth.*; import com.amazonaws.metrics.*; import com.amazonaws.regions.*; import com.amazonaws.transform.*; import com.amazonaws.util.*; import com.amazonaws.protocol.json.*; import com.amazonaws.util.AWSRequestMetrics.Field; import com.amazonaws.annotation.ThreadSafe; import com.amazonaws.client.AwsSyncClientParams; import com.amazonaws.client.builder.AdvancedConfig; import com.amazonaws.services.eks.AmazonEKSClientBuilder; import com.amazonaws.services.eks.waiters.AmazonEKSWaiters; import com.amazonaws.AmazonServiceException; import com.amazonaws.services.eks.model.*; import com.amazonaws.services.eks.model.transform.*; /** * Client for accessing Amazon EKS. All service calls made using this client are blocking, and will not return until the * service call completes. *
*
* 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. *
*/ @ThreadSafe @Generated("com.amazonaws:aws-java-sdk-code-generator") public class AmazonEKSClient extends AmazonWebServiceClient implements AmazonEKS { /** Provider for AWS credentials. */ private final AWSCredentialsProvider awsCredentialsProvider; private static final Log log = LogFactory.getLog(AmazonEKS.class); /** Default signing name for the service. */ private static final String DEFAULT_SIGNING_NAME = "eks"; private volatile AmazonEKSWaiters waiters; /** Client configuration factory providing ClientConfigurations tailored to this client */ protected static final ClientConfigurationFactory configFactory = new ClientConfigurationFactory(); private final AdvancedConfig advancedConfig; private static final com.amazonaws.protocol.json.SdkJsonProtocolFactory protocolFactory = new com.amazonaws.protocol.json.SdkJsonProtocolFactory( new JsonClientMetadata() .withProtocolVersion("1.1") .withSupportsCbor(false) .withSupportsIon(false) .withContentTypeOverride("application/json") .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidParameterException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.InvalidParameterExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceInUseException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.ResourceInUseExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("InvalidRequestException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.InvalidRequestExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("NotFoundException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.NotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("AccessDeniedException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.AccessDeniedExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("UnsupportedAvailabilityZoneException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.UnsupportedAvailabilityZoneExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceNotFoundException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.ResourceNotFoundExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ServerException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.ServerExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ClientException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.ClientExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourcePropagationDelayException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.ResourcePropagationDelayExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ServiceUnavailableException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.ServiceUnavailableExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("ResourceLimitExceededException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.ResourceLimitExceededExceptionUnmarshaller.getInstance())) .addErrorMetadata( new JsonErrorShapeMetadata().withErrorCode("BadRequestException").withExceptionUnmarshaller( com.amazonaws.services.eks.model.transform.BadRequestExceptionUnmarshaller.getInstance())) .withBaseServiceExceptionClass(com.amazonaws.services.eks.model.AmazonEKSException.class)); public static AmazonEKSClientBuilder builder() { return AmazonEKSClientBuilder.standard(); } /** * Constructs a new client to invoke service methods on Amazon EKS using the specified parameters. * ** All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonEKSClient(AwsSyncClientParams clientParams) { this(clientParams, false); } /** * Constructs a new client to invoke service methods on Amazon EKS using the specified parameters. * *
* All service calls made using this new client object are blocking, and will not return until the service call * completes. * * @param clientParams * Object providing client parameters. */ AmazonEKSClient(AwsSyncClientParams clientParams, boolean endpointDiscoveryEnabled) { super(clientParams); this.awsCredentialsProvider = clientParams.getCredentialsProvider(); this.advancedConfig = clientParams.getAdvancedConfig(); init(); } private void init() { setServiceNameIntern(DEFAULT_SIGNING_NAME); setEndpointPrefix(ENDPOINT_PREFIX); // calling this.setEndPoint(...) will also modify the signer accordingly setEndpoint("eks.us-east-1.amazonaws.com"); HandlerChainFactory chainFactory = new HandlerChainFactory(); requestHandler2s.addAll(chainFactory.newRequestHandlerChain("/com/amazonaws/services/eks/request.handlers")); requestHandler2s.addAll(chainFactory.newRequestHandler2Chain("/com/amazonaws/services/eks/request.handler2s")); requestHandler2s.addAll(chainFactory.getGlobalHandlers()); } /** *
* 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. *
* * @param associateEncryptionConfigRequest * @return Result of the AssociateEncryptionConfig operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @sample AmazonEKS.AssociateEncryptionConfig * @see AWS * API Documentation */ @Override public AssociateEncryptionConfigResult associateEncryptionConfig(AssociateEncryptionConfigRequest request) { request = beforeClientExecution(request); return executeAssociateEncryptionConfig(request); } @SdkInternalApi final AssociateEncryptionConfigResult executeAssociateEncryptionConfig(AssociateEncryptionConfigRequest associateEncryptionConfigRequest) { ExecutionContext executionContext = createExecutionContext(associateEncryptionConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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.
*
* 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. *
* * @param createAddonRequest * @return Result of the CreateAddon operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ResourceInUseException * The specified resource is in use. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @sample AmazonEKS.CreateAddon * @see AWS API * Documentation */ @Override public CreateAddonResult createAddon(CreateAddonRequest request) { request = beforeClientExecution(request); return executeCreateAddon(request); } @SdkInternalApi final CreateAddonResult executeCreateAddon(CreateAddonRequest createAddonRequest) { ExecutionContext executionContext = createExecutionContext(createAddonRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param createClusterRequest * @return Result of the CreateCluster operation returned by the service. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourceLimitExceededException * You have encountered a service limit on the specified resource. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @throws UnsupportedAvailabilityZoneException * At least one of your specified cluster subnets is in an Availability Zone that does not support Amazon * EKS. The exception output specifies the supported Availability Zones for your account, from which you can * choose subnets for your cluster. * @sample AmazonEKS.CreateCluster * @see AWS API * Documentation */ @Override public CreateClusterResult createCluster(CreateClusterRequest request) { request = beforeClientExecution(request); return executeCreateCluster(request); } @SdkInternalApi final CreateClusterResult executeCreateCluster(CreateClusterRequest createClusterRequest) { ExecutionContext executionContext = createExecutionContext(createClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param createFargateProfileRequest * @return Result of the CreateFargateProfile operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ResourceLimitExceededException * You have encountered a service limit on the specified resource. * @throws UnsupportedAvailabilityZoneException * At least one of your specified cluster subnets is in an Availability Zone that does not support Amazon * EKS. The exception output specifies the supported Availability Zones for your account, from which you can * choose subnets for your cluster. * @sample AmazonEKS.CreateFargateProfile * @see AWS API * Documentation */ @Override public CreateFargateProfileResult createFargateProfile(CreateFargateProfileRequest request) { request = beforeClientExecution(request); return executeCreateFargateProfile(request); } @SdkInternalApi final CreateFargateProfileResult executeCreateFargateProfile(CreateFargateProfileRequest createFargateProfileRequest) { ExecutionContext executionContext = createExecutionContext(createFargateProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
** 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. *
* * @param deleteAddonRequest * @return Result of the DeleteAddon operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @sample AmazonEKS.DeleteAddon * @see AWS API * Documentation */ @Override public DeleteAddonResult deleteAddon(DeleteAddonRequest request) { request = beforeClientExecution(request); return executeDeleteAddon(request); } @SdkInternalApi final DeleteAddonResult executeDeleteAddon(DeleteAddonRequest deleteAddonRequest) { ExecutionContext executionContext = createExecutionContext(deleteAddonRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param deleteClusterRequest * @return Result of the DeleteCluster operation returned by the service. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @sample AmazonEKS.DeleteCluster * @see AWS API * Documentation */ @Override public DeleteClusterResult deleteCluster(DeleteClusterRequest request) { request = beforeClientExecution(request); return executeDeleteCluster(request); } @SdkInternalApi final DeleteClusterResult executeDeleteCluster(DeleteClusterRequest deleteClusterRequest) { ExecutionContext executionContext = createExecutionContext(deleteClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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.
*
* Deletes an Amazon EKS node group for a cluster. *
* * @param deleteNodegroupRequest * @return Result of the DeleteNodegroup operation returned by the service. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @sample AmazonEKS.DeleteNodegroup * @see AWS API * Documentation */ @Override public DeleteNodegroupResult deleteNodegroup(DeleteNodegroupRequest request) { request = beforeClientExecution(request); return executeDeleteNodegroup(request); } @SdkInternalApi final DeleteNodegroupResult executeDeleteNodegroup(DeleteNodegroupRequest deleteNodegroupRequest) { ExecutionContext executionContext = createExecutionContext(deleteNodegroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Deregisters a connected cluster to remove it from the Amazon EKS control plane. *
* * @param deregisterClusterRequest * @return Result of the DeregisterCluster operation returned by the service. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @throws AccessDeniedException * You don't have permissions to perform the requested operation. The user or role that is making the * request must have at least one IAM permissions policy attached that grants the required permissions. For * more information, see Access * Management in the IAM User Guide. * @sample AmazonEKS.DeregisterCluster * @see AWS API * Documentation */ @Override public DeregisterClusterResult deregisterCluster(DeregisterClusterRequest request) { request = beforeClientExecution(request); return executeDeregisterCluster(request); } @SdkInternalApi final DeregisterClusterResult executeDeregisterCluster(DeregisterClusterRequest deregisterClusterRequest) { ExecutionContext executionContext = createExecutionContext(deregisterClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Describes an Amazon EKS add-on. *
* * @param describeAddonRequest * @return Result of the DescribeAddon operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @sample AmazonEKS.DescribeAddon * @see AWS API * Documentation */ @Override public DescribeAddonResult describeAddon(DescribeAddonRequest request) { request = beforeClientExecution(request); return executeDescribeAddon(request); } @SdkInternalApi final DescribeAddonResult executeDescribeAddon(DescribeAddonRequest describeAddonRequest) { ExecutionContext executionContext = createExecutionContext(describeAddonRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Returns configuration options. *
* * @param describeAddonConfigurationRequest * @return Result of the DescribeAddonConfiguration operation returned by the service. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @sample AmazonEKS.DescribeAddonConfiguration * @see AWS * API Documentation */ @Override public DescribeAddonConfigurationResult describeAddonConfiguration(DescribeAddonConfigurationRequest request) { request = beforeClientExecution(request); return executeDescribeAddonConfiguration(request); } @SdkInternalApi final DescribeAddonConfigurationResult executeDescribeAddonConfiguration(DescribeAddonConfigurationRequest describeAddonConfigurationRequest) { ExecutionContext executionContext = createExecutionContext(describeAddonConfigurationRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request
* 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.
*
* 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.
*
* Returns descriptive information about an Fargate profile. *
* * @param describeFargateProfileRequest * @return Result of the DescribeFargateProfile operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @sample AmazonEKS.DescribeFargateProfile * @see AWS API * Documentation */ @Override public DescribeFargateProfileResult describeFargateProfile(DescribeFargateProfileRequest request) { request = beforeClientExecution(request); return executeDescribeFargateProfile(request); } @SdkInternalApi final DescribeFargateProfileResult executeDescribeFargateProfile(DescribeFargateProfileRequest describeFargateProfileRequest) { ExecutionContext executionContext = createExecutionContext(describeFargateProfileRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Returns descriptive information about an identity provider configuration. *
* * @param describeIdentityProviderConfigRequest * @return Result of the DescribeIdentityProviderConfig operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @sample AmazonEKS.DescribeIdentityProviderConfig * @see AWS API Documentation */ @Override public DescribeIdentityProviderConfigResult describeIdentityProviderConfig(DescribeIdentityProviderConfigRequest request) { request = beforeClientExecution(request); return executeDescribeIdentityProviderConfig(request); } @SdkInternalApi final DescribeIdentityProviderConfigResult executeDescribeIdentityProviderConfig(DescribeIdentityProviderConfigRequest describeIdentityProviderConfigRequest) { ExecutionContext executionContext = createExecutionContext(describeIdentityProviderConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Returns descriptive information about an Amazon EKS node group. *
* * @param describeNodegroupRequest * @return Result of the DescribeNodegroup operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @sample AmazonEKS.DescribeNodegroup * @see AWS API * Documentation */ @Override public DescribeNodegroupResult describeNodegroup(DescribeNodegroupRequest request) { request = beforeClientExecution(request); return executeDescribeNodegroup(request); } @SdkInternalApi final DescribeNodegroupResult executeDescribeNodegroup(DescribeNodegroupRequest describeNodegroupRequest) { ExecutionContext executionContext = createExecutionContext(describeNodegroupRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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.
*
* 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. *
* * @param disassociateIdentityProviderConfigRequest * @return Result of the DisassociateIdentityProviderConfig operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @sample AmazonEKS.DisassociateIdentityProviderConfig * @see AWS API Documentation */ @Override public DisassociateIdentityProviderConfigResult disassociateIdentityProviderConfig(DisassociateIdentityProviderConfigRequest request) { request = beforeClientExecution(request); return executeDisassociateIdentityProviderConfig(request); } @SdkInternalApi final DisassociateIdentityProviderConfigResult executeDisassociateIdentityProviderConfig( DisassociateIdentityProviderConfigRequest disassociateIdentityProviderConfigRequest) { ExecutionContext executionContext = createExecutionContext(disassociateIdentityProviderConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Lists the available add-ons. *
* * @param listAddonsRequest * @return Result of the ListAddons operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ServerException * These errors are usually caused by a server-side issue. * @sample AmazonEKS.ListAddons * @see AWS API * Documentation */ @Override public ListAddonsResult listAddons(ListAddonsRequest request) { request = beforeClientExecution(request); return executeListAddons(request); } @SdkInternalApi final ListAddonsResult executeListAddons(ListAddonsRequest listAddonsRequest) { ExecutionContext executionContext = createExecutionContext(listAddonsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Lists the Amazon EKS clusters in your Amazon Web Services account in the specified Region. *
* * @param listClustersRequest * @return Result of the ListClusters operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @sample AmazonEKS.ListClusters * @see AWS API * Documentation */ @Override public ListClustersResult listClusters(ListClustersRequest request) { request = beforeClientExecution(request); return executeListClusters(request); } @SdkInternalApi final ListClustersResult executeListClusters(ListClustersRequest listClustersRequest) { ExecutionContext executionContext = createExecutionContext(listClustersRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Lists the Fargate profiles associated with the specified cluster in your Amazon Web Services account in the * specified Region. *
* * @param listFargateProfilesRequest * @return Result of the ListFargateProfiles operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @sample AmazonEKS.ListFargateProfiles * @see AWS API * Documentation */ @Override public ListFargateProfilesResult listFargateProfiles(ListFargateProfilesRequest request) { request = beforeClientExecution(request); return executeListFargateProfiles(request); } @SdkInternalApi final ListFargateProfilesResult executeListFargateProfiles(ListFargateProfilesRequest listFargateProfilesRequest) { ExecutionContext executionContext = createExecutionContext(listFargateProfilesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* A list of identity provider configurations. *
* * @param listIdentityProviderConfigsRequest * @return Result of the ListIdentityProviderConfigs operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @sample AmazonEKS.ListIdentityProviderConfigs * @see AWS API Documentation */ @Override public ListIdentityProviderConfigsResult listIdentityProviderConfigs(ListIdentityProviderConfigsRequest request) { request = beforeClientExecution(request); return executeListIdentityProviderConfigs(request); } @SdkInternalApi final ListIdentityProviderConfigsResult executeListIdentityProviderConfigs(ListIdentityProviderConfigsRequest listIdentityProviderConfigsRequest) { ExecutionContext executionContext = createExecutionContext(listIdentityProviderConfigsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param listNodegroupsRequest * @return Result of the ListNodegroups operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @sample AmazonEKS.ListNodegroups * @see AWS API * Documentation */ @Override public ListNodegroupsResult listNodegroups(ListNodegroupsRequest request) { request = beforeClientExecution(request); return executeListNodegroups(request); } @SdkInternalApi final ListNodegroupsResult executeListNodegroups(ListNodegroupsRequest listNodegroupsRequest) { ExecutionContext executionContext = createExecutionContext(listNodegroupsRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* List the tags for an Amazon EKS resource. *
* * @param listTagsForResourceRequest * @return Result of the ListTagsForResource operation returned by the service. * @throws BadRequestException * This exception is thrown if the request contains a semantic error. The precise meaning will depend on the * API, and will be documented in the error message. * @throws NotFoundException * A service resource associated with the request could not be found. Clients should not retry such * requests. * @sample AmazonEKS.ListTagsForResource * @see AWS API * Documentation */ @Override public ListTagsForResourceResult listTagsForResource(ListTagsForResourceRequest request) { request = beforeClientExecution(request); return executeListTagsForResource(request); } @SdkInternalApi final ListTagsForResourceResult executeListTagsForResource(ListTagsForResourceRequest listTagsForResourceRequest) { ExecutionContext executionContext = createExecutionContext(listTagsForResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Lists the updates associated with an Amazon EKS cluster or managed node group in your Amazon Web Services * account, in the specified Region. *
* * @param listUpdatesRequest * @return Result of the ListUpdates operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @sample AmazonEKS.ListUpdates * @see AWS API * Documentation */ @Override public ListUpdatesResult listUpdates(ListUpdatesRequest request) { request = beforeClientExecution(request); return executeListUpdates(request); } @SdkInternalApi final ListUpdatesResult executeListUpdates(ListUpdatesRequest listUpdatesRequest) { ExecutionContext executionContext = createExecutionContext(listUpdatesRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param registerClusterRequest * @return Result of the RegisterCluster operation returned by the service. * @throws ResourceLimitExceededException * You have encountered a service limit on the specified resource. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ServiceUnavailableException * The service is unavailable. Back off and retry the operation. * @throws AccessDeniedException * You don't have permissions to perform the requested operation. The user or role that is making the * request must have at least one IAM permissions policy attached that grants the required permissions. For * more information, see Access * Management in the IAM User Guide. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourcePropagationDelayException * Required resources (such as service-linked roles) were created and are still propagating. Retry later. * @sample AmazonEKS.RegisterCluster * @see AWS API * Documentation */ @Override public RegisterClusterResult registerCluster(RegisterClusterRequest request) { request = beforeClientExecution(request); return executeRegisterCluster(request); } @SdkInternalApi final RegisterClusterResult executeRegisterCluster(RegisterClusterRequest registerClusterRequest) { ExecutionContext executionContext = createExecutionContext(registerClusterRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request
* 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.
*
* Deletes specified tags from a resource. *
* * @param untagResourceRequest * @return Result of the UntagResource operation returned by the service. * @throws BadRequestException * This exception is thrown if the request contains a semantic error. The precise meaning will depend on the * API, and will be documented in the error message. * @throws NotFoundException * A service resource associated with the request could not be found. Clients should not retry such * requests. * @sample AmazonEKS.UntagResource * @see AWS API * Documentation */ @Override public UntagResourceResult untagResource(UntagResourceRequest request) { request = beforeClientExecution(request); return executeUntagResource(request); } @SdkInternalApi final UntagResourceResult executeUntagResource(UntagResourceRequest untagResourceRequest) { ExecutionContext executionContext = createExecutionContext(untagResourceRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* Updates an Amazon EKS add-on. *
* * @param updateAddonRequest * @return Result of the UpdateAddon operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws ResourceInUseException * The specified resource is in use. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @sample AmazonEKS.UpdateAddon * @see AWS API * Documentation */ @Override public UpdateAddonResult updateAddon(UpdateAddonRequest request) { request = beforeClientExecution(request); return executeUpdateAddon(request); } @SdkInternalApi final UpdateAddonResult executeUpdateAddon(UpdateAddonRequest updateAddonRequest) { ExecutionContext executionContext = createExecutionContext(updateAddonRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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
* .
*
* 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. *
* * @param updateClusterVersionRequest * @return Result of the UpdateClusterVersion operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @sample AmazonEKS.UpdateClusterVersion * @see AWS API * Documentation */ @Override public UpdateClusterVersionResult updateClusterVersion(UpdateClusterVersionRequest request) { request = beforeClientExecution(request); return executeUpdateClusterVersion(request); } @SdkInternalApi final UpdateClusterVersionResult executeUpdateClusterVersion(UpdateClusterVersionRequest updateClusterVersionRequest) { ExecutionContext executionContext = createExecutionContext(updateClusterVersionRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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. *
* * @param updateNodegroupConfigRequest * @return Result of the UpdateNodegroupConfig operation returned by the service. * @throws InvalidParameterException * The specified parameter is invalid. Review the available parameters for the API request. * @throws ClientException * These errors are usually caused by a client action. Actions can include using an action or resource on * behalf of a user that doesn't have permissions to use the action or resource or specifying an identifier * that is not valid. * @throws ServerException * These errors are usually caused by a server-side issue. * @throws ResourceInUseException * The specified resource is in use. * @throws ResourceNotFoundException * The specified resource could not be found. You can view your available clusters with ListClusters. * You can view your available managed node groups with ListNodegroups. Amazon EKS clusters and node * groups are Region-specific. * @throws InvalidRequestException * The request is invalid given the state of the cluster. Check the state of the cluster and the associated * operations. * @sample AmazonEKS.UpdateNodegroupConfig * @see AWS API * Documentation */ @Override public UpdateNodegroupConfigResult updateNodegroupConfig(UpdateNodegroupConfigRequest request) { request = beforeClientExecution(request); return executeUpdateNodegroupConfig(request); } @SdkInternalApi final UpdateNodegroupConfigResult executeUpdateNodegroupConfig(UpdateNodegroupConfigRequest updateNodegroupConfigRequest) { ExecutionContext executionContext = createExecutionContext(updateNodegroupConfigRequest); AWSRequestMetrics awsRequestMetrics = executionContext.getAwsRequestMetrics(); awsRequestMetrics.startEvent(Field.ClientExecuteTime); Request* 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.
*
* Response metadata is only cached for a limited period of time, so if you need to access this extra diagnostic
* information for an executed request, you should use this method to retrieve it as soon as possible after
* executing the request.
*
* @param request
* The originally executed request
*
* @return The response metadata for the specified request, or null if none is available.
*/
public ResponseMetadata getCachedResponseMetadata(AmazonWebServiceRequest request) {
return client.getResponseMetadataForRequest(request);
}
/**
* Normal invoke with authentication. Credentials are required and may be overriden at the request level.
**/
private