# Kubernetes

IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:

First, the Kubernetes cluster provides the control plane, although it is not directly visible.

Second, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc.

## Get Kubernetes Clusters

> Retrieves a list of all K8s clusters provisioned under your account.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesClusters":{"type":"object","properties":{"id":{"type":"string","description":"The unique representation of the K8s cluster as a resource collection.","readOnly":true},"type":{"type":"string","description":"The resource type within a collection.","readOnly":true,"enum":["collection"]},"href":{"type":"string","description":"The URL to the collection representation (absolute path).","format":"uri","readOnly":true},"items":{"type":"array","description":"Array of K8s clusters in the collection.","readOnly":true,"items":{"$ref":"#/components/schemas/KubernetesCluster"}}}},"KubernetesCluster":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["k8s"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesClusterProperties"},"entities":{"$ref":"#/components/schemas/KubernetesClusterEntities"}}},"DatacenterElementMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"Resource's Entity Tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The last time the resource was created.","format":"date-time","readOnly":true},"createdBy":{"type":"string","description":"The user who created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","description":"The last time the resource was modified.","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","description":"The user who last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"state":{"type":"string","description":"State of the resource. *AVAILABLE* There are no pending modification requests for this item; *BUSY* There is at least one modification request pending and all following requests will be queued; *INACTIVE* Resource has been de-provisioned; *DEPLOYING* Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; *ACTIVE* Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; *FAILED* Resource state FAILED - relevant for Kubernetes cluster/nodepool; *SUSPENDED* Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; *FAILED_SUSPENDED* Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; *UPDATING* Resource state UPDATING - relevant for Kubernetes cluster/nodepool; *FAILED_UPDATING* Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; *DESTROYING* Resource state DESTROYING - relevant for Kubernetes cluster; *FAILED_DESTROYING* Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; *TERMINATED* Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; *HIBERNATING* Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; *MAINTENANCE* Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.","readOnly":true,"enum":["AVAILABLE","INACTIVE","BUSY","DEPLOYING","ACTIVE","FAILED","SUSPENDED","FAILED_SUSPENDED","UPDATING","FAILED_UPDATING","DESTROYING","FAILED_DESTROYING","TERMINATED","HIBERNATING","FAILED_HIBERNATING","MAINTENANCE","FAILED_MAINTENANCE","UNKNOWN"]}}},"KubernetesClusterProperties":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes cluster name. Valid Kubernetes cluster name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"k8sVersion":{"type":"string","description":"The Kubernetes version the cluster is running. This imposes restrictions on what Kubernetes versions can be run in a cluster's nodepools. Additionally, not all Kubernetes versions are viable upgrade targets for all prior versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"availableUpgradeVersions":{"type":"array","description":"List of available versions for upgrading the cluster","items":{"type":"string"}},"viableNodePoolVersions":{"type":"array","description":"List of versions that may be used for node pools under this cluster","items":{"type":"string"}},"public":{"type":"boolean","description":"The indicator if the cluster is public or private. Be aware that setting it to false is currently in beta phase.","default":true},"location":{"type":"string","description":"The location of the cluster if the cluster is private. This property is immutable. The location must be enabled for your contract or you must have a Datacenter within that location. This attribute is mandatory if the cluster is private."},"natGatewayIp":{"type":"string","description":"The nat gateway IP of the cluster if the cluster is private. This property is immutable. Must be a reserved IP in the same location as the cluster's location. This attribute is mandatory if the cluster is private."},"nodeSubnet":{"type":"string","description":"The node subnet of the cluster, if the cluster is private. This property is optional and immutable. Must be a valid CIDR notation for an IPv4 network prefix of 16 bits length."},"apiSubnetAllowList":{"type":"array","description":"Access to the K8s API server is restricted to these CIDRs. Traffic, internal to the cluster, is not affected by this restriction. If no allowlist is specified, access is not restricted. If an IP without subnet mask is provided, the default value is used: 32 for IPv4 and 128 for IPv6.","items":{"type":"string"}},"s3Buckets":{"type":"array","description":"List of Object storage buckets configured for K8s usage. For now it contains only one bucket used to store K8s API audit logs","items":{"$ref":"#/components/schemas/S3Bucket"}}}},"KubernetesMaintenanceWindow":{"required":["dayOfTheWeek","time"],"type":"object","properties":{"dayOfTheWeek":{"type":"string","description":"The weekday for a maintenance window.","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"time":{"type":"string","description":"The time to use for a maintenance window. Accepted formats are: HH:mm:ss; HH:mm:ss\"Z\"; HH:mm:ssZ. This time may vary by 15 minutes."}}},"S3Bucket":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"The name of the Object storage bucket."}}},"KubernetesClusterEntities":{"type":"object","properties":{"nodepools":{"$ref":"#/components/schemas/KubernetesNodePools"}}},"KubernetesNodePools":{"type":"object","properties":{"id":{"type":"string","description":"A unique representation of the Kubernetes node pool as a resource collection.","readOnly":true},"type":{"type":"string","description":"The resource type within a collection.","readOnly":true,"enum":["collection"]},"href":{"type":"string","description":"The URL to the collection representation (absolute path).","format":"uri","readOnly":true},"items":{"type":"array","description":"Array of items in the collection.","readOnly":true,"items":{"$ref":"#/components/schemas/KubernetesNodePool"}}}},"KubernetesNodePool":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolProperties"}}},"KubernetesNodePoolProperties":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes.\n\n**Deprecated**: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.\n","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}},"availableUpgradeVersions":{"type":"array","description":"The list of available versions for upgrading the node pool.","items":{"type":"string"}}}},"KubernetesNodePoolServerType":{"type":"string","enum":["DedicatedCore","VCPU"],"default":"DedicatedCore","description":"The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine."},"KubernetesAutoScaling":{"required":["maxNodeCount","minNodeCount"],"type":"object","properties":{"minNodeCount":{"type":"integer","description":"The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.","format":"int32"},"maxNodeCount":{"type":"integer","description":"The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.","format":"int32"}}},"KubernetesNodePoolLan":{"required":["id"],"type":"object","properties":{"datacenterId":{"type":"string","description":"The datacenter ID, requires system privileges, for internal usage only"},"id":{"type":"integer","description":"The LAN ID of an existing LAN at the related data center","format":"int32"},"dhcp":{"type":"boolean","description":"Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP."},"routes":{"type":"array","description":"The array of additional LANs attached to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLanRoutes"}}}},"KubernetesNodePoolLanRoutes":{"type":"object","properties":{"network":{"type":"string","description":"IPv4 or IPv6 CIDR to be routed via the interface."},"gatewayIp":{"type":"string","description":"IPv4 or IPv6 Gateway IP for the route."}}},"KubernetesNodePoolLabel":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels attached to the node pool."},"KubernetesNodePoolAnnotation":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations attached to the node pool."},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s":{"get":{"tags":["Kubernetes"],"summary":"Get Kubernetes Clusters","description":"Retrieves a list of all K8s clusters provisioned under your account.","operationId":"k8sGet","parameters":[{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesClusters"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Create a Kubernetes Cluster

