cognitect.aws.eks.docs.edn Maven / Gradle / Ivy
{:DeleteEksAnywhereSubscription {:documentation "Deletes an expired or inactive subscription. Deleting inactive subscriptions removes them from the Amazon Web Services Management Console view and from list/describe API responses. Subscriptions can only be cancelled within 7 days of creation and are cancelled by creating a ticket in the Amazon Web Services Support Center.
", :request {:id string}, :required [:id], :response {:subscription {:licenseType [:one-of ["Cluster"]], :tags [:map-of string string], :licenseQuantity integer, :createdAt timestamp, :effectiveDate timestamp, :term {:duration integer, :unit [:one-of ["MONTHS"]]}, :status string, :id string, :licenseArns [:seq-of string], :arn string, :expirationDate timestamp, :autoRenew boolean}}}, :AssociateEncryptionConfig {:documentation "Associates an encryption configuration to an existing cluster.
Use this API to enable encryption on existing clusters that don't already have encryption enabled. This allows you to implement a defense-in-depth security strategy without migrating applications to new Amazon EKS clusters.
", :request {:clusterName string, :encryptionConfig [:seq-of {:resources [:seq-of string], :provider {:keyArn string}}], :clientRequestToken string}, :required [:clusterName :encryptionConfig], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}}}, :DeregisterCluster {:documentation "Deregisters a connected cluster to remove it from the Amazon EKS control plane.
A connected cluster is a Kubernetes cluster that you've connected to your control plane using the Amazon EKS Connector.
", :request {:name string}, :required [:name], :response {:cluster {:tags [:map-of string string], :platformVersion string, :identity {:oidc {:issuer string}}, :zonalShiftConfig {:enabled boolean}, :name string, :kubernetesNetworkConfig {:serviceIpv4Cidr string, :serviceIpv6Cidr string, :ipFamily [:one-of ["ipv4" "ipv6"]], :elasticLoadBalancing {:enabled boolean}}, :createdAt timestamp, :storageConfig {:blockStorage {:enabled boolean}}, :upgradePolicy {:supportType [:one-of ["STANDARD" "EXTENDED"]]}, :logging {:clusterLogging [:seq-of {:types [:seq-of [:one-of ["api" "audit" "authenticator" "controllerManager" "scheduler"]]], :enabled boolean}]}, :clientRequestToken string, :status [:one-of ["CREATING" "ACTIVE" "DELETING" "FAILED" "UPDATING" "PENDING"]], :id string, :health {:issues [:seq-of {:code [:one-of ["AccessDenied" "ClusterUnreachable" "ConfigurationConflict" "InternalFailure" "ResourceLimitExceeded" "ResourceNotFound" "IamRoleNotFound" "VpcNotFound" "InsufficientFreeAddresses" "Ec2ServiceNotSubscribed" "Ec2SubnetNotFound" "Ec2SecurityGroupNotFound" "KmsGrantRevoked" "KmsKeyNotFound" "KmsKeyMarkedForDeletion" "KmsKeyDisabled" "StsRegionalEndpointDisabled" "UnsupportedVersion" "Other"]], :message string, :resourceIds [:seq-of string]}]}, :version string, :certificateAuthority {:data string}, :endpoint string, :accessConfig {:bootstrapClusterCreatorAdminPermissions boolean, :authenticationMode [:one-of ["API" "API_AND_CONFIG_MAP" "CONFIG_MAP"]]}, :arn string, :connectorConfig {:activationId string, :activationCode string, :activationExpiry timestamp, :provider string, :roleArn string}, :resourcesVpcConfig {:subnetIds [:seq-of string], :securityGroupIds [:seq-of string], :clusterSecurityGroupId string, :vpcId string, :endpointPublicAccess boolean, :endpointPrivateAccess boolean, :publicAccessCidrs [:seq-of string]}, :computeConfig {:enabled boolean, :nodePools [:seq-of string], :nodeRoleArn string}, :encryptionConfig [:seq-of {:resources [:seq-of string], :provider {:keyArn string}}], :remoteNetworkConfig {:remoteNodeNetworks [:seq-of {:cidrs [:seq-of string]}], :remotePodNetworks [:seq-of {:cidrs [:seq-of string]}]}, :outpostConfig {:outpostArns [:seq-of string], :controlPlaneInstanceType string, :controlPlanePlacement {:groupName string}}, :roleArn string}}}, :DescribeAddonConfiguration {:documentation "Returns configuration options.
", :request {:addonName string, :addonVersion string}, :required [:addonName :addonVersion], :response {:addonName string, :addonVersion string, :configurationSchema string, :podIdentityConfiguration [:seq-of {:serviceAccount string, :recommendedManagedPolicies [:seq-of string]}]}}, :ListNodegroups {:documentation "Lists the managed node groups associated with the specified cluster in your Amazon Web Services account in the specified Amazon Web Services Region. Self-managed node groups aren't listed.
", :request {:clusterName string, :maxResults integer, :nextToken string}, :required [:clusterName], :response {:nodegroups [:seq-of string], :nextToken string}}, :ListTagsForResource {:documentation "List the tags for an Amazon EKS resource.
", :request {:resourceArn string}, :required [:resourceArn], :response {:tags [:map-of string string]}}, :RegisterCluster {:documentation "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, the connected cluster is visible to the Amazon EKS control plane. If the manifest isn't applied within three days, the connected cluster will no longer be visible and must be deregistered using DeregisterCluster
.
", :request {:name string, :connectorConfig {:roleArn string, :provider [:one-of ["EKS_ANYWHERE" "ANTHOS" "GKE" "AKS" "OPENSHIFT" "TANZU" "RANCHER" "EC2" "OTHER"]]}, :clientRequestToken string, :tags [:map-of string string]}, :required [:name :connectorConfig], :response {:cluster {:tags [:map-of string string], :platformVersion string, :identity {:oidc {:issuer string}}, :zonalShiftConfig {:enabled boolean}, :name string, :kubernetesNetworkConfig {:serviceIpv4Cidr string, :serviceIpv6Cidr string, :ipFamily [:one-of ["ipv4" "ipv6"]], :elasticLoadBalancing {:enabled boolean}}, :createdAt timestamp, :storageConfig {:blockStorage {:enabled boolean}}, :upgradePolicy {:supportType [:one-of ["STANDARD" "EXTENDED"]]}, :logging {:clusterLogging [:seq-of {:types [:seq-of [:one-of ["api" "audit" "authenticator" "controllerManager" "scheduler"]]], :enabled boolean}]}, :clientRequestToken string, :status [:one-of ["CREATING" "ACTIVE" "DELETING" "FAILED" "UPDATING" "PENDING"]], :id string, :health {:issues [:seq-of {:code [:one-of ["AccessDenied" "ClusterUnreachable" "ConfigurationConflict" "InternalFailure" "ResourceLimitExceeded" "ResourceNotFound" "IamRoleNotFound" "VpcNotFound" "InsufficientFreeAddresses" "Ec2ServiceNotSubscribed" "Ec2SubnetNotFound" "Ec2SecurityGroupNotFound" "KmsGrantRevoked" "KmsKeyNotFound" "KmsKeyMarkedForDeletion" "KmsKeyDisabled" "StsRegionalEndpointDisabled" "UnsupportedVersion" "Other"]], :message string, :resourceIds [:seq-of string]}]}, :version string, :certificateAuthority {:data string}, :endpoint string, :accessConfig {:bootstrapClusterCreatorAdminPermissions boolean, :authenticationMode [:one-of ["API" "API_AND_CONFIG_MAP" "CONFIG_MAP"]]}, :arn string, :connectorConfig {:activationId string, :activationCode string, :activationExpiry timestamp, :provider string, :roleArn string}, :resourcesVpcConfig {:subnetIds [:seq-of string], :securityGroupIds [:seq-of string], :clusterSecurityGroupId string, :vpcId string, :endpointPublicAccess boolean, :endpointPrivateAccess boolean, :publicAccessCidrs [:seq-of string]}, :computeConfig {:enabled boolean, :nodePools [:seq-of string], :nodeRoleArn string}, :encryptionConfig [:seq-of {:resources [:seq-of string], :provider {:keyArn string}}], :remoteNetworkConfig {:remoteNodeNetworks [:seq-of {:cidrs [:seq-of string]}], :remotePodNetworks [:seq-of {:cidrs [:seq-of string]}]}, :outpostConfig {:outpostArns [:seq-of string], :controlPlaneInstanceType string, :controlPlanePlacement {:groupName string}}, :roleArn string}}}, :AssociateIdentityProviderConfig {:documentation "Associates 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 Role
and ClusterRole
objects, assign permissions to them, and then bind them to the identities using Kubernetes RoleBinding
and ClusterRoleBinding
objects. For more information see Using RBAC Authorization in the Kubernetes documentation.
", :request {:clusterName string, :oidc {:identityProviderConfigName string, :issuerUrl string, :clientId string, :usernameClaim string, :usernamePrefix string, :groupsClaim string, :groupsPrefix string, :requiredClaims [:map-of string string]}, :tags [:map-of string string], :clientRequestToken string}, :required [:clusterName :oidc], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}, :tags [:map-of string string]}}, :TagResource {:documentation "Associates the specified tags to an Amazon EKS resource with the specified resourceArn
. If existing tags on a resource are not specified in the request parameters, they aren't changed. When a resource is deleted, the tags associated with that resource are also deleted. Tags that you create for Amazon EKS resources don't propagate to any other resources associated with the cluster. For example, if you tag a cluster with this operation, that tag doesn't automatically propagate to the subnets and nodes associated with the cluster.
", :request {:resourceArn string, :tags [:map-of string string]}, :required [:resourceArn :tags]}, :UntagResource {:documentation "Deletes specified tags from an Amazon EKS resource.
", :request {:resourceArn string, :tagKeys [:seq-of string]}, :required [:resourceArn :tagKeys]}, :CreateNodegroup {:documentation "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 Customizing managed nodes with launch templates.
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 Amazon Web Services Regions that support Windows on Amazon EKS.
", :request {:nodeRepairConfig {:enabled boolean}, :updateConfig {:maxUnavailable integer, :maxUnavailablePercentage integer}, :tags [:map-of string string], :labels [:map-of string string], :taints [:seq-of {:key string, :value string, :effect [:one-of ["NO_SCHEDULE" "NO_EXECUTE" "PREFER_NO_SCHEDULE"]]}], :releaseVersion string, :clusterName string, :amiType [:one-of ["AL2_x86_64" "AL2_x86_64_GPU" "AL2_ARM_64" "CUSTOM" "BOTTLEROCKET_ARM_64" "BOTTLEROCKET_x86_64" "BOTTLEROCKET_ARM_64_NVIDIA" "BOTTLEROCKET_x86_64_NVIDIA" "WINDOWS_CORE_2019_x86_64" "WINDOWS_FULL_2019_x86_64" "WINDOWS_CORE_2022_x86_64" "WINDOWS_FULL_2022_x86_64" "AL2023_x86_64_STANDARD" "AL2023_ARM_64_STANDARD" "AL2023_x86_64_NEURON" "AL2023_x86_64_NVIDIA"]], :scalingConfig {:minSize integer, :maxSize integer, :desiredSize integer}, :nodeRole string, :nodegroupName string, :capacityType [:one-of ["ON_DEMAND" "SPOT" "CAPACITY_BLOCK"]], :launchTemplate {:name string, :version string, :id string}, :subnets [:seq-of string], :remoteAccess {:ec2SshKey string, :sourceSecurityGroups [:seq-of string]}, :clientRequestToken string, :diskSize integer, :version string, :instanceTypes [:seq-of string]}, :required [:clusterName :nodegroupName :subnets :nodeRole], :response {:nodegroup {:nodeRepairConfig {:enabled boolean}, :updateConfig {:maxUnavailable integer, :maxUnavailablePercentage integer}, :tags [:map-of string string], :labels [:map-of string string], :taints [:seq-of {:key string, :value string, :effect [:one-of ["NO_SCHEDULE" "NO_EXECUTE" "PREFER_NO_SCHEDULE"]]}], :releaseVersion string, :clusterName string, :amiType [:one-of ["AL2_x86_64" "AL2_x86_64_GPU" "AL2_ARM_64" "CUSTOM" "BOTTLEROCKET_ARM_64" "BOTTLEROCKET_x86_64" "BOTTLEROCKET_ARM_64_NVIDIA" "BOTTLEROCKET_x86_64_NVIDIA" "WINDOWS_CORE_2019_x86_64" "WINDOWS_FULL_2019_x86_64" "WINDOWS_CORE_2022_x86_64" "WINDOWS_FULL_2022_x86_64" "AL2023_x86_64_STANDARD" "AL2023_ARM_64_STANDARD" "AL2023_x86_64_NEURON" "AL2023_x86_64_NVIDIA"]], :scalingConfig {:minSize integer, :maxSize integer, :desiredSize integer}, :nodeRole string, :nodegroupName string, :capacityType [:one-of ["ON_DEMAND" "SPOT" "CAPACITY_BLOCK"]], :createdAt timestamp, :launchTemplate {:name string, :version string, :id string}, :subnets [:seq-of string], :remoteAccess {:ec2SshKey string, :sourceSecurityGroups [:seq-of string]}, :status [:one-of ["CREATING" "ACTIVE" "UPDATING" "DELETING" "CREATE_FAILED" "DELETE_FAILED" "DEGRADED"]], :nodegroupArn string, :health {:issues [:seq-of {:code [:one-of ["AutoScalingGroupNotFound" "AutoScalingGroupInvalidConfiguration" "Ec2SecurityGroupNotFound" "Ec2SecurityGroupDeletionFailure" "Ec2LaunchTemplateNotFound" "Ec2LaunchTemplateVersionMismatch" "Ec2SubnetNotFound" "Ec2SubnetInvalidConfiguration" "IamInstanceProfileNotFound" "Ec2SubnetMissingIpv6Assignment" "IamLimitExceeded" "IamNodeRoleNotFound" "NodeCreationFailure" "AsgInstanceLaunchFailures" "InstanceLimitExceeded" "InsufficientFreeAddresses" "AccessDenied" "InternalFailure" "ClusterUnreachable" "AmiIdNotFound" "AutoScalingGroupOptInRequired" "AutoScalingGroupRateLimitExceeded" "Ec2LaunchTemplateDeletionFailure" "Ec2LaunchTemplateInvalidConfiguration" "Ec2LaunchTemplateMaxLimitExceeded" "Ec2SubnetListTooLong" "IamThrottling" "NodeTerminationFailure" "PodEvictionFailure" "SourceEc2LaunchTemplateNotFound" "LimitExceeded" "Unknown" "AutoScalingGroupInstanceRefreshActive" "KubernetesLabelInvalid" "Ec2LaunchTemplateVersionMaxLimitExceeded" "Ec2InstanceTypeDoesNotExist"]], :message string, :resourceIds [:seq-of string]}]}, :diskSize integer, :modifiedAt timestamp, :version string, :resources {:autoScalingGroups [:seq-of {:name string}], :remoteAccessSecurityGroup string}, :instanceTypes [:seq-of string]}}}, :CreateEksAnywhereSubscription {:documentation "Creates an EKS Anywhere subscription. When a subscription is created, it is a contract agreement for the length of the term specified in the request. Licenses that are used to validate support are provisioned in Amazon Web Services License Manager and the caller account is granted access to EKS Anywhere Curated Packages.
", :request {:name string, :term {:duration integer, :unit [:one-of ["MONTHS"]]}, :licenseQuantity integer, :licenseType [:one-of ["Cluster"]], :autoRenew boolean, :clientRequestToken string, :tags [:map-of string string]}, :required [:name :term], :response {:subscription {:licenseType [:one-of ["Cluster"]], :tags [:map-of string string], :licenseQuantity integer, :createdAt timestamp, :effectiveDate timestamp, :term {:duration integer, :unit [:one-of ["MONTHS"]]}, :status string, :id string, :licenseArns [:seq-of string], :arn string, :expirationDate timestamp, :autoRenew boolean}}}, :DescribeCluster {:documentation "Describes 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 Creating or updating a kubeconfig
file for an Amazon EKS cluster.
The API server endpoint and certificate authority data aren't available until the cluster reaches the ACTIVE
state.
", :request {:name string}, :required [:name], :response {:cluster {:tags [:map-of string string], :platformVersion string, :identity {:oidc {:issuer string}}, :zonalShiftConfig {:enabled boolean}, :name string, :kubernetesNetworkConfig {:serviceIpv4Cidr string, :serviceIpv6Cidr string, :ipFamily [:one-of ["ipv4" "ipv6"]], :elasticLoadBalancing {:enabled boolean}}, :createdAt timestamp, :storageConfig {:blockStorage {:enabled boolean}}, :upgradePolicy {:supportType [:one-of ["STANDARD" "EXTENDED"]]}, :logging {:clusterLogging [:seq-of {:types [:seq-of [:one-of ["api" "audit" "authenticator" "controllerManager" "scheduler"]]], :enabled boolean}]}, :clientRequestToken string, :status [:one-of ["CREATING" "ACTIVE" "DELETING" "FAILED" "UPDATING" "PENDING"]], :id string, :health {:issues [:seq-of {:code [:one-of ["AccessDenied" "ClusterUnreachable" "ConfigurationConflict" "InternalFailure" "ResourceLimitExceeded" "ResourceNotFound" "IamRoleNotFound" "VpcNotFound" "InsufficientFreeAddresses" "Ec2ServiceNotSubscribed" "Ec2SubnetNotFound" "Ec2SecurityGroupNotFound" "KmsGrantRevoked" "KmsKeyNotFound" "KmsKeyMarkedForDeletion" "KmsKeyDisabled" "StsRegionalEndpointDisabled" "UnsupportedVersion" "Other"]], :message string, :resourceIds [:seq-of string]}]}, :version string, :certificateAuthority {:data string}, :endpoint string, :accessConfig {:bootstrapClusterCreatorAdminPermissions boolean, :authenticationMode [:one-of ["API" "API_AND_CONFIG_MAP" "CONFIG_MAP"]]}, :arn string, :connectorConfig {:activationId string, :activationCode string, :activationExpiry timestamp, :provider string, :roleArn string}, :resourcesVpcConfig {:subnetIds [:seq-of string], :securityGroupIds [:seq-of string], :clusterSecurityGroupId string, :vpcId string, :endpointPublicAccess boolean, :endpointPrivateAccess boolean, :publicAccessCidrs [:seq-of string]}, :computeConfig {:enabled boolean, :nodePools [:seq-of string], :nodeRoleArn string}, :encryptionConfig [:seq-of {:resources [:seq-of string], :provider {:keyArn string}}], :remoteNetworkConfig {:remoteNodeNetworks [:seq-of {:cidrs [:seq-of string]}], :remotePodNetworks [:seq-of {:cidrs [:seq-of string]}]}, :outpostConfig {:outpostArns [:seq-of string], :controlPlaneInstanceType string, :controlPlanePlacement {:groupName string}}, :roleArn string}}}, :DescribeIdentityProviderConfig {:documentation "Describes an identity provider configuration.
", :request {:clusterName string, :identityProviderConfig {:type string, :name string}}, :required [:clusterName :identityProviderConfig], :response {:identityProviderConfig {:oidc {:clientId string, :tags [:map-of string string], :groupsPrefix string, :clusterName string, :groupsClaim string, :usernameClaim string, :identityProviderConfigArn string, :identityProviderConfigName string, :requiredClaims [:map-of string string], :usernamePrefix string, :status [:one-of ["CREATING" "DELETING" "ACTIVE"]], :issuerUrl string}}}}, :DescribeUpdate {:documentation "Describes an update to an Amazon EKS resource.
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.
", :request {:name string, :updateId string, :nodegroupName string, :addonName string}, :required [:name :updateId], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}}}, :ListAccessPolicies {:documentation "Lists the available access policies.
", :request {:maxResults integer, :nextToken string}, :response {:accessPolicies [:seq-of {:name string, :arn string}], :nextToken string}}, :DescribeNodegroup {:documentation "Describes a managed node group.
", :request {:clusterName string, :nodegroupName string}, :required [:clusterName :nodegroupName], :response {:nodegroup {:nodeRepairConfig {:enabled boolean}, :updateConfig {:maxUnavailable integer, :maxUnavailablePercentage integer}, :tags [:map-of string string], :labels [:map-of string string], :taints [:seq-of {:key string, :value string, :effect [:one-of ["NO_SCHEDULE" "NO_EXECUTE" "PREFER_NO_SCHEDULE"]]}], :releaseVersion string, :clusterName string, :amiType [:one-of ["AL2_x86_64" "AL2_x86_64_GPU" "AL2_ARM_64" "CUSTOM" "BOTTLEROCKET_ARM_64" "BOTTLEROCKET_x86_64" "BOTTLEROCKET_ARM_64_NVIDIA" "BOTTLEROCKET_x86_64_NVIDIA" "WINDOWS_CORE_2019_x86_64" "WINDOWS_FULL_2019_x86_64" "WINDOWS_CORE_2022_x86_64" "WINDOWS_FULL_2022_x86_64" "AL2023_x86_64_STANDARD" "AL2023_ARM_64_STANDARD" "AL2023_x86_64_NEURON" "AL2023_x86_64_NVIDIA"]], :scalingConfig {:minSize integer, :maxSize integer, :desiredSize integer}, :nodeRole string, :nodegroupName string, :capacityType [:one-of ["ON_DEMAND" "SPOT" "CAPACITY_BLOCK"]], :createdAt timestamp, :launchTemplate {:name string, :version string, :id string}, :subnets [:seq-of string], :remoteAccess {:ec2SshKey string, :sourceSecurityGroups [:seq-of string]}, :status [:one-of ["CREATING" "ACTIVE" "UPDATING" "DELETING" "CREATE_FAILED" "DELETE_FAILED" "DEGRADED"]], :nodegroupArn string, :health {:issues [:seq-of {:code [:one-of ["AutoScalingGroupNotFound" "AutoScalingGroupInvalidConfiguration" "Ec2SecurityGroupNotFound" "Ec2SecurityGroupDeletionFailure" "Ec2LaunchTemplateNotFound" "Ec2LaunchTemplateVersionMismatch" "Ec2SubnetNotFound" "Ec2SubnetInvalidConfiguration" "IamInstanceProfileNotFound" "Ec2SubnetMissingIpv6Assignment" "IamLimitExceeded" "IamNodeRoleNotFound" "NodeCreationFailure" "AsgInstanceLaunchFailures" "InstanceLimitExceeded" "InsufficientFreeAddresses" "AccessDenied" "InternalFailure" "ClusterUnreachable" "AmiIdNotFound" "AutoScalingGroupOptInRequired" "AutoScalingGroupRateLimitExceeded" "Ec2LaunchTemplateDeletionFailure" "Ec2LaunchTemplateInvalidConfiguration" "Ec2LaunchTemplateMaxLimitExceeded" "Ec2SubnetListTooLong" "IamThrottling" "NodeTerminationFailure" "PodEvictionFailure" "SourceEc2LaunchTemplateNotFound" "LimitExceeded" "Unknown" "AutoScalingGroupInstanceRefreshActive" "KubernetesLabelInvalid" "Ec2LaunchTemplateVersionMaxLimitExceeded" "Ec2InstanceTypeDoesNotExist"]], :message string, :resourceIds [:seq-of string]}]}, :diskSize integer, :modifiedAt timestamp, :version string, :resources {:autoScalingGroups [:seq-of {:name string}], :remoteAccessSecurityGroup string}, :instanceTypes [:seq-of string]}}}, :CreateCluster {:documentation "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.
You can use the endpointPublicAccess
and endpointPrivateAccess
parameters to enable or disable public and private access to your cluster's Kubernetes API server endpoint. By default, public access is enabled, and private access is disabled. For more information, see Amazon EKS Cluster Endpoint Access Control in the Amazon EKS User Guide .
You can use the logging
parameter to enable or disable exporting the Kubernetes control plane logs for your cluster to CloudWatch Logs. By default, cluster control plane logs aren't exported to CloudWatch Logs. For more information, see Amazon EKS Cluster Control Plane Logs in the Amazon EKS User Guide .
CloudWatch Logs ingestion, archive storage, and data scanning rates apply to exported control plane logs. For more information, see CloudWatch Pricing.
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 Allowing users to access your cluster and Launching Amazon EKS nodes in the Amazon EKS User Guide.
", :request {:tags [:map-of string string], :zonalShiftConfig {:enabled boolean}, :bootstrapSelfManagedAddons boolean, :name string, :kubernetesNetworkConfig {:serviceIpv4Cidr string, :ipFamily [:one-of ["ipv4" "ipv6"]], :elasticLoadBalancing {:enabled boolean}}, :storageConfig {:blockStorage {:enabled boolean}}, :upgradePolicy {:supportType [:one-of ["STANDARD" "EXTENDED"]]}, :logging {:clusterLogging [:seq-of {:types [:seq-of [:one-of ["api" "audit" "authenticator" "controllerManager" "scheduler"]]], :enabled boolean}]}, :clientRequestToken string, :version string, :accessConfig {:bootstrapClusterCreatorAdminPermissions boolean, :authenticationMode [:one-of ["API" "API_AND_CONFIG_MAP" "CONFIG_MAP"]]}, :resourcesVpcConfig {:subnetIds [:seq-of string], :securityGroupIds [:seq-of string], :endpointPublicAccess boolean, :endpointPrivateAccess boolean, :publicAccessCidrs [:seq-of string]}, :computeConfig {:enabled boolean, :nodePools [:seq-of string], :nodeRoleArn string}, :encryptionConfig [:seq-of {:resources [:seq-of string], :provider {:keyArn string}}], :remoteNetworkConfig {:remoteNodeNetworks [:seq-of {:cidrs [:seq-of string]}], :remotePodNetworks [:seq-of {:cidrs [:seq-of string]}]}, :outpostConfig {:outpostArns [:seq-of string], :controlPlaneInstanceType string, :controlPlanePlacement {:groupName string}}, :roleArn string}, :required [:name :roleArn :resourcesVpcConfig], :response {:cluster {:tags [:map-of string string], :platformVersion string, :identity {:oidc {:issuer string}}, :zonalShiftConfig {:enabled boolean}, :name string, :kubernetesNetworkConfig {:serviceIpv4Cidr string, :serviceIpv6Cidr string, :ipFamily [:one-of ["ipv4" "ipv6"]], :elasticLoadBalancing {:enabled boolean}}, :createdAt timestamp, :storageConfig {:blockStorage {:enabled boolean}}, :upgradePolicy {:supportType [:one-of ["STANDARD" "EXTENDED"]]}, :logging {:clusterLogging [:seq-of {:types [:seq-of [:one-of ["api" "audit" "authenticator" "controllerManager" "scheduler"]]], :enabled boolean}]}, :clientRequestToken string, :status [:one-of ["CREATING" "ACTIVE" "DELETING" "FAILED" "UPDATING" "PENDING"]], :id string, :health {:issues [:seq-of {:code [:one-of ["AccessDenied" "ClusterUnreachable" "ConfigurationConflict" "InternalFailure" "ResourceLimitExceeded" "ResourceNotFound" "IamRoleNotFound" "VpcNotFound" "InsufficientFreeAddresses" "Ec2ServiceNotSubscribed" "Ec2SubnetNotFound" "Ec2SecurityGroupNotFound" "KmsGrantRevoked" "KmsKeyNotFound" "KmsKeyMarkedForDeletion" "KmsKeyDisabled" "StsRegionalEndpointDisabled" "UnsupportedVersion" "Other"]], :message string, :resourceIds [:seq-of string]}]}, :version string, :certificateAuthority {:data string}, :endpoint string, :accessConfig {:bootstrapClusterCreatorAdminPermissions boolean, :authenticationMode [:one-of ["API" "API_AND_CONFIG_MAP" "CONFIG_MAP"]]}, :arn string, :connectorConfig {:activationId string, :activationCode string, :activationExpiry timestamp, :provider string, :roleArn string}, :resourcesVpcConfig {:subnetIds [:seq-of string], :securityGroupIds [:seq-of string], :clusterSecurityGroupId string, :vpcId string, :endpointPublicAccess boolean, :endpointPrivateAccess boolean, :publicAccessCidrs [:seq-of string]}, :computeConfig {:enabled boolean, :nodePools [:seq-of string], :nodeRoleArn string}, :encryptionConfig [:seq-of {:resources [:seq-of string], :provider {:keyArn string}}], :remoteNetworkConfig {:remoteNodeNetworks [:seq-of {:cidrs [:seq-of string]}], :remotePodNetworks [:seq-of {:cidrs [:seq-of string]}]}, :outpostConfig {:outpostArns [:seq-of string], :controlPlaneInstanceType string, :controlPlanePlacement {:groupName string}}, :roleArn string}}}, :DescribeAddonVersions {:documentation "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.
", :request {:kubernetesVersion string, :maxResults integer, :nextToken string, :addonName string, :types [:seq-of string], :publishers [:seq-of string], :owners [:seq-of string]}, :response {:addons [:seq-of {:addonName string, :type string, :addonVersions [:seq-of {:addonVersion string, :architecture [:seq-of string], :computeTypes [:seq-of string], :compatibilities [:seq-of {:clusterVersion string, :platformVersions [:seq-of string], :defaultVersion boolean}], :requiresConfiguration boolean, :requiresIamPermissions boolean}], :publisher string, :owner string, :marketplaceInformation {:productId string, :productUrl string}}], :nextToken string}}, :ListIdentityProviderConfigs {:documentation "Lists the identity provider configurations for your cluster.
", :request {:clusterName string, :maxResults integer, :nextToken string}, :required [:clusterName], :response {:identityProviderConfigs [:seq-of {:type string, :name string}], :nextToken string}}, :DeleteAccessEntry {:documentation "Deletes an access entry.
Deleting an access entry of a type other than Standard
can cause your cluster to function improperly. If you delete an access entry in error, you can recreate it.
", :request {:clusterName string, :principalArn string}, :required [:clusterName :principalArn]}, :DescribeAddon {:documentation "Describes an Amazon EKS add-on.
", :request {:clusterName string, :addonName string}, :required [:clusterName :addonName], :response {:addon {:tags [:map-of string string], :clusterName string, :publisher string, :marketplaceInformation {:productId string, :productUrl string}, :configurationValues string, :createdAt timestamp, :addonArn string, :podIdentityAssociations [:seq-of string], :addonName string, :status [:one-of ["CREATING" "ACTIVE" "CREATE_FAILED" "UPDATING" "DELETING" "DELETE_FAILED" "DEGRADED" "UPDATE_FAILED"]], :health {:issues [:seq-of {:code [:one-of ["AccessDenied" "InternalFailure" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound" "AddonSubscriptionNeeded" "AddonPermissionFailure"]], :message string, :resourceIds [:seq-of string]}]}, :modifiedAt timestamp, :serviceAccountRoleArn string, :addonVersion string, :owner string}}}, :UpdateEksAnywhereSubscription {:documentation "Update an EKS Anywhere Subscription. Only auto renewal and tags can be updated after subscription creation.
", :request {:id string, :autoRenew boolean, :clientRequestToken string}, :required [:id :autoRenew], :response {:subscription {:licenseType [:one-of ["Cluster"]], :tags [:map-of string string], :licenseQuantity integer, :createdAt timestamp, :effectiveDate timestamp, :term {:duration integer, :unit [:one-of ["MONTHS"]]}, :status string, :id string, :licenseArns [:seq-of string], :arn string, :expirationDate timestamp, :autoRenew boolean}}}, :UpdateAddon {:documentation "Updates an Amazon EKS add-on.
", :request {:clusterName string, :addonName string, :addonVersion string, :serviceAccountRoleArn string, :resolveConflicts [:one-of ["OVERWRITE" "NONE" "PRESERVE"]], :clientRequestToken string, :configurationValues string, :podIdentityAssociations [:seq-of {:serviceAccount string, :roleArn string}]}, :required [:clusterName :addonName], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}}}, :ListAccessEntries {:documentation "Lists the access entries for your cluster.
", :request {:clusterName string, :associatedPolicyArn string, :maxResults integer, :nextToken string}, :required [:clusterName], :response {:accessEntries [:seq-of string], :nextToken string}}, :DescribeEksAnywhereSubscription {:documentation "Returns descriptive information about a subscription.
", :request {:id string}, :required [:id], :response {:subscription {:licenseType [:one-of ["Cluster"]], :tags [:map-of string string], :licenseQuantity integer, :createdAt timestamp, :effectiveDate timestamp, :term {:duration integer, :unit [:one-of ["MONTHS"]]}, :status string, :id string, :licenseArns [:seq-of string], :arn string, :expirationDate timestamp, :autoRenew boolean}}}, :UpdateNodegroupConfig {:documentation "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.
", :request {:clusterName string, :nodegroupName string, :labels {:addOrUpdateLabels [:map-of string string], :removeLabels [:seq-of string]}, :taints {:addOrUpdateTaints [:seq-of {:key string, :value string, :effect [:one-of ["NO_SCHEDULE" "NO_EXECUTE" "PREFER_NO_SCHEDULE"]]}], :removeTaints [:seq-of {:key string, :value string, :effect [:one-of ["NO_SCHEDULE" "NO_EXECUTE" "PREFER_NO_SCHEDULE"]]}]}, :scalingConfig {:minSize integer, :maxSize integer, :desiredSize integer}, :updateConfig {:maxUnavailable integer, :maxUnavailablePercentage integer}, :nodeRepairConfig {:enabled boolean}, :clientRequestToken string}, :required [:clusterName :nodegroupName], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}}}, :AssociateAccessPolicy {:documentation "Associates an access policy and its scope to an access entry. For more information about associating access policies, see Associating and disassociating access policies to and from access entries in the Amazon EKS User Guide.
", :request {:clusterName string, :principalArn string, :policyArn string, :accessScope {:type [:one-of ["cluster" "namespace"]], :namespaces [:seq-of string]}}, :required [:clusterName :principalArn :policyArn :accessScope], :response {:clusterName string, :principalArn string, :associatedAccessPolicy {:policyArn string, :accessScope {:type [:one-of ["cluster" "namespace"]], :namespaces [:seq-of string]}, :associatedAt timestamp, :modifiedAt timestamp}}}, :DeleteAddon {:documentation "Deletes an Amazon EKS add-on.
When you remove an add-on, it's deleted from the cluster. You can always manually start an add-on on the cluster using the Kubernetes API.
", :request {:clusterName string, :addonName string, :preserve boolean}, :required [:clusterName :addonName], :response {:addon {:tags [:map-of string string], :clusterName string, :publisher string, :marketplaceInformation {:productId string, :productUrl string}, :configurationValues string, :createdAt timestamp, :addonArn string, :podIdentityAssociations [:seq-of string], :addonName string, :status [:one-of ["CREATING" "ACTIVE" "CREATE_FAILED" "UPDATING" "DELETING" "DELETE_FAILED" "DEGRADED" "UPDATE_FAILED"]], :health {:issues [:seq-of {:code [:one-of ["AccessDenied" "InternalFailure" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound" "AddonSubscriptionNeeded" "AddonPermissionFailure"]], :message string, :resourceIds [:seq-of string]}]}, :modifiedAt timestamp, :serviceAccountRoleArn string, :addonVersion string, :owner string}}}, :ListPodIdentityAssociations {:documentation "List the EKS Pod Identity associations in a cluster. You can filter the list by the namespace that the association is in or the service account that the association uses.
", :request {:clusterName string, :namespace string, :serviceAccount string, :maxResults integer, :nextToken string}, :required [:clusterName], :response {:associations [:seq-of {:clusterName string, :namespace string, :serviceAccount string, :associationArn string, :associationId string, :ownerArn string}], :nextToken string}}, :DescribeInsight {:documentation "Returns details about an insight that you specify using its ID.
", :request {:clusterName string, :id string}, :required [:clusterName :id], :response {:insight {:description string, :category [:one-of ["UPGRADE_READINESS"]], :lastTransitionTime timestamp, :additionalInfo [:map-of string string], :name string, :insightStatus {:status [:one-of ["PASSING" "WARNING" "ERROR" "UNKNOWN"]], :reason string}, :recommendation string, :categorySpecificSummary {:deprecationDetails [:seq-of {:usage string, :replacedWith string, :stopServingVersion string, :startServingReplacementVersion string, :clientStats [:seq-of {:userAgent string, :numberOfRequestsLast30Days integer, :lastRequestTime timestamp}]}], :addonCompatibilityDetails [:seq-of {:name string, :compatibleVersions [:seq-of string]}]}, :lastRefreshTime timestamp, :id string, :resources [:seq-of {:insightStatus {:status [:one-of ["PASSING" "WARNING" "ERROR" "UNKNOWN"]], :reason string}, :kubernetesResourceUri string, :arn string}], :kubernetesVersion string}}}, :UpdateClusterVersion {:documentation "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.
", :request {:name string, :version string, :clientRequestToken string}, :required [:name :version], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}}}, :ListInsights {:documentation "Returns a list of all insights checked for against the specified cluster. You can filter which insights are returned by category, associated Kubernetes version, and status.
", :request {:clusterName string, :filter {:categories [:seq-of [:one-of ["UPGRADE_READINESS"]]], :kubernetesVersions [:seq-of string], :statuses [:seq-of [:one-of ["PASSING" "WARNING" "ERROR" "UNKNOWN"]]]}, :maxResults integer, :nextToken string}, :required [:clusterName], :response {:insights [:seq-of {:id string, :name string, :category [:one-of ["UPGRADE_READINESS"]], :kubernetesVersion string, :lastRefreshTime timestamp, :lastTransitionTime timestamp, :description string, :insightStatus {:status [:one-of ["PASSING" "WARNING" "ERROR" "UNKNOWN"]], :reason string}}], :nextToken string}}, :ListFargateProfiles {:documentation "Lists the Fargate profiles associated with the specified cluster in your Amazon Web Services account in the specified Amazon Web Services Region.
", :request {:clusterName string, :maxResults integer, :nextToken string}, :required [:clusterName], :response {:fargateProfileNames [:seq-of string], :nextToken string}}, :ListUpdates {:documentation "Lists the updates associated with an Amazon EKS resource in your Amazon Web Services account, in the specified Amazon Web Services Region.
", :request {:name string, :nodegroupName string, :addonName string, :nextToken string, :maxResults integer}, :required [:name], :response {:updateIds [:seq-of string], :nextToken string}}, :ListClusters {:documentation "Lists the Amazon EKS clusters in your Amazon Web Services account in the specified Amazon Web Services Region.
", :request {:maxResults integer, :nextToken string, :include [:seq-of string]}, :response {:clusters [:seq-of string], :nextToken string}}, :CreatePodIdentityAssociation {:documentation "Creates an EKS Pod Identity association between a service account in an Amazon EKS cluster and an IAM role with EKS Pod Identity. Use EKS Pod Identity to give temporary IAM credentials to pods and the credentials are rotated automatically.
Amazon EKS Pod Identity associations provide the ability to manage credentials for your applications, similar to the way that Amazon EC2 instance profiles provide credentials to Amazon EC2 instances.
If a pod uses a service account that has an association, Amazon EKS sets environment variables in the containers of the pod. The environment variables configure the Amazon Web Services SDKs, including the Command Line Interface, to use the EKS Pod Identity credentials.
Pod Identity is a simpler method than IAM roles for service accounts, as this method doesn't use OIDC identity providers. Additionally, you can configure a role for Pod Identity once, and reuse it across clusters.
", :request {:clusterName string, :namespace string, :serviceAccount string, :roleArn string, :clientRequestToken string, :tags [:map-of string string]}, :required [:clusterName :namespace :serviceAccount :roleArn], :response {:association {:serviceAccount string, :tags [:map-of string string], :clusterName string, :associationId string, :associationArn string, :ownerArn string, :createdAt timestamp, :modifiedAt timestamp, :namespace string, :roleArn string}}}, :UpdateClusterConfig {:documentation "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 DescribeUpdate
\"/>.
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 also use this API operation to choose different subnets and security groups for the cluster. You must specify at least two subnets that are in different Availability Zones. You can't change which VPC the subnets are from, the subnets must be in the same VPC as the subnets that the cluster was created with. For more information about the VPC requirements, see https://docs.aws.amazon.com/eks/latest/userguide/network_reqs.html in the Amazon EKS User Guide .
You can also use this API operation to enable or disable ARC zonal shift. If zonal shift is enabled, Amazon Web Services configures zonal autoshift for the 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
.
", :request {:zonalShiftConfig {:enabled boolean}, :name string, :kubernetesNetworkConfig {:serviceIpv4Cidr string, :ipFamily [:one-of ["ipv4" "ipv6"]], :elasticLoadBalancing {:enabled boolean}}, :storageConfig {:blockStorage {:enabled boolean}}, :upgradePolicy {:supportType [:one-of ["STANDARD" "EXTENDED"]]}, :logging {:clusterLogging [:seq-of {:types [:seq-of [:one-of ["api" "audit" "authenticator" "controllerManager" "scheduler"]]], :enabled boolean}]}, :clientRequestToken string, :accessConfig {:authenticationMode [:one-of ["API" "API_AND_CONFIG_MAP" "CONFIG_MAP"]]}, :resourcesVpcConfig {:subnetIds [:seq-of string], :securityGroupIds [:seq-of string], :endpointPublicAccess boolean, :endpointPrivateAccess boolean, :publicAccessCidrs [:seq-of string]}, :computeConfig {:enabled boolean, :nodePools [:seq-of string], :nodeRoleArn string}}, :required [:name], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}}}, :CreateAccessEntry {:documentation "Creates an access entry.
An access entry allows an IAM principal to access your cluster. Access entries can replace the need to maintain entries in the aws-auth
ConfigMap
for authentication. You have the following options for authorizing an IAM principal to access Kubernetes objects on your cluster: Kubernetes role-based access control (RBAC), Amazon EKS, or both. Kubernetes RBAC authorization requires you to create and manage Kubernetes Role
, ClusterRole
, RoleBinding
, and ClusterRoleBinding
objects, in addition to managing access entries. If you use Amazon EKS authorization exclusively, you don't need to create and manage Kubernetes Role
, ClusterRole
, RoleBinding
, and ClusterRoleBinding
objects.
For more information about access entries, see Access entries in the Amazon EKS User Guide.
", :request {:clusterName string, :principalArn string, :kubernetesGroups [:seq-of string], :tags [:map-of string string], :clientRequestToken string, :username string, :type string}, :required [:clusterName :principalArn], :response {:accessEntry {:tags [:map-of string string], :clusterName string, :accessEntryArn string, :username string, :createdAt timestamp, :type string, :kubernetesGroups [:seq-of string], :modifiedAt timestamp, :principalArn string}}}, :UpdateAccessEntry {:documentation "Updates an access entry.
", :request {:clusterName string, :principalArn string, :kubernetesGroups [:seq-of string], :clientRequestToken string, :username string}, :required [:clusterName :principalArn], :response {:accessEntry {:tags [:map-of string string], :clusterName string, :accessEntryArn string, :username string, :createdAt timestamp, :type string, :kubernetesGroups [:seq-of string], :modifiedAt timestamp, :principalArn string}}}, :DescribeAccessEntry {:documentation "Describes an access entry.
", :request {:clusterName string, :principalArn string}, :required [:clusterName :principalArn], :response {:accessEntry {:tags [:map-of string string], :clusterName string, :accessEntryArn string, :username string, :createdAt timestamp, :type string, :kubernetesGroups [:seq-of string], :modifiedAt timestamp, :principalArn string}}}, :DisassociateAccessPolicy {:documentation "Disassociates an access policy from an access entry.
", :request {:clusterName string, :principalArn string, :policyArn string}, :required [:clusterName :principalArn :policyArn]}, :ListAddons {:documentation "Lists the installed add-ons.
", :request {:clusterName string, :maxResults integer, :nextToken string}, :required [:clusterName], :response {:addons [:seq-of string], :nextToken string}}, :DeleteNodegroup {:documentation "Deletes a managed node group.
", :request {:clusterName string, :nodegroupName string}, :required [:clusterName :nodegroupName], :response {:nodegroup {:nodeRepairConfig {:enabled boolean}, :updateConfig {:maxUnavailable integer, :maxUnavailablePercentage integer}, :tags [:map-of string string], :labels [:map-of string string], :taints [:seq-of {:key string, :value string, :effect [:one-of ["NO_SCHEDULE" "NO_EXECUTE" "PREFER_NO_SCHEDULE"]]}], :releaseVersion string, :clusterName string, :amiType [:one-of ["AL2_x86_64" "AL2_x86_64_GPU" "AL2_ARM_64" "CUSTOM" "BOTTLEROCKET_ARM_64" "BOTTLEROCKET_x86_64" "BOTTLEROCKET_ARM_64_NVIDIA" "BOTTLEROCKET_x86_64_NVIDIA" "WINDOWS_CORE_2019_x86_64" "WINDOWS_FULL_2019_x86_64" "WINDOWS_CORE_2022_x86_64" "WINDOWS_FULL_2022_x86_64" "AL2023_x86_64_STANDARD" "AL2023_ARM_64_STANDARD" "AL2023_x86_64_NEURON" "AL2023_x86_64_NVIDIA"]], :scalingConfig {:minSize integer, :maxSize integer, :desiredSize integer}, :nodeRole string, :nodegroupName string, :capacityType [:one-of ["ON_DEMAND" "SPOT" "CAPACITY_BLOCK"]], :createdAt timestamp, :launchTemplate {:name string, :version string, :id string}, :subnets [:seq-of string], :remoteAccess {:ec2SshKey string, :sourceSecurityGroups [:seq-of string]}, :status [:one-of ["CREATING" "ACTIVE" "UPDATING" "DELETING" "CREATE_FAILED" "DELETE_FAILED" "DEGRADED"]], :nodegroupArn string, :health {:issues [:seq-of {:code [:one-of ["AutoScalingGroupNotFound" "AutoScalingGroupInvalidConfiguration" "Ec2SecurityGroupNotFound" "Ec2SecurityGroupDeletionFailure" "Ec2LaunchTemplateNotFound" "Ec2LaunchTemplateVersionMismatch" "Ec2SubnetNotFound" "Ec2SubnetInvalidConfiguration" "IamInstanceProfileNotFound" "Ec2SubnetMissingIpv6Assignment" "IamLimitExceeded" "IamNodeRoleNotFound" "NodeCreationFailure" "AsgInstanceLaunchFailures" "InstanceLimitExceeded" "InsufficientFreeAddresses" "AccessDenied" "InternalFailure" "ClusterUnreachable" "AmiIdNotFound" "AutoScalingGroupOptInRequired" "AutoScalingGroupRateLimitExceeded" "Ec2LaunchTemplateDeletionFailure" "Ec2LaunchTemplateInvalidConfiguration" "Ec2LaunchTemplateMaxLimitExceeded" "Ec2SubnetListTooLong" "IamThrottling" "NodeTerminationFailure" "PodEvictionFailure" "SourceEc2LaunchTemplateNotFound" "LimitExceeded" "Unknown" "AutoScalingGroupInstanceRefreshActive" "KubernetesLabelInvalid" "Ec2LaunchTemplateVersionMaxLimitExceeded" "Ec2InstanceTypeDoesNotExist"]], :message string, :resourceIds [:seq-of string]}]}, :diskSize integer, :modifiedAt timestamp, :version string, :resources {:autoScalingGroups [:seq-of {:name string}], :remoteAccessSecurityGroup string}, :instanceTypes [:seq-of string]}}}, :ListAssociatedAccessPolicies {:documentation "Lists the access policies associated with an access entry.
", :request {:clusterName string, :principalArn string, :maxResults integer, :nextToken string}, :required [:clusterName :principalArn], :response {:clusterName string, :principalArn string, :nextToken string, :associatedAccessPolicies [:seq-of {:policyArn string, :accessScope {:type [:one-of ["cluster" "namespace"]], :namespaces [:seq-of string]}, :associatedAt timestamp, :modifiedAt timestamp}]}}, :UpdatePodIdentityAssociation {:documentation "Updates a EKS Pod Identity association. Only the IAM role can be changed; an association can't be moved between clusters, namespaces, or service accounts. If you need to edit the namespace or service account, you need to delete the association and then create a new association with your desired settings.
", :request {:clusterName string, :associationId string, :roleArn string, :clientRequestToken string}, :required [:clusterName :associationId], :response {:association {:serviceAccount string, :tags [:map-of string string], :clusterName string, :associationId string, :associationArn string, :ownerArn string, :createdAt timestamp, :modifiedAt timestamp, :namespace string, :roleArn string}}}, :CreateFargateProfile {:documentation "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.
", :request {:fargateProfileName string, :clusterName string, :podExecutionRoleArn string, :subnets [:seq-of string], :selectors [:seq-of {:namespace string, :labels [:map-of string string]}], :clientRequestToken string, :tags [:map-of string string]}, :required [:fargateProfileName :clusterName :podExecutionRoleArn], :response {:fargateProfile {:fargateProfileName string, :tags [:map-of string string], :clusterName string, :createdAt timestamp, :subnets [:seq-of string], :status [:one-of ["CREATING" "ACTIVE" "DELETING" "CREATE_FAILED" "DELETE_FAILED"]], :podExecutionRoleArn string, :health {:issues [:seq-of {:code [:one-of ["PodExecutionRoleAlreadyInUse" "AccessDenied" "ClusterUnreachable" "InternalFailure"]], :message string, :resourceIds [:seq-of string]}]}, :selectors [:seq-of {:namespace string, :labels [:map-of string string]}], :fargateProfileArn string}}}, :CreateAddon {: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.
", :request {:tags [:map-of string string], :clusterName string, :resolveConflicts [:one-of ["OVERWRITE" "NONE" "PRESERVE"]], :configurationValues string, :podIdentityAssociations [:seq-of {:serviceAccount string, :roleArn string}], :addonName string, :clientRequestToken string, :serviceAccountRoleArn string, :addonVersion string}, :required [:clusterName :addonName], :response {:addon {:tags [:map-of string string], :clusterName string, :publisher string, :marketplaceInformation {:productId string, :productUrl string}, :configurationValues string, :createdAt timestamp, :addonArn string, :podIdentityAssociations [:seq-of string], :addonName string, :status [:one-of ["CREATING" "ACTIVE" "CREATE_FAILED" "UPDATING" "DELETING" "DELETE_FAILED" "DEGRADED" "UPDATE_FAILED"]], :health {:issues [:seq-of {:code [:one-of ["AccessDenied" "InternalFailure" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound" "AddonSubscriptionNeeded" "AddonPermissionFailure"]], :message string, :resourceIds [:seq-of string]}]}, :modifiedAt timestamp, :serviceAccountRoleArn string, :addonVersion string, :owner string}}}, :DisassociateIdentityProviderConfig {:documentation "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 IAM principals.
", :request {:clusterName string, :identityProviderConfig {:type string, :name string}, :clientRequestToken string}, :required [:clusterName :identityProviderConfig], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}}}, :DeleteFargateProfile {:documentation "Deletes an Fargate profile.
When you delete a Fargate profile, any Pod
running on Fargate that was created with the profile is deleted. If the Pod
matches another Fargate profile, then it is scheduled on Fargate with that profile. If it no longer matches any Fargate profiles, then it's not scheduled on Fargate and 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.
", :request {:clusterName string, :fargateProfileName string}, :required [:clusterName :fargateProfileName], :response {:fargateProfile {:fargateProfileName string, :tags [:map-of string string], :clusterName string, :createdAt timestamp, :subnets [:seq-of string], :status [:one-of ["CREATING" "ACTIVE" "DELETING" "CREATE_FAILED" "DELETE_FAILED"]], :podExecutionRoleArn string, :health {:issues [:seq-of {:code [:one-of ["PodExecutionRoleAlreadyInUse" "AccessDenied" "ClusterUnreachable" "InternalFailure"]], :message string, :resourceIds [:seq-of string]}]}, :selectors [:seq-of {:namespace string, :labels [:map-of string string]}], :fargateProfileArn string}}}, :DeleteCluster {:documentation "Deletes an 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 DeleteNodgroup
and DeleteFargateProfile
.
", :request {:name string}, :required [:name], :response {:cluster {:tags [:map-of string string], :platformVersion string, :identity {:oidc {:issuer string}}, :zonalShiftConfig {:enabled boolean}, :name string, :kubernetesNetworkConfig {:serviceIpv4Cidr string, :serviceIpv6Cidr string, :ipFamily [:one-of ["ipv4" "ipv6"]], :elasticLoadBalancing {:enabled boolean}}, :createdAt timestamp, :storageConfig {:blockStorage {:enabled boolean}}, :upgradePolicy {:supportType [:one-of ["STANDARD" "EXTENDED"]]}, :logging {:clusterLogging [:seq-of {:types [:seq-of [:one-of ["api" "audit" "authenticator" "controllerManager" "scheduler"]]], :enabled boolean}]}, :clientRequestToken string, :status [:one-of ["CREATING" "ACTIVE" "DELETING" "FAILED" "UPDATING" "PENDING"]], :id string, :health {:issues [:seq-of {:code [:one-of ["AccessDenied" "ClusterUnreachable" "ConfigurationConflict" "InternalFailure" "ResourceLimitExceeded" "ResourceNotFound" "IamRoleNotFound" "VpcNotFound" "InsufficientFreeAddresses" "Ec2ServiceNotSubscribed" "Ec2SubnetNotFound" "Ec2SecurityGroupNotFound" "KmsGrantRevoked" "KmsKeyNotFound" "KmsKeyMarkedForDeletion" "KmsKeyDisabled" "StsRegionalEndpointDisabled" "UnsupportedVersion" "Other"]], :message string, :resourceIds [:seq-of string]}]}, :version string, :certificateAuthority {:data string}, :endpoint string, :accessConfig {:bootstrapClusterCreatorAdminPermissions boolean, :authenticationMode [:one-of ["API" "API_AND_CONFIG_MAP" "CONFIG_MAP"]]}, :arn string, :connectorConfig {:activationId string, :activationCode string, :activationExpiry timestamp, :provider string, :roleArn string}, :resourcesVpcConfig {:subnetIds [:seq-of string], :securityGroupIds [:seq-of string], :clusterSecurityGroupId string, :vpcId string, :endpointPublicAccess boolean, :endpointPrivateAccess boolean, :publicAccessCidrs [:seq-of string]}, :computeConfig {:enabled boolean, :nodePools [:seq-of string], :nodeRoleArn string}, :encryptionConfig [:seq-of {:resources [:seq-of string], :provider {:keyArn string}}], :remoteNetworkConfig {:remoteNodeNetworks [:seq-of {:cidrs [:seq-of string]}], :remotePodNetworks [:seq-of {:cidrs [:seq-of string]}]}, :outpostConfig {:outpostArns [:seq-of string], :controlPlaneInstanceType string, :controlPlanePlacement {:groupName string}}, :roleArn string}}}, :UpdateNodegroupVersion {:documentation "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, every Pod
on that node is 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.
", :request {:clusterName string, :nodegroupName string, :version string, :releaseVersion string, :launchTemplate {:name string, :version string, :id string}, :force boolean, :clientRequestToken string}, :required [:clusterName :nodegroupName], :response {:update {:id string, :status [:one-of ["InProgress" "Failed" "Cancelled" "Successful"]], :type [:one-of ["VersionUpdate" "EndpointAccessUpdate" "LoggingUpdate" "ConfigUpdate" "AssociateIdentityProviderConfig" "DisassociateIdentityProviderConfig" "AssociateEncryptionConfig" "AddonUpdate" "VpcConfigUpdate" "AccessConfigUpdate" "UpgradePolicyUpdate" "ZonalShiftConfigUpdate" "AutoModeUpdate"]], :params [:seq-of {:type [:one-of ["Version" "PlatformVersion" "EndpointPrivateAccess" "EndpointPublicAccess" "ClusterLogging" "DesiredSize" "LabelsToAdd" "LabelsToRemove" "TaintsToAdd" "TaintsToRemove" "MaxSize" "MinSize" "ReleaseVersion" "PublicAccessCidrs" "LaunchTemplateName" "LaunchTemplateVersion" "IdentityProviderConfig" "EncryptionConfig" "AddonVersion" "ServiceAccountRoleArn" "ResolveConflicts" "MaxUnavailable" "MaxUnavailablePercentage" "NodeRepairEnabled" "ConfigurationValues" "SecurityGroups" "Subnets" "AuthenticationMode" "PodIdentityAssociations" "UpgradePolicy" "ZonalShiftConfig" "ComputeConfig" "StorageConfig" "KubernetesNetworkConfig"]], :value string}], :createdAt timestamp, :errors [:seq-of {:errorCode [:one-of ["SubnetNotFound" "SecurityGroupNotFound" "EniLimitReached" "IpNotAvailable" "AccessDenied" "OperationNotPermitted" "VpcIdNotFound" "Unknown" "NodeCreationFailure" "PodEvictionFailure" "InsufficientFreeAddresses" "ClusterUnreachable" "InsufficientNumberOfReplicas" "ConfigurationConflict" "AdmissionRequestDenied" "UnsupportedAddonModification" "K8sResourceNotFound"]], :errorMessage string, :resourceIds [:seq-of string]}]}}}, :DescribeFargateProfile {:documentation "Describes an Fargate profile.
", :request {:clusterName string, :fargateProfileName string}, :required [:clusterName :fargateProfileName], :response {:fargateProfile {:fargateProfileName string, :tags [:map-of string string], :clusterName string, :createdAt timestamp, :subnets [:seq-of string], :status [:one-of ["CREATING" "ACTIVE" "DELETING" "CREATE_FAILED" "DELETE_FAILED"]], :podExecutionRoleArn string, :health {:issues [:seq-of {:code [:one-of ["PodExecutionRoleAlreadyInUse" "AccessDenied" "ClusterUnreachable" "InternalFailure"]], :message string, :resourceIds [:seq-of string]}]}, :selectors [:seq-of {:namespace string, :labels [:map-of string string]}], :fargateProfileArn string}}}, :DescribePodIdentityAssociation {:documentation "Returns descriptive information about an EKS Pod Identity association.
This action requires the ID of the association. You can get the ID from the response to the CreatePodIdentityAssocation
for newly created associations. Or, you can list the IDs for associations with ListPodIdentityAssociations
and filter the list by namespace or service account.
", :request {:clusterName string, :associationId string}, :required [:clusterName :associationId], :response {:association {:serviceAccount string, :tags [:map-of string string], :clusterName string, :associationId string, :associationArn string, :ownerArn string, :createdAt timestamp, :modifiedAt timestamp, :namespace string, :roleArn string}}}, :ListEksAnywhereSubscriptions {:documentation "Displays the full description of the subscription.
", :request {:maxResults integer, :nextToken string, :includeStatus [:seq-of [:one-of ["CREATING" "ACTIVE" "UPDATING" "EXPIRING" "EXPIRED" "DELETING"]]]}, :response {:subscriptions [:seq-of {:licenseType [:one-of ["Cluster"]], :tags [:map-of string string], :licenseQuantity integer, :createdAt timestamp, :effectiveDate timestamp, :term {:duration integer, :unit [:one-of ["MONTHS"]]}, :status string, :id string, :licenseArns [:seq-of string], :arn string, :expirationDate timestamp, :autoRenew boolean}], :nextToken string}}, :DeletePodIdentityAssociation {:documentation "Deletes a EKS Pod Identity association.
The temporary Amazon Web Services credentials from the previous IAM role session might still be valid until the session expiry. If you need to immediately revoke the temporary session credentials, then go to the role in the IAM console.
", :request {:clusterName string, :associationId string}, :required [:clusterName :associationId], :response {:association {:serviceAccount string, :tags [:map-of string string], :clusterName string, :associationId string, :associationArn string, :ownerArn string, :createdAt timestamp, :modifiedAt timestamp, :namespace string, :roleArn string}}}}