UNPKG

openapi-directory

Version:

Building & bundling https://github.com/APIs-guru/openapi-directory for easy use from JS

1 lines 244 kB
{"openapi":"3.0.0","info":{"version":"2017-11-01","x-release":"v4","title":"Amazon Elastic Kubernetes Service","description":"<p>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. </p> <p>Amazon EKS runs up-to-date versions of the open-source Kubernetes software, so you can use all the existing plugins and tooling from the Kubernetes community. Applications running on Amazon EKS are fully compatible with applications running on any standard Kubernetes environment, whether running in on-premises data centers or public clouds. This means that you can easily migrate any standard Kubernetes application to Amazon EKS without any code modification required.</p>","x-logo":{"url":"https://twitter.com/awscloud/profile_image?size=original","backgroundColor":"#FFFFFF"},"termsOfService":"https://aws.amazon.com/service-terms/","contact":{"name":"Mike Ralphson","email":"mike.ralphson@gmail.com","url":"https://github.com/mermade/aws2openapi","x-twitter":"PermittedSoc"},"license":{"name":"Apache 2.0 License","url":"http://www.apache.org/licenses/"},"x-providerName":"amazonaws.com","x-serviceName":"eks","x-aws-signingName":"eks","x-origin":[{"contentType":"application/json","url":"https://raw.githubusercontent.com/aws/aws-sdk-js/master/apis/eks-2017-11-01.normal.json","converter":{"url":"https://github.com/mermade/aws2openapi","version":"1.0.0"},"x-apisguru-driver":"external"}],"x-apiClientRegistration":{"url":"https://portal.aws.amazon.com/gp/aws/developer/registration/index.html?nc2=h_ct"},"x-apisguru-categories":["cloud"],"x-preferred":true},"externalDocs":{"description":"Amazon Web Services documentation","url":"https://docs.aws.amazon.com/eks/"},"servers":[{"url":"http://eks.{region}.amazonaws.com","variables":{"region":{"description":"The AWS region","enum":["us-east-1","us-east-2","us-west-1","us-west-2","us-gov-west-1","us-gov-east-1","ca-central-1","eu-north-1","eu-west-1","eu-west-2","eu-west-3","eu-central-1","eu-south-1","af-south-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-southeast-1","ap-southeast-2","ap-east-1","ap-south-1","sa-east-1","me-south-1"],"default":"us-east-1"}},"description":"The Amazon EKS multi-region endpoint"},{"url":"https://eks.{region}.amazonaws.com","variables":{"region":{"description":"The AWS region","enum":["us-east-1","us-east-2","us-west-1","us-west-2","us-gov-west-1","us-gov-east-1","ca-central-1","eu-north-1","eu-west-1","eu-west-2","eu-west-3","eu-central-1","eu-south-1","af-south-1","ap-northeast-1","ap-northeast-2","ap-northeast-3","ap-southeast-1","ap-southeast-2","ap-east-1","ap-south-1","sa-east-1","me-south-1"],"default":"us-east-1"}},"description":"The Amazon EKS multi-region endpoint"},{"url":"http://eks.{region}.amazonaws.com.cn","variables":{"region":{"description":"The AWS region","enum":["cn-north-1","cn-northwest-1"],"default":"cn-north-1"}},"description":"The Amazon EKS endpoint for China (Beijing) and China (Ningxia)"},{"url":"https://eks.{region}.amazonaws.com.cn","variables":{"region":{"description":"The AWS region","enum":["cn-north-1","cn-northwest-1"],"default":"cn-north-1"}},"description":"The Amazon EKS endpoint for China (Beijing) and China (Ningxia)"}],"x-hasEquivalentPaths":true,"paths":{"/clusters/{name}/encryption-config/associate":{"post":{"operationId":"AssociateEncryptionConfig","description":"<p>Associate encryption configuration to an existing cluster.</p> <p>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.</p>","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssociateEncryptionConfigResponse"}}}},"480":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"481":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"482":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}},"483":{"description":"ResourceInUseException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceInUseException"}}}},"484":{"description":"ResourceNotFoundException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundException"}}}},"485":{"description":"InvalidRequestException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequestException"}}}}},"parameters":[{"name":"name","in":"path","required":true,"description":"The name of the cluster that you are associating with encryption configuration.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["encryptionConfig"],"properties":{"encryptionConfig":{"description":"The configuration you are using for encryption.","type":"array","items":{"$ref":"#/components/schemas/EncryptionConfig"},"maxItems":1},"clientRequestToken":{"description":"The client request token you are using with the encryption configuration.","type":"string"}}}}}}},"parameters":[{"$ref":"#/components/parameters/X-Amz-Content-Sha256"},{"$ref":"#/components/parameters/X-Amz-Date"},{"$ref":"#/components/parameters/X-Amz-Algorithm"},{"$ref":"#/components/parameters/X-Amz-Credential"},{"$ref":"#/components/parameters/X-Amz-Security-Token"},{"$ref":"#/components/parameters/X-Amz-Signature"},{"$ref":"#/components/parameters/X-Amz-SignedHeaders"}]},"/clusters/{name}/identity-provider-configs/associate":{"post":{"operationId":"AssociateIdentityProviderConfig","description":"<p>Associate an identity provider configuration to a cluster.</p> <p>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 <code>roles</code> and <code>clusterroles</code> to assign permissions to the roles, and then bind the roles to the identities using Kubernetes <code>rolebindings</code> and <code>clusterrolebindings</code>. For more information see <a href=\"https://kubernetes.io/docs/reference/access-authn-authz/rbac/\">Using RBAC Authorization</a> in the Kubernetes documentation.</p>","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AssociateIdentityProviderConfigResponse"}}}},"480":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"481":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"482":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}},"483":{"description":"ResourceInUseException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceInUseException"}}}},"484":{"description":"ResourceNotFoundException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundException"}}}},"485":{"description":"InvalidRequestException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequestException"}}}}},"parameters":[{"name":"name","in":"path","required":true,"description":"The name of the cluster to associate the configuration to.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["oidc"],"properties":{"oidc":{"description":"An object representing an OpenID Connect (OIDC) configuration. Before associating an OIDC identity provider to your cluster, review the considerations in <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/authenticate-oidc-identity-provider.html\">Authenticating users for your cluster from an OpenID Connect identity provider</a> in the <i>Amazon EKS User Guide</i>.","type":"object","properties":{"identityProviderConfigName":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"The name of the OIDC provider configuration."}]},"issuerUrl":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"The URL of the OpenID identity provider that allows the API server to discover public signing keys for verifying tokens. The URL must begin with <code>https://</code> and should correspond to the <code>iss</code> claim in the provider's OIDC ID tokens. Per the OIDC standard, path components are allowed but query parameters are not. Typically the URL consists of only a hostname, like <code>https://server.example.org</code> or <code>https://example.com</code>. This URL should point to the level below <code>.well-known/openid-configuration</code> and must be publicly accessible over the internet."}]},"clientId":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"This is also known as <i>audience</i>. The ID for the client application that makes authentication requests to the OpenID identity provider."}]},"usernameClaim":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"The JSON Web Token (JWT) claim to use as the username. The default is <code>sub</code>, which is expected to be a unique identifier of the end user. You can choose other claims, such as <code>email</code> or <code>name</code>, depending on the OpenID identity provider. Claims other than <code>email</code> are prefixed with the issuer URL to prevent naming clashes with other plug-ins."}]},"usernamePrefix":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"The prefix that is prepended to username claims to prevent clashes with existing names. If you do not provide this field, and <code>username</code> is a value other than <code>email</code>, the prefix defaults to <code>issuerurl#</code>. You can use the value <code>-</code> to disable all prefixing."}]},"groupsClaim":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"The JWT claim that the provider uses to return your groups."}]},"groupsPrefix":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"The prefix that is prepended to group claims to prevent clashes with existing names (such as <code>system:</code> groups). For example, the value<code> oidc:</code> will create group names like <code>oidc:engineering</code> and <code>oidc:infra</code>."}]},"requiredClaims":{"allOf":[{"$ref":"#/components/schemas/requiredClaimsMap"},{"description":"The key value pairs that describe required claims in the identity token. If set, each claim is verified to be present in the token with a matching value. For the maximum number of claims that you can require, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html\">Amazon EKS service quotas</a> in the <i>Amazon EKS User Guide</i>."}]}}},"tags":{"description":"The metadata to apply to the configuration to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.","type":"object","minProperties":1,"maxProperties":50,"additionalProperties":{"$ref":"#/components/schemas/TagValue"}},"clientRequestToken":{"description":"Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.","type":"string"}}}}}}},"parameters":[{"$ref":"#/components/parameters/X-Amz-Content-Sha256"},{"$ref":"#/components/parameters/X-Amz-Date"},{"$ref":"#/components/parameters/X-Amz-Algorithm"},{"$ref":"#/components/parameters/X-Amz-Credential"},{"$ref":"#/components/parameters/X-Amz-Security-Token"},{"$ref":"#/components/parameters/X-Amz-Signature"},{"$ref":"#/components/parameters/X-Amz-SignedHeaders"}]},"/clusters/{name}/addons":{"post":{"operationId":"CreateAddon","description":"<p>Creates an Amazon EKS add-on.</p> <p>Amazon EKS add-ons help to automate the provisioning and lifecycle management of common operational software for Amazon EKS clusters. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/eks-add-ons.html\">Amazon EKS add-ons</a> in the <i>Amazon EKS User Guide</i>.</p>","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAddonResponse"}}}},"480":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"481":{"description":"InvalidRequestException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequestException"}}}},"482":{"description":"ResourceNotFoundException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundException"}}}},"483":{"description":"ResourceInUseException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceInUseException"}}}},"484":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"485":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}}},"parameters":[{"name":"name","in":"path","required":true,"description":"The name of the cluster to create the add-on for.","schema":{"type":"string","pattern":"^[0-9A-Za-z][A-Za-z0-9\\-_]*","minLength":1,"maxLength":100}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["addonName"],"properties":{"addonName":{"description":"The name of the add-on. The name must match one of the names that <a href=\"https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html\"> <code>DescribeAddonVersions</code> </a> returns.","type":"string"},"addonVersion":{"description":"The version of the add-on. The version must match one of the versions returned by <a href=\"https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonVersions.html\"> <code>DescribeAddonVersions</code> </a>.","type":"string"},"serviceAccountRoleArn":{"description":"<p>The Amazon Resource Name (ARN) of an existing IAM role to bind to the add-on's service account. The role must be assigned the IAM permissions required by the add-on. If you don't specify an existing IAM role, then the add-on uses the permissions assigned to the node IAM role. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/create-node-role.html\">Amazon EKS node IAM role</a> in the <i>Amazon EKS User Guide</i>.</p> <note> <p>To specify an existing IAM role, you must have an IAM OpenID Connect (OIDC) provider created for your cluster. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html\">Enabling IAM roles for service accounts on your cluster</a> in the <i>Amazon EKS User Guide</i>.</p> </note>","type":"string","minLength":1,"maxLength":255},"resolveConflicts":{"description":"<p>How to resolve field value conflicts for an Amazon EKS add-on. Conflicts are handled based on the value you choose:</p> <ul> <li> <p> <b>None</b> – If the self-managed version of the add-on is installed on your cluster, Amazon EKS doesn't change the value. Creation of the add-on might fail.</p> </li> <li> <p> <b>Overwrite</b> – If the self-managed version of the add-on is installed on your cluster and the Amazon EKS default value is different than the existing value, Amazon EKS changes the value to the Amazon EKS default value.</p> </li> <li> <p> <b>Preserve</b> – Not supported. You can set this value when updating an add-on though. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/APIReference/API_UpdateAddon.html\">UpdateAddon</a>.</p> </li> </ul> <p>If you don't currently have the self-managed version of the add-on installed on your cluster, the Amazon EKS add-on is installed. Amazon EKS sets all values to default values, regardless of the option that you specify.</p>","type":"string","enum":["OVERWRITE","NONE","PRESERVE"]},"clientRequestToken":{"description":"A unique, case-sensitive identifier that you provide to ensure the idempotency of the request.","type":"string"},"tags":{"description":"The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.","type":"object","minProperties":1,"maxProperties":50,"additionalProperties":{"$ref":"#/components/schemas/TagValue"}},"configurationValues":{"description":"The set of configuration values for the add-on that's created. The values that you provide are validated against the schema in <a href=\"https://docs.aws.amazon.com/eks/latest/APIReference/API_DescribeAddonConfiguration.html\"> <code>DescribeAddonConfiguration</code> </a>.","type":"string"}}}}}}},"parameters":[{"$ref":"#/components/parameters/X-Amz-Content-Sha256"},{"$ref":"#/components/parameters/X-Amz-Date"},{"$ref":"#/components/parameters/X-Amz-Algorithm"},{"$ref":"#/components/parameters/X-Amz-Credential"},{"$ref":"#/components/parameters/X-Amz-Security-Token"},{"$ref":"#/components/parameters/X-Amz-Signature"},{"$ref":"#/components/parameters/X-Amz-SignedHeaders"}],"get":{"operationId":"ListAddons","description":"Lists the available add-ons.","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListAddonsResponse"}}}},"480":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"481":{"description":"InvalidRequestException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequestException"}}}},"482":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"483":{"description":"ResourceNotFoundException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundException"}}}},"484":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}}},"parameters":[{"name":"name","in":"path","required":true,"description":"The name of the cluster.","schema":{"type":"string","pattern":"^[0-9A-Za-z][A-Za-z0-9\\-_]*","minLength":1,"maxLength":100}},{"name":"maxResults","in":"query","required":false,"description":"The maximum number of add-on results returned by <code>ListAddonsRequest</code> in paginated output. When you use this parameter, <code>ListAddonsRequest</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListAddonsRequest</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListAddonsRequest</code> returns up to 100 results and a <code>nextToken</code> value, if applicable.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"nextToken","in":"query","required":false,"description":"<p>The <code>nextToken</code> value returned from a previous paginated <code>ListAddonsRequest</code> where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.</p> <note> <p>This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.</p> </note>","schema":{"type":"string"}}]}},"/clusters":{"post":{"operationId":"CreateCluster","description":"<p>Creates an Amazon EKS control plane. </p> <p>The Amazon EKS control plane consists of control plane instances that run the Kubernetes software, such as <code>etcd</code> and the API server. The control plane runs in an account managed by 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.</p> <p>The cluster control plane is provisioned across multiple Availability Zones and fronted by an Elastic Load Balancing Network Load Balancer. Amazon EKS also provisions elastic network interfaces in your VPC subnets to provide connectivity from the control plane instances to the nodes (for example, to support <code>kubectl exec</code>, <code>logs</code>, and <code>proxy</code> data flows).</p> <p>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.</p> <p>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 <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/managing-auth.html\">Managing Cluster Authentication</a> and <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/launch-workers.html\">Launching Amazon EKS nodes</a> in the <i>Amazon EKS User Guide</i>.</p>","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateClusterResponse"}}}},"480":{"description":"ResourceInUseException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceInUseException"}}}},"481":{"description":"ResourceLimitExceededException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceLimitExceededException"}}}},"482":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"483":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"484":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}},"485":{"description":"ServiceUnavailableException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableException"}}}},"486":{"description":"UnsupportedAvailabilityZoneException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsupportedAvailabilityZoneException"}}}}},"parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","roleArn","resourcesVpcConfig"],"properties":{"name":{"description":"The unique name to give to your cluster.","type":"string","pattern":"^[0-9A-Za-z][A-Za-z0-9\\-_]*","minLength":1,"maxLength":100},"version":{"description":"<p>The desired Kubernetes version for your cluster. If you don't specify a value here, the default version available in Amazon EKS is used.</p> <note> <p>The default version might not be the latest version available.</p> </note>","type":"string"},"roleArn":{"description":"The Amazon Resource Name (ARN) of the IAM role that provides permissions for the Kubernetes control plane to make calls to Amazon Web Services API operations on your behalf. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/service_IAM_role.html\">Amazon EKS Service IAM Role</a> in the <i> <i>Amazon EKS User Guide</i> </i>.","type":"string"},"resourcesVpcConfig":{"description":"An object representing the VPC configuration to use for an Amazon EKS cluster.","type":"object","properties":{"subnetIds":{"allOf":[{"$ref":"#/components/schemas/StringList"},{"description":"Specify subnets for your Amazon EKS nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your nodes and the Kubernetes control plane."}]},"securityGroupIds":{"allOf":[{"$ref":"#/components/schemas/StringList"},{"description":"Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use that allow communication between your nodes and the Kubernetes control plane. If you don't specify any security groups, then familiarize yourself with the difference between Amazon EKS defaults for clusters deployed with Kubernetes. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/sec-group-reqs.html\">Amazon EKS security group considerations</a> in the <i> <i>Amazon EKS User Guide</i> </i>."}]},"endpointPublicAccess":{"allOf":[{"$ref":"#/components/schemas/BoxedBoolean"},{"description":"Set this value to <code>false</code> to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is <code>true</code>, which enables public access for your Kubernetes API server. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html\">Amazon EKS cluster endpoint access control</a> in the <i> <i>Amazon EKS User Guide</i> </i>."}]},"endpointPrivateAccess":{"allOf":[{"$ref":"#/components/schemas/BoxedBoolean"},{"description":"Set this value to <code>true</code> to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is <code>false</code>, which disables private access for your Kubernetes API server. If you disable private access and you have nodes or Fargate pods in the cluster, then ensure that <code>publicAccessCidrs</code> includes the necessary CIDR blocks for communication with the nodes or Fargate pods. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html\">Amazon EKS cluster endpoint access control</a> in the <i> <i>Amazon EKS User Guide</i> </i>."}]},"publicAccessCidrs":{"allOf":[{"$ref":"#/components/schemas/StringList"},{"description":"The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is <code>0.0.0.0/0</code>. If you've disabled private endpoint access and you have nodes or Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/cluster-endpoint.html\">Amazon EKS cluster endpoint access control</a> in the <i> <i>Amazon EKS User Guide</i> </i>."}]}}},"kubernetesNetworkConfig":{"description":"The Kubernetes network configuration for the cluster.","type":"object","properties":{"serviceIpv4Cidr":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"<p>Don't specify a value if you select <code>ipv6</code> for <b>ipFamily</b>. The CIDR block to assign Kubernetes service IP addresses from. If you don't specify a block, Kubernetes assigns addresses from either the <code>10.100.0.0/16</code> or <code>172.20.0.0/16</code> CIDR blocks. We recommend that you specify a block that does not overlap with resources in other networks that are peered or connected to your VPC. The block must meet the following requirements:</p> <ul> <li> <p>Within one of the following private IP address blocks: <code>10.0.0.0/8</code>, <code>172.16.0.0/12</code>, or <code>192.168.0.0/16</code>.</p> </li> <li> <p>Doesn't overlap with any CIDR block assigned to the VPC that you selected for VPC.</p> </li> <li> <p>Between /24 and /12.</p> </li> </ul> <important> <p>You can only specify a custom CIDR block when you create a cluster and can't change this value once the cluster is created.</p> </important>"}]},"ipFamily":{"allOf":[{"$ref":"#/components/schemas/IpFamily"},{"description":"<p>Specify which IP family is used to assign Kubernetes pod and service IP addresses. If you don't specify a value, <code>ipv4</code> is used by default. You can only specify an IP family when you create a cluster and can't change this value once the cluster is created. If you specify <code>ipv6</code>, the VPC and subnets that you specify for cluster creation must have both <code>IPv4</code> and <code>IPv6</code> CIDR blocks assigned to them. You can't specify <code>ipv6</code> for clusters in China Regions.</p> <p>You can only specify <code>ipv6</code> for <code>1.21</code> and later clusters that use version <code>1.10.1</code> or later of the Amazon VPC CNI add-on. If you specify <code>ipv6</code>, then ensure that your VPC meets the requirements listed in the considerations listed in <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/cni-ipv6.html\">Assigning IPv6 addresses to pods and services</a> in the Amazon EKS User Guide. Kubernetes assigns services <code>IPv6</code> addresses from the unique local address range <code>(fc00::/7)</code>. You can't specify a custom <code>IPv6</code> CIDR block. Pod addresses are assigned from the subnet's <code>IPv6</code> CIDR.</p>"}]}}},"logging":{"description":"An object representing the logging configuration for resources in your cluster.","type":"object","properties":{"clusterLogging":{"allOf":[{"$ref":"#/components/schemas/LogSetups"},{"description":"The cluster control plane logging configuration for your cluster."}]}}},"clientRequestToken":{"description":"Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.","type":"string"},"tags":{"description":"The metadata to apply to the cluster to assist with categorization and organization. Each tag consists of a key and an optional value. You define both.","type":"object","minProperties":1,"maxProperties":50,"additionalProperties":{"$ref":"#/components/schemas/TagValue"}},"encryptionConfig":{"description":"The encryption configuration for the cluster.","type":"array","items":{"$ref":"#/components/schemas/EncryptionConfig"},"maxItems":1},"outpostConfig":{"description":"The configuration of your local Amazon EKS cluster on an Amazon Web Services Outpost. Before creating a cluster on an Outpost, review <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-local-cluster-create.html\">Creating a local cluster on an Outpost</a> in the <i>Amazon EKS User Guide</i>. This API isn't available for Amazon EKS clusters on the Amazon Web Services cloud.","type":"object","properties":{"outpostArns":{"allOf":[{"$ref":"#/components/schemas/StringList"},{"description":"The ARN of the Outpost that you want to use for your local Amazon EKS cluster on Outposts. Only a single Outpost ARN is supported."}]},"controlPlaneInstanceType":{"allOf":[{"$ref":"#/components/schemas/String"},{"description":"<p>The Amazon EC2 instance type that you want to use for your local Amazon EKS cluster on Outposts. Choose an instance type based on the number of nodes that your cluster will have. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html\">Capacity considerations</a> in the <i>Amazon EKS User Guide</i>.</p> <p>The instance type that you specify is used for all Kubernetes control plane instances. The instance type can't be changed after cluster creation. The control plane is not automatically scaled by Amazon EKS.</p> <p> </p>"}]},"controlPlanePlacement":{"allOf":[{"$ref":"#/components/schemas/ControlPlanePlacementRequest"},{"description":"An object representing the placement configuration for all the control plane instances of your local Amazon EKS cluster on an Amazon Web Services Outpost. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/eks-outposts-capacity-considerations.html\">Capacity considerations</a> in the <i>Amazon EKS User Guide</i>."}]}}}}}}}}},"parameters":[{"$ref":"#/components/parameters/X-Amz-Content-Sha256"},{"$ref":"#/components/parameters/X-Amz-Date"},{"$ref":"#/components/parameters/X-Amz-Algorithm"},{"$ref":"#/components/parameters/X-Amz-Credential"},{"$ref":"#/components/parameters/X-Amz-Security-Token"},{"$ref":"#/components/parameters/X-Amz-Signature"},{"$ref":"#/components/parameters/X-Amz-SignedHeaders"}],"get":{"operationId":"ListClusters","description":"Lists the Amazon EKS clusters in your Amazon Web Services account in the specified Region.","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListClustersResponse"}}}},"480":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"481":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"482":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}},"483":{"description":"ServiceUnavailableException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableException"}}}}},"parameters":[{"name":"maxResults","in":"query","required":false,"description":"The maximum number of cluster results returned by <code>ListClusters</code> in paginated output. When you use this parameter, <code>ListClusters</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListClusters</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListClusters</code> returns up to 100 results and a <code>nextToken</code> value if applicable.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"nextToken","in":"query","required":false,"description":"<p>The <code>nextToken</code> value returned from a previous paginated <code>ListClusters</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.</p> <note> <p>This token should be treated as an opaque identifier that is used only to retrieve the next items in a list and not for other programmatic purposes.</p> </note>","schema":{"type":"string"}},{"name":"include","in":"query","required":false,"description":"Indicates whether external clusters are included in the returned list. Use '<code>all</code>' to return connected clusters, or blank to return only Amazon EKS clusters. '<code>all</code>' must be in lowercase otherwise an error occurs.","schema":{"type":"array","items":{"$ref":"#/components/schemas/String"}}}]}},"/clusters/{name}/fargate-profiles":{"post":{"operationId":"CreateFargateProfile","description":"<p>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.</p> <p>The Fargate profile allows an administrator to declare which pods run on Fargate and specify which pods run on which Fargate profile. This declaration is done through the 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.</p> <p>When you create a Fargate profile, you must specify a pod execution role to use with the pods that are scheduled with the profile. This role is added to the cluster's Kubernetes <a href=\"https://kubernetes.io/docs/admin/authorization/rbac/\">Role Based Access Control</a> (RBAC) for authorization so that the <code>kubelet</code> that is running on the Fargate infrastructure can register with your Amazon EKS cluster so that it can appear in your cluster as a node. The pod execution role also provides IAM permissions to the Fargate infrastructure to allow read access to Amazon ECR image repositories. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html\">Pod Execution Role</a> in the <i>Amazon EKS User Guide</i>.</p> <p>Fargate profiles are immutable. However, you can create a new updated profile to replace an existing profile and then delete the original after the updated profile has finished creating.</p> <p>If any Fargate profiles in a cluster are in the <code>DELETING</code> status, you must wait for that Fargate profile to finish deleting before you can create any other profiles in that cluster.</p> <p>For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/fargate-profile.html\">Fargate Profile</a> in the <i>Amazon EKS User Guide</i>.</p>","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFargateProfileResponse"}}}},"480":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"481":{"description":"InvalidRequestException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequestException"}}}},"482":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"483":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}},"484":{"description":"ResourceLimitExceededException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceLimitExceededException"}}}},"485":{"description":"UnsupportedAvailabilityZoneException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnsupportedAvailabilityZoneException"}}}}},"parameters":[{"name":"name","in":"path","required":true,"description":"The name of the Amazon EKS cluster to apply the Fargate profile to.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["fargateProfileName","podExecutionRoleArn"],"properties":{"fargateProfileName":{"description":"The name of the Fargate profile.","type":"string"},"podExecutionRoleArn":{"description":"The Amazon Resource Name (ARN) of the pod execution role to use for pods that match the selectors in the Fargate profile. The pod execution role allows Fargate infrastructure to register with your cluster as a node, and it provides read access to Amazon ECR image repositories. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/pod-execution-role.html\">Pod Execution Role</a> in the <i>Amazon EKS User Guide</i>.","type":"string"},"subnets":{"description":"The IDs of subnets to launch your pods into. At this time, pods running on Fargate are not assigned public IP addresses, so only private subnets (with no direct route to an Internet Gateway) are accepted for this parameter.","type":"array","items":{"$ref":"#/components/schemas/String"}},"selectors":{"description":"The selectors to match for pods to use this Fargate profile. Each selector must have an associated namespace. Optionally, you can also specify labels for a namespace. You may specify up to five selectors in a Fargate profile.","type":"array","items":{"$ref":"#/components/schemas/FargateProfileSelector"}},"clientRequestToken":{"description":"Unique, case-sensitive identifier that you provide to ensure the idempotency of the request.","type":"string"},"tags":{"description":"The metadata to apply to the Fargate profile to assist with categorization and organization. Each tag consists of a key and an optional value. You define both. Fargate profile tags do not propagate to any other resources associated with the Fargate profile, such as the pods that are scheduled with it.","type":"object","minProperties":1,"maxProperties":50,"additionalProperties":{"$ref":"#/components/schemas/TagValue"}}}}}}}},"parameters":[{"$ref":"#/components/parameters/X-Amz-Content-Sha256"},{"$ref":"#/components/parameters/X-Amz-Date"},{"$ref":"#/components/parameters/X-Amz-Algorithm"},{"$ref":"#/components/parameters/X-Amz-Credential"},{"$ref":"#/components/parameters/X-Amz-Security-Token"},{"$ref":"#/components/parameters/X-Amz-Signature"},{"$ref":"#/components/parameters/X-Amz-SignedHeaders"}],"get":{"operationId":"ListFargateProfiles","description":"Lists the Fargate profiles associated with the specified cluster in your Amazon Web Services account in the specified Region.","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListFargateProfilesResponse"}}}},"480":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"481":{"description":"ResourceNotFoundException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceNotFoundException"}}}},"482":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"483":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}}},"parameters":[{"name":"name","in":"path","required":true,"description":"The name of the Amazon EKS cluster that you would like to list Fargate profiles in.","schema":{"type":"string"}},{"name":"maxResults","in":"query","required":false,"description":"The maximum number of Fargate profile results returned by <code>ListFargateProfiles</code> in paginated output. When you use this parameter, <code>ListFargateProfiles</code> returns only <code>maxResults</code> results in a single page along with a <code>nextToken</code> response element. You can see the remaining results of the initial request by sending another <code>ListFargateProfiles</code> request with the returned <code>nextToken</code> value. This value can be between 1 and 100. If you don't use this parameter, <code>ListFargateProfiles</code> returns up to 100 results and a <code>nextToken</code> value if applicable.","schema":{"type":"integer","minimum":1,"maximum":100}},{"name":"nextToken","in":"query","required":false,"description":"The <code>nextToken</code> value returned from a previous paginated <code>ListFargateProfiles</code> request where <code>maxResults</code> was used and the results exceeded the value of that parameter. Pagination continues from the end of the previous results that returned the <code>nextToken</code> value.","schema":{"type":"string"}}]}},"/clusters/{name}/node-groups":{"post":{"operationId":"CreateNodegroup","description":"<p>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 <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html\">Launch template support</a>.</p> <p>An Amazon EKS managed node group is an Amazon EC2 Auto Scaling group and associated Amazon EC2 instances that are managed by Amazon Web Services for an Amazon EKS cluster. For more information, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html\">Managed node groups</a> in the <i>Amazon EKS User Guide</i>.</p> <note> <p>Windows AMI types are only supported for commercial Regions that support Windows Amazon EKS.</p> </note>","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNodegroupResponse"}}}},"480":{"description":"ResourceInUseException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceInUseException"}}}},"481":{"description":"ResourceLimitExceededException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResourceLimitExceededException"}}}},"482":{"description":"InvalidRequestException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidRequestException"}}}},"483":{"description":"InvalidParameterException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/InvalidParameterException"}}}},"484":{"description":"ClientException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClientException"}}}},"485":{"description":"ServerException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServerException"}}}},"486":{"description":"ServiceUnavailableException","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ServiceUnavailableException"}}}}},"parameters":[{"name":"name","in":"path","required":true,"description":"The name of the cluster to create the node group in.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["nodegroupName","subnets","nodeRole"],"properties":{"nodegroupName":{"description":"The unique name to give your node group.","type":"string"},"scalingConfig":{"description":"An object representing the scaling configuration details for the Auto Scaling group that is associated with your node group. When creating a node group, you must specify all or none of the properties. When updating a node group, you can specify any or none of the properties.","type":"object","properties":{"minSize":{"allOf":[{"$ref":"#/components/schemas/ZeroCapacity"},{"description":"The minimum number of nodes that the managed node group can scale in to."}]},"maxSize":{"allOf":[{"$ref":"#/components/schemas/Capacity"},{"description":"The maximum number of nodes that the managed node group can scale out to. For information about the maximum number that you can specify, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/service-quotas.html\">Amazon EKS service quotas</a> in the <i>Amazon EKS User Guide</i>."}]},"desiredSize":{"allOf":[{"$ref":"#/components/schemas/ZeroCapacity"},{"description":"<p>The current number of nodes that the managed node group should maintain.</p> <important> <p>If you use Cluster Autoscaler, you shouldn't change the desiredSize value directly, as this can cause the Cluster Autoscaler to suddenly scale up or scale down.</p> </important> <p>Whenever this parameter changes, the number of worker nodes in the node group is updated to the specified size. If this parameter is given a value that is smaller than the current number of running worker nodes, the necessary number of worker nodes are terminated to match the given value. When using CloudFormation, no action occurs if you remove this parameter from your CFN template.</p> <p>This parameter can be different from minSize in some cases, such as when starting with extra hosts for testing. This parameter can also be different when you want to start with an estimated number of needed hosts, but let Cluster Autoscaler reduce the number if there are too many. When Cluster Autoscaler is used, the desiredSize parameter is altered by Cluster Autoscaler (but can be out-of-date for short periods of time). Cluster Autoscaler doesn't scale a managed node group lower than minSize or higher than maxSize.</p>"}]}}},"diskSize":{"description":"The root device disk size (in GiB) for your node group instances. The default disk size is 20 GiB for Linux and Bottlerocket. The default disk size is 50 GiB for Windows. If you specify <code>launchTemplate</code>, then don't specify <code>diskSize</code>, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html\">Launch template support</a> in the <i>Amazon EKS User Guide</i>.","type":"integer"},"subnets":{"description":"The subnets to use for the Auto Scaling group that is created for your node group. If you specify <code>launchTemplate</code>, then don't specify <a href=\"https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_CreateNetworkInterface.html\"> <code>SubnetId</code> </a> in your launch template, or the node group deployment will fail. For more information about using launch templates with Amazon EKS, see <a href=\"https://docs.aws.amazon.com/eks/latest/userguide/launch-templates.html\">Launch template support</a> in the <i>Amazon EKS User Guide</i>.","type":"array","items":{"$ref":"#/components/schemas/String"}},"instanceTypes":{"description":"Specify the instance types for a node group. If you specify a GPU instance type, make sure to also specify an applicable GPU AMI type with the <code>amiType</code> parameter. If you specify <code>launchTemplate</code>, then you can specify zero or one instance type in your launch template <i>or</i> you can specify 0-20 instance types for <code>instanceTypes</code>. If however, you specify an instance type in your launch template <i>and</i> specify any <code>instanceTypes</code>, the node group deployment will fail. If you don't specify an instance type in a launch template or for <code>instanceTypes</code>, then <code>t3.medium</code> is used, by default. If you specify <code>Spot</code> for <code>capacityType</code>, then we recommend specifying multiple v