> Creates a K8s cluster provisioned under your account.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesClusterForPost":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["k8s"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesClusterPropertiesForPost"},"entities":{"$ref":"#/components/schemas/KubernetesClusterEntities"}}},"DatacenterElementMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"Resource's Entity Tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The last time the resource was created.","format":"date-time","readOnly":true},"createdBy":{"type":"string","description":"The user who created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","description":"The last time the resource was modified.","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","description":"The user who last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"state":{"type":"string","description":"State of the resource. *AVAILABLE* There are no pending modification requests for this item; *BUSY* There is at least one modification request pending and all following requests will be queued; *INACTIVE* Resource has been de-provisioned; *DEPLOYING* Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; *ACTIVE* Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; *FAILED* Resource state FAILED - relevant for Kubernetes cluster/nodepool; *SUSPENDED* Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; *FAILED_SUSPENDED* Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; *UPDATING* Resource state UPDATING - relevant for Kubernetes cluster/nodepool; *FAILED_UPDATING* Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; *DESTROYING* Resource state DESTROYING - relevant for Kubernetes cluster; *FAILED_DESTROYING* Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; *TERMINATED* Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; *HIBERNATING* Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; *MAINTENANCE* Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.","readOnly":true,"enum":["AVAILABLE","INACTIVE","BUSY","DEPLOYING","ACTIVE","FAILED","SUSPENDED","FAILED_SUSPENDED","UPDATING","FAILED_UPDATING","DESTROYING","FAILED_DESTROYING","TERMINATED","HIBERNATING","FAILED_HIBERNATING","MAINTENANCE","FAILED_MAINTENANCE","UNKNOWN"]}}},"KubernetesClusterPropertiesForPost":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes cluster name. Valid Kubernetes cluster name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"k8sVersion":{"type":"string","description":"The Kubernetes version that the cluster is running. This limits which Kubernetes versions can run in a cluster's node pools. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"public":{"type":"boolean","description":"The indicator whether the cluster is public or private. Note that the status FALSE is still in the beta phase.","default":true},"location":{"type":"string","description":"This attribute is mandatory if the cluster is private and optional if the cluster is public. The location must be enabled for your contract, or you must have a data center at that location. This property is not adjustable."},"natGatewayIp":{"type":"string","description":"The nat gateway IP of the cluster if the cluster is private. This property is immutable. Must be a reserved IP in the same location as the cluster's location. This attribute is mandatory if the cluster is private."},"nodeSubnet":{"type":"string","description":"The node subnet of the cluster, if the cluster is private. This property is optional and immutable. Must be a valid CIDR notation for an IPv4 network prefix of 16 bits length."},"apiSubnetAllowList":{"type":"array","description":"Access to the K8s API server is restricted to these CIDRs. Intra-cluster traffic is not affected by this restriction. If no AllowList is specified, access is not limited. If an IP is specified without a subnet mask, the default value is 32 for IPv4 and 128 for IPv6.","items":{"type":"string"}},"s3Buckets":{"type":"array","description":"List of Object storage buckets configured for K8s usage. At the moment, it contains only one bucket that is used to store K8s API audit logs.","items":{"$ref":"#/components/schemas/S3Bucket"}}}},"KubernetesMaintenanceWindow":{"required":["dayOfTheWeek","time"],"type":"object","properties":{"dayOfTheWeek":{"type":"string","description":"The weekday for a maintenance window.","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"time":{"type":"string","description":"The time to use for a maintenance window. Accepted formats are: HH:mm:ss; HH:mm:ss\"Z\"; HH:mm:ssZ. This time may vary by 15 minutes."}}},"S3Bucket":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"The name of the Object storage bucket."}}},"KubernetesClusterEntities":{"type":"object","properties":{"nodepools":{"$ref":"#/components/schemas/KubernetesNodePools"}}},"KubernetesNodePools":{"type":"object","properties":{"id":{"type":"string","description":"A unique representation of the Kubernetes node pool as a resource collection.","readOnly":true},"type":{"type":"string","description":"The resource type within a collection.","readOnly":true,"enum":["collection"]},"href":{"type":"string","description":"The URL to the collection representation (absolute path).","format":"uri","readOnly":true},"items":{"type":"array","description":"Array of items in the collection.","readOnly":true,"items":{"$ref":"#/components/schemas/KubernetesNodePool"}}}},"KubernetesNodePool":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolProperties"}}},"KubernetesNodePoolProperties":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes.\n\n**Deprecated**: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.\n","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}},"availableUpgradeVersions":{"type":"array","description":"The list of available versions for upgrading the node pool.","items":{"type":"string"}}}},"KubernetesNodePoolServerType":{"type":"string","enum":["DedicatedCore","VCPU"],"default":"DedicatedCore","description":"The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine."},"KubernetesAutoScaling":{"required":["maxNodeCount","minNodeCount"],"type":"object","properties":{"minNodeCount":{"type":"integer","description":"The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.","format":"int32"},"maxNodeCount":{"type":"integer","description":"The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.","format":"int32"}}},"KubernetesNodePoolLan":{"required":["id"],"type":"object","properties":{"datacenterId":{"type":"string","description":"The datacenter ID, requires system privileges, for internal usage only"},"id":{"type":"integer","description":"The LAN ID of an existing LAN at the related data center","format":"int32"},"dhcp":{"type":"boolean","description":"Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP."},"routes":{"type":"array","description":"The array of additional LANs attached to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLanRoutes"}}}},"KubernetesNodePoolLanRoutes":{"type":"object","properties":{"network":{"type":"string","description":"IPv4 or IPv6 CIDR to be routed via the interface."},"gatewayIp":{"type":"string","description":"IPv4 or IPv6 Gateway IP for the route."}}},"KubernetesNodePoolLabel":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels attached to the node pool."},"KubernetesNodePoolAnnotation":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations attached to the node pool."},"KubernetesCluster":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["k8s"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesClusterProperties"},"entities":{"$ref":"#/components/schemas/KubernetesClusterEntities"}}},"KubernetesClusterProperties":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes cluster name. Valid Kubernetes cluster name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"k8sVersion":{"type":"string","description":"The Kubernetes version the cluster is running. This imposes restrictions on what Kubernetes versions can be run in a cluster's nodepools. Additionally, not all Kubernetes versions are viable upgrade targets for all prior versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"availableUpgradeVersions":{"type":"array","description":"List of available versions for upgrading the cluster","items":{"type":"string"}},"viableNodePoolVersions":{"type":"array","description":"List of versions that may be used for node pools under this cluster","items":{"type":"string"}},"public":{"type":"boolean","description":"The indicator if the cluster is public or private. Be aware that setting it to false is currently in beta phase.","default":true},"location":{"type":"string","description":"The location of the cluster if the cluster is private. This property is immutable. The location must be enabled for your contract or you must have a Datacenter within that location. This attribute is mandatory if the cluster is private."},"natGatewayIp":{"type":"string","description":"The nat gateway IP of the cluster if the cluster is private. This property is immutable. Must be a reserved IP in the same location as the cluster's location. This attribute is mandatory if the cluster is private."},"nodeSubnet":{"type":"string","description":"The node subnet of the cluster, if the cluster is private. This property is optional and immutable. Must be a valid CIDR notation for an IPv4 network prefix of 16 bits length."},"apiSubnetAllowList":{"type":"array","description":"Access to the K8s API server is restricted to these CIDRs. Traffic, internal to the cluster, is not affected by this restriction. If no allowlist is specified, access is not restricted. If an IP without subnet mask is provided, the default value is used: 32 for IPv4 and 128 for IPv6.","items":{"type":"string"}},"s3Buckets":{"type":"array","description":"List of Object storage buckets configured for K8s usage. For now it contains only one bucket used to store K8s API audit logs","items":{"$ref":"#/components/schemas/S3Bucket"}}}},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s":{"post":{"tags":["Kubernetes"],"summary":"Create a Kubernetes Cluster","description":"Creates a K8s cluster provisioned under your account.","operationId":"k8sPost","parameters":[{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"The Kubernetes cluster to create.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesClusterForPost"}}},"required":true},"responses":{"202":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesCluster"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get a Kubernetes Cluster by ID

> Retrieves the K8s cluster specified by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesCluster":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["k8s"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesClusterProperties"},"entities":{"$ref":"#/components/schemas/KubernetesClusterEntities"}}},"DatacenterElementMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"Resource's Entity Tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The last time the resource was created.","format":"date-time","readOnly":true},"createdBy":{"type":"string","description":"The user who created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","description":"The last time the resource was modified.","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","description":"The user who last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"state":{"type":"string","description":"State of the resource. *AVAILABLE* There are no pending modification requests for this item; *BUSY* There is at least one modification request pending and all following requests will be queued; *INACTIVE* Resource has been de-provisioned; *DEPLOYING* Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; *ACTIVE* Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; *FAILED* Resource state FAILED - relevant for Kubernetes cluster/nodepool; *SUSPENDED* Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; *FAILED_SUSPENDED* Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; *UPDATING* Resource state UPDATING - relevant for Kubernetes cluster/nodepool; *FAILED_UPDATING* Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; *DESTROYING* Resource state DESTROYING - relevant for Kubernetes cluster; *FAILED_DESTROYING* Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; *TERMINATED* Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; *HIBERNATING* Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; *MAINTENANCE* Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.","readOnly":true,"enum":["AVAILABLE","INACTIVE","BUSY","DEPLOYING","ACTIVE","FAILED","SUSPENDED","FAILED_SUSPENDED","UPDATING","FAILED_UPDATING","DESTROYING","FAILED_DESTROYING","TERMINATED","HIBERNATING","FAILED_HIBERNATING","MAINTENANCE","FAILED_MAINTENANCE","UNKNOWN"]}}},"KubernetesClusterProperties":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes cluster name. Valid Kubernetes cluster name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"k8sVersion":{"type":"string","description":"The Kubernetes version the cluster is running. This imposes restrictions on what Kubernetes versions can be run in a cluster's nodepools. Additionally, not all Kubernetes versions are viable upgrade targets for all prior versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"availableUpgradeVersions":{"type":"array","description":"List of available versions for upgrading the cluster","items":{"type":"string"}},"viableNodePoolVersions":{"type":"array","description":"List of versions that may be used for node pools under this cluster","items":{"type":"string"}},"public":{"type":"boolean","description":"The indicator if the cluster is public or private. Be aware that setting it to false is currently in beta phase.","default":true},"location":{"type":"string","description":"The location of the cluster if the cluster is private. This property is immutable. The location must be enabled for your contract or you must have a Datacenter within that location. This attribute is mandatory if the cluster is private."},"natGatewayIp":{"type":"string","description":"The nat gateway IP of the cluster if the cluster is private. This property is immutable. Must be a reserved IP in the same location as the cluster's location. This attribute is mandatory if the cluster is private."},"nodeSubnet":{"type":"string","description":"The node subnet of the cluster, if the cluster is private. This property is optional and immutable. Must be a valid CIDR notation for an IPv4 network prefix of 16 bits length."},"apiSubnetAllowList":{"type":"array","description":"Access to the K8s API server is restricted to these CIDRs. Traffic, internal to the cluster, is not affected by this restriction. If no allowlist is specified, access is not restricted. If an IP without subnet mask is provided, the default value is used: 32 for IPv4 and 128 for IPv6.","items":{"type":"string"}},"s3Buckets":{"type":"array","description":"List of Object storage buckets configured for K8s usage. For now it contains only one bucket used to store K8s API audit logs","items":{"$ref":"#/components/schemas/S3Bucket"}}}},"KubernetesMaintenanceWindow":{"required":["dayOfTheWeek","time"],"type":"object","properties":{"dayOfTheWeek":{"type":"string","description":"The weekday for a maintenance window.","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"time":{"type":"string","description":"The time to use for a maintenance window. Accepted formats are: HH:mm:ss; HH:mm:ss\"Z\"; HH:mm:ssZ. This time may vary by 15 minutes."}}},"S3Bucket":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"The name of the Object storage bucket."}}},"KubernetesClusterEntities":{"type":"object","properties":{"nodepools":{"$ref":"#/components/schemas/KubernetesNodePools"}}},"KubernetesNodePools":{"type":"object","properties":{"id":{"type":"string","description":"A unique representation of the Kubernetes node pool as a resource collection.","readOnly":true},"type":{"type":"string","description":"The resource type within a collection.","readOnly":true,"enum":["collection"]},"href":{"type":"string","description":"The URL to the collection representation (absolute path).","format":"uri","readOnly":true},"items":{"type":"array","description":"Array of items in the collection.","readOnly":true,"items":{"$ref":"#/components/schemas/KubernetesNodePool"}}}},"KubernetesNodePool":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolProperties"}}},"KubernetesNodePoolProperties":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes.\n\n**Deprecated**: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.\n","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}},"availableUpgradeVersions":{"type":"array","description":"The list of available versions for upgrading the node pool.","items":{"type":"string"}}}},"KubernetesNodePoolServerType":{"type":"string","enum":["DedicatedCore","VCPU"],"default":"DedicatedCore","description":"The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine."},"KubernetesAutoScaling":{"required":["maxNodeCount","minNodeCount"],"type":"object","properties":{"minNodeCount":{"type":"integer","description":"The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.","format":"int32"},"maxNodeCount":{"type":"integer","description":"The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.","format":"int32"}}},"KubernetesNodePoolLan":{"required":["id"],"type":"object","properties":{"datacenterId":{"type":"string","description":"The datacenter ID, requires system privileges, for internal usage only"},"id":{"type":"integer","description":"The LAN ID of an existing LAN at the related data center","format":"int32"},"dhcp":{"type":"boolean","description":"Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP."},"routes":{"type":"array","description":"The array of additional LANs attached to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLanRoutes"}}}},"KubernetesNodePoolLanRoutes":{"type":"object","properties":{"network":{"type":"string","description":"IPv4 or IPv6 CIDR to be routed via the interface."},"gatewayIp":{"type":"string","description":"IPv4 or IPv6 Gateway IP for the route."}}},"KubernetesNodePoolLabel":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels attached to the node pool."},"KubernetesNodePoolAnnotation":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations attached to the node pool."},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}":{"get":{"tags":["Kubernetes"],"summary":"Get a Kubernetes Cluster by ID","description":"Retrieves the K8s cluster specified by its ID.","operationId":"k8sFindByClusterId","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the K8s cluster to be retrieved.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesCluster"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Modify a Kubernetes Cluster by ID

> Modifies the K8s cluster specified by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesClusterForPut":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The type of object.","readOnly":true,"enum":["k8s"]},"href":{"type":"string","description":"URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesClusterPropertiesForPut"},"entities":{"$ref":"#/components/schemas/KubernetesClusterEntities"}}},"DatacenterElementMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"Resource's Entity Tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The last time the resource was created.","format":"date-time","readOnly":true},"createdBy":{"type":"string","description":"The user who created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","description":"The last time the resource was modified.","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","description":"The user who last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"state":{"type":"string","description":"State of the resource. *AVAILABLE* There are no pending modification requests for this item; *BUSY* There is at least one modification request pending and all following requests will be queued; *INACTIVE* Resource has been de-provisioned; *DEPLOYING* Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; *ACTIVE* Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; *FAILED* Resource state FAILED - relevant for Kubernetes cluster/nodepool; *SUSPENDED* Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; *FAILED_SUSPENDED* Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; *UPDATING* Resource state UPDATING - relevant for Kubernetes cluster/nodepool; *FAILED_UPDATING* Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; *DESTROYING* Resource state DESTROYING - relevant for Kubernetes cluster; *FAILED_DESTROYING* Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; *TERMINATED* Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; *HIBERNATING* Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; *MAINTENANCE* Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.","readOnly":true,"enum":["AVAILABLE","INACTIVE","BUSY","DEPLOYING","ACTIVE","FAILED","SUSPENDED","FAILED_SUSPENDED","UPDATING","FAILED_UPDATING","DESTROYING","FAILED_DESTROYING","TERMINATED","HIBERNATING","FAILED_HIBERNATING","MAINTENANCE","FAILED_MAINTENANCE","UNKNOWN"]}}},"KubernetesClusterPropertiesForPut":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes cluster name. Valid Kubernetes cluster name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"k8sVersion":{"type":"string","description":"The Kubernetes version that the cluster is running. This limits which Kubernetes versions can run in a cluster's node pools. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"apiSubnetAllowList":{"type":"array","description":"Access to the K8s API server is restricted to these CIDRs. Intra-cluster traffic is not affected by this restriction. If no AllowList is specified, access is not limited. If an IP is specified without a subnet mask, the default value is 32 for IPv4 and 128 for IPv6.","items":{"type":"string"}},"s3Buckets":{"type":"array","description":"List of Object storage buckets configured for K8s usage. At the moment, it contains only one bucket that is used to store K8s API audit logs.","items":{"$ref":"#/components/schemas/S3Bucket"}}}},"KubernetesMaintenanceWindow":{"required":["dayOfTheWeek","time"],"type":"object","properties":{"dayOfTheWeek":{"type":"string","description":"The weekday for a maintenance window.","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"time":{"type":"string","description":"The time to use for a maintenance window. Accepted formats are: HH:mm:ss; HH:mm:ss\"Z\"; HH:mm:ssZ. This time may vary by 15 minutes."}}},"S3Bucket":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"The name of the Object storage bucket."}}},"KubernetesClusterEntities":{"type":"object","properties":{"nodepools":{"$ref":"#/components/schemas/KubernetesNodePools"}}},"KubernetesNodePools":{"type":"object","properties":{"id":{"type":"string","description":"A unique representation of the Kubernetes node pool as a resource collection.","readOnly":true},"type":{"type":"string","description":"The resource type within a collection.","readOnly":true,"enum":["collection"]},"href":{"type":"string","description":"The URL to the collection representation (absolute path).","format":"uri","readOnly":true},"items":{"type":"array","description":"Array of items in the collection.","readOnly":true,"items":{"$ref":"#/components/schemas/KubernetesNodePool"}}}},"KubernetesNodePool":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolProperties"}}},"KubernetesNodePoolProperties":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes.\n\n**Deprecated**: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.\n","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}},"availableUpgradeVersions":{"type":"array","description":"The list of available versions for upgrading the node pool.","items":{"type":"string"}}}},"KubernetesNodePoolServerType":{"type":"string","enum":["DedicatedCore","VCPU"],"default":"DedicatedCore","description":"The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine."},"KubernetesAutoScaling":{"required":["maxNodeCount","minNodeCount"],"type":"object","properties":{"minNodeCount":{"type":"integer","description":"The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.","format":"int32"},"maxNodeCount":{"type":"integer","description":"The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.","format":"int32"}}},"KubernetesNodePoolLan":{"required":["id"],"type":"object","properties":{"datacenterId":{"type":"string","description":"The datacenter ID, requires system privileges, for internal usage only"},"id":{"type":"integer","description":"The LAN ID of an existing LAN at the related data center","format":"int32"},"dhcp":{"type":"boolean","description":"Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP."},"routes":{"type":"array","description":"The array of additional LANs attached to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLanRoutes"}}}},"KubernetesNodePoolLanRoutes":{"type":"object","properties":{"network":{"type":"string","description":"IPv4 or IPv6 CIDR to be routed via the interface."},"gatewayIp":{"type":"string","description":"IPv4 or IPv6 Gateway IP for the route."}}},"KubernetesNodePoolLabel":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels attached to the node pool."},"KubernetesNodePoolAnnotation":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations attached to the node pool."},"KubernetesCluster":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["k8s"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesClusterProperties"},"entities":{"$ref":"#/components/schemas/KubernetesClusterEntities"}}},"KubernetesClusterProperties":{"required":["name"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes cluster name. Valid Kubernetes cluster name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"k8sVersion":{"type":"string","description":"The Kubernetes version the cluster is running. This imposes restrictions on what Kubernetes versions can be run in a cluster's nodepools. Additionally, not all Kubernetes versions are viable upgrade targets for all prior versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"availableUpgradeVersions":{"type":"array","description":"List of available versions for upgrading the cluster","items":{"type":"string"}},"viableNodePoolVersions":{"type":"array","description":"List of versions that may be used for node pools under this cluster","items":{"type":"string"}},"public":{"type":"boolean","description":"The indicator if the cluster is public or private. Be aware that setting it to false is currently in beta phase.","default":true},"location":{"type":"string","description":"The location of the cluster if the cluster is private. This property is immutable. The location must be enabled for your contract or you must have a Datacenter within that location. This attribute is mandatory if the cluster is private."},"natGatewayIp":{"type":"string","description":"The nat gateway IP of the cluster if the cluster is private. This property is immutable. Must be a reserved IP in the same location as the cluster's location. This attribute is mandatory if the cluster is private."},"nodeSubnet":{"type":"string","description":"The node subnet of the cluster, if the cluster is private. This property is optional and immutable. Must be a valid CIDR notation for an IPv4 network prefix of 16 bits length."},"apiSubnetAllowList":{"type":"array","description":"Access to the K8s API server is restricted to these CIDRs. Traffic, internal to the cluster, is not affected by this restriction. If no allowlist is specified, access is not restricted. If an IP without subnet mask is provided, the default value is used: 32 for IPv4 and 128 for IPv6.","items":{"type":"string"}},"s3Buckets":{"type":"array","description":"List of Object storage buckets configured for K8s usage. For now it contains only one bucket used to store K8s API audit logs","items":{"$ref":"#/components/schemas/S3Bucket"}}}},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}":{"put":{"tags":["Kubernetes"],"summary":"Modify a Kubernetes Cluster by ID","description":"Modifies the K8s cluster specified by its ID.","operationId":"k8sPut","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"The modified Kubernetes cluster.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesClusterForPut"}}},"required":true},"responses":{"202":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesCluster"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Delete a Kubernetes Cluster by ID

> Deletes the K8s cluster specified  by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}":{"delete":{"tags":["Kubernetes"],"summary":"Delete a Kubernetes Cluster by ID","description":"Deletes the K8s cluster specified  by its ID.","operationId":"k8sDelete","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"202":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Kubernetes Configuration File

> Retrieves the configuration file for the specified K8s cluster. You can define the format (YAML or JSON) of the returned file in the Accept header. By default, 'application/yaml' is specified.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/kubeconfig":{"get":{"tags":["Kubernetes"],"summary":"Get Kubernetes Configuration File","description":"Retrieves the configuration file for the specified K8s cluster. You can define the format (YAML or JSON) of the returned file in the Accept header. By default, 'application/yaml' is specified.","operationId":"k8sKubeconfigGet","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/yaml":{"schema":{"type":"string"}},"application/x-yaml":{"schema":{"type":"string"}},"application/json":{"schema":{"type":"string"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/yaml":{"schema":{"$ref":"#/components/schemas/Error"}},"application/x-yaml":{"schema":{"$ref":"#/components/schemas/Error"}},"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Kubernetes Node Pools

> Retrieves a list of K8s node pools of a cluster specified by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesNodePools":{"type":"object","properties":{"id":{"type":"string","description":"A unique representation of the Kubernetes node pool as a resource collection.","readOnly":true},"type":{"type":"string","description":"The resource type within a collection.","readOnly":true,"enum":["collection"]},"href":{"type":"string","description":"The URL to the collection representation (absolute path).","format":"uri","readOnly":true},"items":{"type":"array","description":"Array of items in the collection.","readOnly":true,"items":{"$ref":"#/components/schemas/KubernetesNodePool"}}}},"KubernetesNodePool":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolProperties"}}},"DatacenterElementMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"Resource's Entity Tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The last time the resource was created.","format":"date-time","readOnly":true},"createdBy":{"type":"string","description":"The user who created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","description":"The last time the resource was modified.","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","description":"The user who last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"state":{"type":"string","description":"State of the resource. *AVAILABLE* There are no pending modification requests for this item; *BUSY* There is at least one modification request pending and all following requests will be queued; *INACTIVE* Resource has been de-provisioned; *DEPLOYING* Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; *ACTIVE* Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; *FAILED* Resource state FAILED - relevant for Kubernetes cluster/nodepool; *SUSPENDED* Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; *FAILED_SUSPENDED* Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; *UPDATING* Resource state UPDATING - relevant for Kubernetes cluster/nodepool; *FAILED_UPDATING* Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; *DESTROYING* Resource state DESTROYING - relevant for Kubernetes cluster; *FAILED_DESTROYING* Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; *TERMINATED* Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; *HIBERNATING* Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; *MAINTENANCE* Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.","readOnly":true,"enum":["AVAILABLE","INACTIVE","BUSY","DEPLOYING","ACTIVE","FAILED","SUSPENDED","FAILED_SUSPENDED","UPDATING","FAILED_UPDATING","DESTROYING","FAILED_DESTROYING","TERMINATED","HIBERNATING","FAILED_HIBERNATING","MAINTENANCE","FAILED_MAINTENANCE","UNKNOWN"]}}},"KubernetesNodePoolProperties":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes.\n\n**Deprecated**: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.\n","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}},"availableUpgradeVersions":{"type":"array","description":"The list of available versions for upgrading the node pool.","items":{"type":"string"}}}},"KubernetesNodePoolServerType":{"type":"string","enum":["DedicatedCore","VCPU"],"default":"DedicatedCore","description":"The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine."},"KubernetesMaintenanceWindow":{"required":["dayOfTheWeek","time"],"type":"object","properties":{"dayOfTheWeek":{"type":"string","description":"The weekday for a maintenance window.","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"time":{"type":"string","description":"The time to use for a maintenance window. Accepted formats are: HH:mm:ss; HH:mm:ss\"Z\"; HH:mm:ssZ. This time may vary by 15 minutes."}}},"KubernetesAutoScaling":{"required":["maxNodeCount","minNodeCount"],"type":"object","properties":{"minNodeCount":{"type":"integer","description":"The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.","format":"int32"},"maxNodeCount":{"type":"integer","description":"The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.","format":"int32"}}},"KubernetesNodePoolLan":{"required":["id"],"type":"object","properties":{"datacenterId":{"type":"string","description":"The datacenter ID, requires system privileges, for internal usage only"},"id":{"type":"integer","description":"The LAN ID of an existing LAN at the related data center","format":"int32"},"dhcp":{"type":"boolean","description":"Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP."},"routes":{"type":"array","description":"The array of additional LANs attached to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLanRoutes"}}}},"KubernetesNodePoolLanRoutes":{"type":"object","properties":{"network":{"type":"string","description":"IPv4 or IPv6 CIDR to be routed via the interface."},"gatewayIp":{"type":"string","description":"IPv4 or IPv6 Gateway IP for the route."}}},"KubernetesNodePoolLabel":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels attached to the node pool."},"KubernetesNodePoolAnnotation":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations attached to the node pool."},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools":{"get":{"tags":["Kubernetes"],"summary":"Get Kubernetes Node Pools","description":"Retrieves a list of K8s node pools of a cluster specified by its ID.","operationId":"k8sNodepoolsGet","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesNodePools"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Create a Kubernetes Node Pool

> Creates a node pool inside the specified K8s cluster.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesNodePoolForPost":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolPropertiesForPost"}}},"DatacenterElementMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"Resource's Entity Tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The last time the resource was created.","format":"date-time","readOnly":true},"createdBy":{"type":"string","description":"The user who created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","description":"The last time the resource was modified.","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","description":"The user who last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"state":{"type":"string","description":"State of the resource. *AVAILABLE* There are no pending modification requests for this item; *BUSY* There is at least one modification request pending and all following requests will be queued; *INACTIVE* Resource has been de-provisioned; *DEPLOYING* Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; *ACTIVE* Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; *FAILED* Resource state FAILED - relevant for Kubernetes cluster/nodepool; *SUSPENDED* Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; *FAILED_SUSPENDED* Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; *UPDATING* Resource state UPDATING - relevant for Kubernetes cluster/nodepool; *FAILED_UPDATING* Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; *DESTROYING* Resource state DESTROYING - relevant for Kubernetes cluster; *FAILED_DESTROYING* Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; *TERMINATED* Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; *HIBERNATING* Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; *MAINTENANCE* Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.","readOnly":true,"enum":["AVAILABLE","INACTIVE","BUSY","DEPLOYING","ACTIVE","FAILED","SUSPENDED","FAILED_SUSPENDED","UPDATING","FAILED_UPDATING","DESTROYING","FAILED_DESTROYING","TERMINATED","HIBERNATING","FAILED_HIBERNATING","MAINTENANCE","FAILED_MAINTENANCE","UNKNOWN"]}}},"KubernetesNodePoolPropertiesForPost":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes. If this field is null or omitted from the request, an available CPU architecture will be automatically selected. Supplying an empty string is not accepted. | **Deprecated**: This property has been deprecated. For a specific use of a CPU type, use \"serverType\" instead.","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}}}},"KubernetesNodePoolServerType":{"type":"string","enum":["DedicatedCore","VCPU"],"default":"DedicatedCore","description":"The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine."},"KubernetesMaintenanceWindow":{"required":["dayOfTheWeek","time"],"type":"object","properties":{"dayOfTheWeek":{"type":"string","description":"The weekday for a maintenance window.","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"time":{"type":"string","description":"The time to use for a maintenance window. Accepted formats are: HH:mm:ss; HH:mm:ss\"Z\"; HH:mm:ssZ. This time may vary by 15 minutes."}}},"KubernetesAutoScaling":{"required":["maxNodeCount","minNodeCount"],"type":"object","properties":{"minNodeCount":{"type":"integer","description":"The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.","format":"int32"},"maxNodeCount":{"type":"integer","description":"The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.","format":"int32"}}},"KubernetesNodePoolLan":{"required":["id"],"type":"object","properties":{"datacenterId":{"type":"string","description":"The datacenter ID, requires system privileges, for internal usage only"},"id":{"type":"integer","description":"The LAN ID of an existing LAN at the related data center","format":"int32"},"dhcp":{"type":"boolean","description":"Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP."},"routes":{"type":"array","description":"The array of additional LANs attached to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLanRoutes"}}}},"KubernetesNodePoolLanRoutes":{"type":"object","properties":{"network":{"type":"string","description":"IPv4 or IPv6 CIDR to be routed via the interface."},"gatewayIp":{"type":"string","description":"IPv4 or IPv6 Gateway IP for the route."}}},"KubernetesNodePoolLabel":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels attached to the node pool."},"KubernetesNodePoolAnnotation":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations attached to the node pool."},"KubernetesNodePool":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolProperties"}}},"KubernetesNodePoolProperties":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes.\n\n**Deprecated**: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.\n","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}},"availableUpgradeVersions":{"type":"array","description":"The list of available versions for upgrading the node pool.","items":{"type":"string"}}}},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools":{"post":{"tags":["Kubernetes"],"summary":"Create a Kubernetes Node Pool","description":"Creates a node pool inside the specified K8s cluster.","operationId":"k8sNodepoolsPost","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"The Kubernetes node pool to create.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesNodePoolForPost"}}},"required":true},"responses":{"202":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesNodePool"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get a Kubernetes Node Pool by ID

> Retrieves the K8s node pool specified by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesNodePool":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolProperties"}}},"DatacenterElementMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"Resource's Entity Tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The last time the resource was created.","format":"date-time","readOnly":true},"createdBy":{"type":"string","description":"The user who created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","description":"The last time the resource was modified.","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","description":"The user who last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"state":{"type":"string","description":"State of the resource. *AVAILABLE* There are no pending modification requests for this item; *BUSY* There is at least one modification request pending and all following requests will be queued; *INACTIVE* Resource has been de-provisioned; *DEPLOYING* Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; *ACTIVE* Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; *FAILED* Resource state FAILED - relevant for Kubernetes cluster/nodepool; *SUSPENDED* Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; *FAILED_SUSPENDED* Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; *UPDATING* Resource state UPDATING - relevant for Kubernetes cluster/nodepool; *FAILED_UPDATING* Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; *DESTROYING* Resource state DESTROYING - relevant for Kubernetes cluster; *FAILED_DESTROYING* Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; *TERMINATED* Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; *HIBERNATING* Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; *MAINTENANCE* Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.","readOnly":true,"enum":["AVAILABLE","INACTIVE","BUSY","DEPLOYING","ACTIVE","FAILED","SUSPENDED","FAILED_SUSPENDED","UPDATING","FAILED_UPDATING","DESTROYING","FAILED_DESTROYING","TERMINATED","HIBERNATING","FAILED_HIBERNATING","MAINTENANCE","FAILED_MAINTENANCE","UNKNOWN"]}}},"KubernetesNodePoolProperties":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes.\n\n**Deprecated**: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.\n","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}},"availableUpgradeVersions":{"type":"array","description":"The list of available versions for upgrading the node pool.","items":{"type":"string"}}}},"KubernetesNodePoolServerType":{"type":"string","enum":["DedicatedCore","VCPU"],"default":"DedicatedCore","description":"The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine."},"KubernetesMaintenanceWindow":{"required":["dayOfTheWeek","time"],"type":"object","properties":{"dayOfTheWeek":{"type":"string","description":"The weekday for a maintenance window.","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"time":{"type":"string","description":"The time to use for a maintenance window. Accepted formats are: HH:mm:ss; HH:mm:ss\"Z\"; HH:mm:ssZ. This time may vary by 15 minutes."}}},"KubernetesAutoScaling":{"required":["maxNodeCount","minNodeCount"],"type":"object","properties":{"minNodeCount":{"type":"integer","description":"The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.","format":"int32"},"maxNodeCount":{"type":"integer","description":"The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.","format":"int32"}}},"KubernetesNodePoolLan":{"required":["id"],"type":"object","properties":{"datacenterId":{"type":"string","description":"The datacenter ID, requires system privileges, for internal usage only"},"id":{"type":"integer","description":"The LAN ID of an existing LAN at the related data center","format":"int32"},"dhcp":{"type":"boolean","description":"Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP."},"routes":{"type":"array","description":"The array of additional LANs attached to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLanRoutes"}}}},"KubernetesNodePoolLanRoutes":{"type":"object","properties":{"network":{"type":"string","description":"IPv4 or IPv6 CIDR to be routed via the interface."},"gatewayIp":{"type":"string","description":"IPv4 or IPv6 Gateway IP for the route."}}},"KubernetesNodePoolLabel":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels attached to the node pool."},"KubernetesNodePoolAnnotation":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations attached to the node pool."},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools/{nodepoolId}":{"get":{"tags":["Kubernetes"],"summary":"Get a Kubernetes Node Pool by ID","description":"Retrieves the K8s node pool specified by its ID.","operationId":"k8sNodepoolsFindById","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"nodepoolId","in":"path","description":"The unique ID of the Kubernetes node pool.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesNodePool"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Modify a Kubernetes Node Pool by ID

> Modifies the K8s node pool specified by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesNodePoolForPut":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolPropertiesForPut"}}},"DatacenterElementMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"Resource's Entity Tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity Tag is also added as an 'ETag response header to requests which don't use 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The last time the resource was created.","format":"date-time","readOnly":true},"createdBy":{"type":"string","description":"The user who created the resource.","readOnly":true},"createdByUserId":{"type":"string","description":"The unique ID of the user who created the resource.","readOnly":true},"lastModifiedDate":{"type":"string","description":"The last time the resource was modified.","format":"date-time","readOnly":true},"lastModifiedBy":{"type":"string","description":"The user who last modified the resource.","readOnly":true},"lastModifiedByUserId":{"type":"string","description":"The unique ID of the user who last modified the resource.","readOnly":true},"state":{"type":"string","description":"State of the resource. *AVAILABLE* There are no pending modification requests for this item; *BUSY* There is at least one modification request pending and all following requests will be queued; *INACTIVE* Resource has been de-provisioned; *DEPLOYING* Resource state DEPLOYING - relevant for Kubernetes cluster/nodepool; *ACTIVE* Resource state ACTIVE - relevant for Kubernetes cluster/nodepool; *FAILED* Resource state FAILED - relevant for Kubernetes cluster/nodepool; *SUSPENDED* Resource state SUSPENDED - relevant for Kubernetes cluster/nodepool; *FAILED_SUSPENDED* Resource state FAILED_SUSPENDED - relevant for Kubernetes cluster; *UPDATING* Resource state UPDATING - relevant for Kubernetes cluster/nodepool; *FAILED_UPDATING* Resource state FAILED_UPDATING - relevant for Kubernetes cluster/nodepool; *DESTROYING* Resource state DESTROYING - relevant for Kubernetes cluster; *FAILED_DESTROYING* Resource state FAILED_DESTROYING - relevant for Kubernetes cluster/nodepool; *TERMINATED* Resource state TERMINATED - relevant for Kubernetes cluster/nodepool; *HIBERNATING* Resource state HIBERNATING - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool; *MAINTENANCE* Resource state MAINTENANCE - relevant for Kubernetes cluster/nodepool; *FAILED_HIBERNATING* Resource state FAILED_HIBERNATING - relevant for Kubernetes cluster/nodepool.","readOnly":true,"enum":["AVAILABLE","INACTIVE","BUSY","DEPLOYING","ACTIVE","FAILED","SUSPENDED","FAILED_SUSPENDED","UPDATING","FAILED_UPDATING","DESTROYING","FAILED_DESTROYING","TERMINATED","HIBERNATING","FAILED_HIBERNATING","MAINTENANCE","FAILED_MAINTENANCE","UNKNOWN"]}}},"KubernetesNodePoolPropertiesForPut":{"required":["nodeCount"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}}}},"KubernetesNodePoolServerType":{"type":"string","enum":["DedicatedCore","VCPU"],"default":"DedicatedCore","description":"The type of server for the Kubernetes node pool can be either 'DedicatedCore' (nodes with dedicated CPU cores) or 'VCPU' (nodes with shared CPU cores). This selection corresponds to the server type for the compute engine."},"KubernetesMaintenanceWindow":{"required":["dayOfTheWeek","time"],"type":"object","properties":{"dayOfTheWeek":{"type":"string","description":"The weekday for a maintenance window.","enum":["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"]},"time":{"type":"string","description":"The time to use for a maintenance window. Accepted formats are: HH:mm:ss; HH:mm:ss\"Z\"; HH:mm:ssZ. This time may vary by 15 minutes."}}},"KubernetesAutoScaling":{"required":["maxNodeCount","minNodeCount"],"type":"object","properties":{"minNodeCount":{"type":"integer","description":"The minimum number of working nodes that the managed node pool can scale must be >= 1 and >= nodeCount. Required if autoScaling is specified.","format":"int32"},"maxNodeCount":{"type":"integer","description":"The maximum number of worker nodes that the managed node pool can scale in. Must be >= minNodeCount and must be >= nodeCount. Required if autoScaling is specified.","format":"int32"}}},"KubernetesNodePoolLan":{"required":["id"],"type":"object","properties":{"datacenterId":{"type":"string","description":"The datacenter ID, requires system privileges, for internal usage only"},"id":{"type":"integer","description":"The LAN ID of an existing LAN at the related data center","format":"int32"},"dhcp":{"type":"boolean","description":"Specifies whether the Kubernetes node pool LAN reserves an IP with DHCP."},"routes":{"type":"array","description":"The array of additional LANs attached to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLanRoutes"}}}},"KubernetesNodePoolLanRoutes":{"type":"object","properties":{"network":{"type":"string","description":"IPv4 or IPv6 CIDR to be routed via the interface."},"gatewayIp":{"type":"string","description":"IPv4 or IPv6 Gateway IP for the route."}}},"KubernetesNodePoolLabel":{"type":"object","additionalProperties":{"type":"string"},"description":"The labels attached to the node pool."},"KubernetesNodePoolAnnotation":{"type":"object","additionalProperties":{"type":"string"},"description":"The annotations attached to the node pool."},"KubernetesNodePool":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["nodepool"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/DatacenterElementMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodePoolProperties"}}},"KubernetesNodePoolProperties":{"required":["availabilityZone","coresCount","datacenterId","name","nodeCount","ramSize","storageSize","storageType"],"type":"object","properties":{"name":{"type":"string","description":"A Kubernetes node pool name. Valid Kubernetes node pool name must be 63 characters or less and must be empty or begin and end with an alphanumeric character ([a-z0-9A-Z]) with dashes (-), underscores (_), dots (.), and alphanumerics between."},"datacenterId":{"type":"string","description":"The unique identifier of the data center where the worker nodes of the node pool are provisioned. Note that the data center must be located in the same location as the cluster of the node pool or in one of its associated locations. For private Kubernetes, the data centers of all node pools must be placed at the same location."},"nodeCount":{"type":"integer","description":"The number of worker nodes of the node pool."},"serverType":{"$ref":"#/components/schemas/KubernetesNodePoolServerType"},"cpuFamily":{"type":"string","description":"The CPU type for the nodes.\n\n**Deprecated**: This property has been deprecated. For a specific CPU type, use \"serverType\" instead.\n","deprecated":true},"coresCount":{"type":"integer","description":"The total number of cores for the nodes."},"ramSize":{"type":"integer","description":"The RAM size for the nodes. Must be specified in multiples of 1024 MB, with a minimum size of 2048 MB."},"availabilityZone":{"type":"string","description":"The availability zone in which the target VM should be provisioned.","enum":["AUTO","ZONE_1","ZONE_2"]},"storageType":{"type":"string","description":"The storage type for the nodes.","enum":["HDD","SSD"]},"storageSize":{"type":"integer","description":"The allocated volume size in GB. The allocated volume size in GB. To achieve good performance, we recommend a size greater than 100GB for SSD."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."},"maintenanceWindow":{"$ref":"#/components/schemas/KubernetesMaintenanceWindow"},"autoScaling":{"$ref":"#/components/schemas/KubernetesAutoScaling"},"lans":{"type":"array","description":"The array of existing private LANs to attach to worker nodes.","items":{"$ref":"#/components/schemas/KubernetesNodePoolLan"}},"labels":{"$ref":"#/components/schemas/KubernetesNodePoolLabel"},"annotations":{"$ref":"#/components/schemas/KubernetesNodePoolAnnotation"},"publicIps":{"type":"array","description":"Optional array of reserved public IP addresses to be used by the nodes. The IPs must be from the exact location of the node pool's data center. If autoscaling is used, the array must contain one more IP than the maximum possible number of nodes (nodeCount+1 for a fixed number of nodes or maxNodeCount+1). The extra IP is used when the nodes are rebuilt.","items":{"type":"string"}},"availableUpgradeVersions":{"type":"array","description":"The list of available versions for upgrading the node pool.","items":{"type":"string"}}}},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools/{nodepoolId}":{"put":{"tags":["Kubernetes"],"summary":"Modify a Kubernetes Node Pool by ID","description":"Modifies the K8s node pool specified by its ID.","operationId":"k8sNodepoolsPut","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"nodepoolId","in":"path","description":"The unique ID of the Kubernetes node pool.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"requestBody":{"description":"Details of the Kubernetes Node Pool","content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesNodePoolForPut"}}},"required":true},"responses":{"202":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesNodePool"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Delete a Kubernetes Node Pool by ID

> Deletes the K8s node pool specified by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools/{nodepoolId}":{"delete":{"tags":["Kubernetes"],"summary":"Delete a Kubernetes Node Pool by ID","description":"Deletes the K8s node pool specified by its ID.","operationId":"k8sNodepoolsDelete","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"nodepoolId","in":"path","description":"The unique ID of the Kubernetes node pool.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"202":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Kubernetes Nodes

> Retrieves the list of all K8s nodes of the specified node pool.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesNodes":{"type":"object","properties":{"id":{"type":"string","description":"A unique representation of the Kubernetes node pool as a resource collection.","readOnly":true},"type":{"type":"string","description":"The resource type within a collection.","readOnly":true,"enum":["collection"]},"href":{"type":"string","description":"The URL to the collection representation (absolute path).","format":"uri","readOnly":true},"items":{"type":"array","description":"Array of items in the collection.","readOnly":true,"items":{"$ref":"#/components/schemas/KubernetesNode"}}}},"KubernetesNode":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["node"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/KubernetesNodeMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodeProperties"}}},"KubernetesNodeMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"The resource entity tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity tags are also added as 'ETag' response headers to requests that do not use the 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The date the resource was created.","format":"date-time","readOnly":true},"lastModifiedDate":{"type":"string","description":"The date the resource was last modified.","format":"date-time","readOnly":true},"state":{"type":"string","description":"The resource state.","readOnly":true,"enum":["PROVISIONING","PROVISIONED","READY","TERMINATING","REBUILDING","BUSY"]},"lastSoftwareUpdatedDate":{"type":"string","description":"The date when the software on the node was last updated.","format":"date-time","readOnly":true}}},"KubernetesNodeProperties":{"required":["k8sVersion","name"],"type":"object","properties":{"name":{"type":"string","description":"The Kubernetes node name."},"publicIP":{"type":"string","description":"The public IP associated with the node."},"privateIP":{"type":"string","description":"The private IP associated with the node."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."}}},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools/{nodepoolId}/nodes":{"get":{"tags":["Kubernetes"],"summary":"Get Kubernetes Nodes","description":"Retrieves the list of all K8s nodes of the specified node pool.","operationId":"k8sNodepoolsNodesGet","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"nodepoolId","in":"path","description":"The unique ID of the Kubernetes node pool.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesNodes"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Kubernetes Node by ID

> Retrieves the K8s node specified by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"KubernetesNode":{"required":["properties"],"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier.","readOnly":true},"type":{"type":"string","description":"The object type.","readOnly":true,"enum":["node"]},"href":{"type":"string","description":"The URL to the object representation (absolute path).","format":"uri","readOnly":true},"metadata":{"$ref":"#/components/schemas/KubernetesNodeMetadata"},"properties":{"$ref":"#/components/schemas/KubernetesNodeProperties"}}},"KubernetesNodeMetadata":{"type":"object","properties":{"etag":{"type":"string","description":"The resource entity tag as defined in http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.11  Entity tags are also added as 'ETag' response headers to requests that do not use the 'depth' parameter.","readOnly":true},"createdDate":{"type":"string","description":"The date the resource was created.","format":"date-time","readOnly":true},"lastModifiedDate":{"type":"string","description":"The date the resource was last modified.","format":"date-time","readOnly":true},"state":{"type":"string","description":"The resource state.","readOnly":true,"enum":["PROVISIONING","PROVISIONED","READY","TERMINATING","REBUILDING","BUSY"]},"lastSoftwareUpdatedDate":{"type":"string","description":"The date when the software on the node was last updated.","format":"date-time","readOnly":true}}},"KubernetesNodeProperties":{"required":["k8sVersion","name"],"type":"object","properties":{"name":{"type":"string","description":"The Kubernetes node name."},"publicIP":{"type":"string","description":"The public IP associated with the node."},"privateIP":{"type":"string","description":"The private IP associated with the node."},"k8sVersion":{"type":"string","description":"The Kubernetes version running in the node pool. Note that this imposes restrictions on which Kubernetes versions can run in the node pools of a cluster. Also, not all Kubernetes versions are suitable upgrade targets for all earlier versions."}}},"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools/{nodepoolId}/nodes/{nodeId}":{"get":{"tags":["Kubernetes"],"summary":"Get Kubernetes Node by ID","description":"Retrieves the K8s node specified by its ID.","operationId":"k8sNodepoolsNodesFindById","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"nodepoolId","in":"path","description":"The unique ID of the Kubernetes node pool.","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","description":"The unique ID of the Kubernetes node.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KubernetesNode"}}}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Delete a Kubernetes Node by ID

> Deletes the K8s node specified by its ID.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools/{nodepoolId}/nodes/{nodeId}":{"delete":{"tags":["Kubernetes"],"summary":"Delete a Kubernetes Node by ID","description":"Deletes the K8s node specified by its ID.","operationId":"k8sNodepoolsNodesDelete","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"nodepoolId","in":"path","description":"The unique ID of the Kubernetes node pool.","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","description":"The unique ID of the Kubernetes node.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"202":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Recreate a Kubernetes Node by ID

> Recreates the K8s node specified by its ID.\
> \
> If a node becomes unusable, Managed Kubernetes allows you to recreate it with a configuration based on the node pool template. Once the status is 'Active,' all the pods from the failed node will be migrated to the new node. The node pool has an additional billable 'active' node during this process.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/{k8sClusterId}/nodepools/{nodepoolId}/nodes/{nodeId}/replace":{"post":{"tags":["Kubernetes"],"summary":"Recreate a Kubernetes Node by ID","description":"Recreates the K8s node specified by its ID.\n\nIf a node becomes unusable, Managed Kubernetes allows you to recreate it with a configuration based on the node pool template. Once the status is 'Active,' all the pods from the failed node will be migrated to the new node. The node pool has an additional billable 'active' node during this process.","operationId":"k8sNodepoolsNodesReplacePost","parameters":[{"name":"k8sClusterId","in":"path","description":"The unique ID of the Kubernetes cluster.","required":true,"schema":{"type":"string"}},{"name":"nodepoolId","in":"path","description":"The unique ID of the Kubernetes node pool.","required":true,"schema":{"type":"string"}},{"name":"nodeId","in":"path","description":"The unique ID of the Kubernetes node.","required":true,"schema":{"type":"string"}},{"name":"pretty","in":"query","description":"Controls whether the response is pretty-printed (with indentations and new lines).","schema":{"type":"boolean","default":true}},{"name":"depth","in":"query","description":"Controls the detail depth of the response objects. \nGET /datacenters/[ID]\n\t- depth=0: Only direct properties are included; children (servers and other elements) are not included.\n\t- depth=1: Direct properties and children references are included.\n\t- depth=2: Direct properties and children properties are included.\n\t- depth=3: Direct properties and children properties and children's children are included.\n\t- depth=... and so on","schema":{"maximum":10,"minimum":0,"type":"integer","format":"int32","default":0}},{"name":"X-Contract-Number","in":"header","description":"Users with multiple contracts must provide the contract number, for which all API requests are to be executed.","schema":{"type":"integer","format":"int32"}}],"responses":{"202":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{}},"default":{"description":"Any erroneous status code: 400 (parse error), 401 (auth error), 402 (trial access), 403 (insufficient privileges), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type, 422 (validation error), 429 (request rate limit exceeded), 500 (server error), or 503 (maintenance).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Kubernetes Versions

> Lists available K8s versions.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/versions":{"get":{"tags":["Kubernetes"],"summary":"Get Kubernetes Versions","description":"Lists available K8s versions.","operationId":"k8sVersionsGet","responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"string"}}}}},"default":{"description":"Any erroneous status code: 401 (auth error), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type), 422 (validation error), 500 (server error), 503 (maintenance)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```

## Get Default Kubernetes Version

> Retrieves the current default K8s version to be used by the clusters and node pools.

```json
{"openapi":"3.0.3","info":{"title":"CLOUD API","version":"6.0"},"tags":[{"name":"Kubernetes","description":"IONOS Cloud Managed Kubernetes (K8s) consist of two central building blocks:\n\nFirst, the Kubernetes cluster provides the control plane, although it is not directly visible. \n\nSecond, the node pools provide the worker nodes. While these are visible in a VDC, as Kubernetes is built on top of the compute engine, i.e., servers, volumes, etc."}],"servers":[{"url":"https://api.ionos.com/cloudapi/v6"}],"security":[{"BasicAuthentication":[]},{"TokenAuthentication":[]}],"components":{"securitySchemes":{"BasicAuthentication":{"type":"http","description":"You will need to base64 encode the string containing your credentials. <div style=\"padding: 15px; border: 1px solid #d1ecf1; background-color: #d1ecf1; color: #0c5460; margin-bottom: 15px;\">\n  <strong>Note:</strong><br/><br/>\n  <ul><li><b>Basic Authentication</b> is supported only when <b>2-Factor \n  Authentication</b> is not configured.</li>\n  <li>Users with <b>2-Factor \n  Authentication</b> activated must generate new 2FA-secured tokens in the DCD using [Token Manager](https://docs.ionos.com/cloud/set-up-ionos-cloud/management/identity-access-management/token-manager). \n  These tokens do not inherit the <b>2FA-secured</b> property by default.</li><li>Token deletion is only possible using the <b>Token Manager</b>.</li>\n</div> Separate your username and password with a colon, i.e., username:password and send it as 'Authorization' request header. More details: https://en.wikipedia.org/wiki/Basic_access_authentication","scheme":"basic"},"TokenAuthentication":{"type":"apiKey","description":"Please provide header value as 'Bearer <token>' and don't forget to add 'Bearer' HTTP Authorization Scheme before the token.","name":"Authorization","in":"header"}},"schemas":{"Error":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","format":"int32","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"Application internal error code.","readOnly":true},"message":{"type":"string","description":"A human-readable message.","readOnly":true}}}}},"paths":{"/k8s/versions/default":{"get":{"tags":["Kubernetes"],"summary":"Get Default Kubernetes Version","description":"Retrieves the current default K8s version to be used by the clusters and node pools.","operationId":"k8sVersionsDefaultGet","responses":{"200":{"description":"Successful operation","headers":{"X-RateLimit-Remaining":{"description":"The number of requests that can still be made without triggering a failure response.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Limit":{"description":"The average number of requests per minute allowed.","schema":{"type":"integer","format":"int32"}},"X-RateLimit-Burst":{"description":"The maximum number of concurrent API requests allowed.","schema":{"type":"integer","format":"int32"}}},"content":{"application/json":{"schema":{"type":"string"}}}},"default":{"description":"Any erroneous status code: 401 (auth error), 404 (not found), 405 (unsupported HTTP method), 415 (unsupported content type), 422 (validation error), 500 (server error), 503 (maintenance)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}
```
