# Public Cloud › Container › Managed Kubernetes Service › Clusters API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Public Cloud product's sections: https://developers.eu.ovhcloud.com/reference/public-cloud/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 13 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/public-cloud/container/managed-kubernetes-service/clusters.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/public-cloud/container/managed-kubernetes-service/clusters.json?format=openapi3

## Operations

- `GET /publicCloud/project/{projectId}/managedKubernetes` — List managed Kubernetes clusters
- `GET /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}` — Get a managed Kubernetes cluster
- `POST /publicCloud/project/{projectId}/managedKubernetes` — Create a managed Kubernetes cluster
- `DELETE /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}` — Delete a managed Kubernetes cluster
- `PUT /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}` — Update a managed Kubernetes cluster
- `GET /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig` — Retrieve the cluster admin kubeconfig
- `POST /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig/reset` — Reset the cluster admin kubeconfig
- `POST /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/restart` — Restart the control plane of a managed Kubernetes cluster
- `GET /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/capabilities/version` — Get the versions of a managed Kubernetes cluster
- `GET /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/usage/etcd` — Get the etcd database usage and quota for a managed Kubernetes cluster
- `GET /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/event` — List all events related to a managed Kubernetes cluster
- `GET /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task` — List all tasks related to a managed Kubernetes cluster
- `GET /publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task/{taskId}` — Get a specific task related to a managed Kubernetes cluster

## List managed Kubernetes clusters

`GET /v2/publicCloud/project/{projectId}/managedKubernetes`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#get-publiccloud-project-projectid-managedkubernetes

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Cluster[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Concurrency control hash of the target specification |
| `createdAt` | string (date-time) | read-only | Cluster creation timestamp |
| `currentState` | publicCloud.managedKubernetes.ClusterCurrentState | read-only | Actual cluster state |
| `currentState.apiServer` | publicCloud.managedKubernetes.CurrentStateApiServer | read-only | Observed API server state: configuration and resolved control-plane URL |
| `currentState.apiServer.access` | publicCloud.managedKubernetes.CurrentStateApiServerAccess | read-only | Observed exposure and IP filtering of the API server |
| `currentState.apiServer.admissionPlugins` | object | read-only | Observed admission plugin configurations |
| `currentState.authentication` | publicCloud.managedKubernetes.CurrentStateAuthentication | read-only | Observed control-plane authentication state |
| `currentState.authentication.oidc` | publicCloud.managedKubernetes.CurrentStateOidc | read-only | Observed OpenID Connect configuration, present when type is OIDC |
| `currentState.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | read-only | Observed active authentication variant — one of `OIDC` |
| `currentState.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade | read-only | Observed automatic Kubernetes version upgrade policy |
| `currentState.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `currentState.cni` | publicCloud.managedKubernetes.Cni | read-only | Observed Container Network Interface plugin and its settings |
| `currentState.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `currentState.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `currentState.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `currentState.deployedVersion` | string | read-only | Full Kubernetes version currently deployed on the cluster, for example 1.34.1-2 |
| `currentState.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy | read-only | Observed internal pod and service CIDRs allocated by the backend, including any applied platform defaults |
| `currentState.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.name` | string | read-only | Observed cluster name |
| `currentState.network` | publicCloud.managedKubernetes.Network | read-only | Observed network topology and resolved network identifiers |
| `currentState.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `currentState.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `currentState.plan` | publicCloud.managedKubernetes.PlanNameEnum | read-only | Observed platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `currentState.region` | string | read-only | Observed deployment region identifier |
| `currentState.version` | string | read-only | Minor Kubernetes version currently running on the cluster, for example 1.34. See deployedVersion for the full version. |
| `currentTasks` | common.CurrentTask[] | read-only | In-progress asynchronous operations on the cluster |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the cluster |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Current lifecycle status of the cluster — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.managedKubernetes.ClusterTargetSpec | read-only | Desired cluster specification |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.Cni | yes | Container Network Interface plugin |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `targetSpec.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `targetSpec.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy |  | Internal pod and service addressing. Immutable after creation. |
| `targetSpec.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.name` | string |  | Cluster name. Not an identifier. Can be changed after creation by PUT. Automatically generated when omitted at creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.Network | yes | Network topology of the cluster nodes. The variant and its identifiers are immutable after creation. defaultEgress remains mutable. |
| `targetSpec.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `targetSpec.plan` | publicCloud.managedKubernetes.PlanNameEnum | yes | Platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `targetSpec.region` | string | yes | Deployment region name |
| `targetSpec.version` | string |  | Desired Kubernetes version. On creation, minor, for example 1.34 or full, for example 1.34.1-2. A minor resolves to its latest patch. On update, minor or full. |
| `updatedAt` | string (date-time) | read-only | Last cluster modification timestamp |

```json
[
  {
    "checksum": "string",
    "createdAt": "2024-01-01T12:00:00Z",
    "currentState": {
      "apiServer": {
        "access": {
          "authorizedIps": {
            "rules": [
              null
            ]
          },
          "publicEndpoint": {
            "url": "string"
          }
        },
        "admissionPlugins": {
          "key": {
            "enabled": true
          }
        }
      },
      "authentication": {
        "oidc": {
          "caContent": "string",
          "clientId": "string",
          "groupsClaim": [
            "string"
          ],
          "groupsPrefix": "string",
          "issuerUrl": "string",
          "requiredClaim": [
            "string"
          ],
          "signingAlgs": [
            "ES256"
          ],
          "usernameClaim": "string",
          "usernamePrefix": "string"
        },
        "type": "OIDC"
      },
      "autoUpgrade": {
        "patch": {
          "enabled": true
        }
      },
      "cni": {
        "canal": {
          "kubeProxy": {
            "iptables": {
              "minSyncPeriod": null,
              "syncPeriod": null
            },
            "ipvs": {
              "minSyncPeriod": null,
              "scheduler": null,
              "syncPeriod": null,
              "tcpFinTimeout": null,
              "tcpTimeout": null,
              "udpTimeout": null
            },
            "mode": "IPTABLES"
          }
        },
        "cilium": {
          "clusterId": 0,
          "clusterMesh": {
            "apiServer": {
              "nodePort": null,
  …
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/managedKubernetes")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/managedKubernetes");

print_r($result);
?>
```

## Get a managed Kubernetes cluster

`GET /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#get-publiccloud-project-projectid-managedkubernetes-managedkubernetesid

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Cluster | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Concurrency control hash of the target specification |
| `createdAt` | string (date-time) | read-only | Cluster creation timestamp |
| `currentState` | publicCloud.managedKubernetes.ClusterCurrentState | read-only | Actual cluster state |
| `currentState.apiServer` | publicCloud.managedKubernetes.CurrentStateApiServer | read-only | Observed API server state: configuration and resolved control-plane URL |
| `currentState.apiServer.access` | publicCloud.managedKubernetes.CurrentStateApiServerAccess | read-only | Observed exposure and IP filtering of the API server |
| `currentState.apiServer.admissionPlugins` | object | read-only | Observed admission plugin configurations |
| `currentState.authentication` | publicCloud.managedKubernetes.CurrentStateAuthentication | read-only | Observed control-plane authentication state |
| `currentState.authentication.oidc` | publicCloud.managedKubernetes.CurrentStateOidc | read-only | Observed OpenID Connect configuration, present when type is OIDC |
| `currentState.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | read-only | Observed active authentication variant — one of `OIDC` |
| `currentState.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade | read-only | Observed automatic Kubernetes version upgrade policy |
| `currentState.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `currentState.cni` | publicCloud.managedKubernetes.Cni | read-only | Observed Container Network Interface plugin and its settings |
| `currentState.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `currentState.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `currentState.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `currentState.deployedVersion` | string | read-only | Full Kubernetes version currently deployed on the cluster, for example 1.34.1-2 |
| `currentState.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy | read-only | Observed internal pod and service CIDRs allocated by the backend, including any applied platform defaults |
| `currentState.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.name` | string | read-only | Observed cluster name |
| `currentState.network` | publicCloud.managedKubernetes.Network | read-only | Observed network topology and resolved network identifiers |
| `currentState.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `currentState.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `currentState.plan` | publicCloud.managedKubernetes.PlanNameEnum | read-only | Observed platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `currentState.region` | string | read-only | Observed deployment region identifier |
| `currentState.version` | string | read-only | Minor Kubernetes version currently running on the cluster, for example 1.34. See deployedVersion for the full version. |
| `currentTasks` | common.CurrentTask[] | read-only | In-progress asynchronous operations on the cluster |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the cluster |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Current lifecycle status of the cluster — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.managedKubernetes.ClusterTargetSpec | read-only | Desired cluster specification |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.Cni | yes | Container Network Interface plugin |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `targetSpec.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `targetSpec.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy |  | Internal pod and service addressing. Immutable after creation. |
| `targetSpec.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.name` | string |  | Cluster name. Not an identifier. Can be changed after creation by PUT. Automatically generated when omitted at creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.Network | yes | Network topology of the cluster nodes. The variant and its identifiers are immutable after creation. defaultEgress remains mutable. |
| `targetSpec.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `targetSpec.plan` | publicCloud.managedKubernetes.PlanNameEnum | yes | Platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `targetSpec.region` | string | yes | Deployment region name |
| `targetSpec.version` | string |  | Desired Kubernetes version. On creation, minor, for example 1.34 or full, for example 1.34.1-2. A minor resolves to its latest patch. On update, minor or full. |
| `updatedAt` | string (date-time) | read-only | Last cluster modification timestamp |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "apiServer": {
      "access": {
        "authorizedIps": {
          "rules": [
            {
              "cidr": null
            }
          ]
        },
        "publicEndpoint": {
          "url": "string"
        }
      },
      "admissionPlugins": {
        "key": {
          "enabled": true
        }
      }
    },
    "authentication": {
      "oidc": {
        "caContent": "string",
        "clientId": "string",
        "groupsClaim": [
          "string"
        ],
        "groupsPrefix": "string",
        "issuerUrl": "string",
        "requiredClaim": [
          "string"
        ],
        "signingAlgs": [
          "ES256"
        ],
        "usernameClaim": "string",
        "usernamePrefix": "string"
      },
      "type": "OIDC"
    },
    "autoUpgrade": {
      "patch": {
        "enabled": true
      }
    },
    "cni": {
      "canal": {
        "kubeProxy": {
          "iptables": {
            "minSyncPeriod": "string",
            "syncPeriod": "string"
          },
          "ipvs": {
            "minSyncPeriod": "string",
            "scheduler": "DESTINATION_HASHING",
            "syncPeriod": "string",
            "tcpFinTimeout": "string",
            "tcpTimeout": "string",
            "udpTimeout": "string"
          },
          "mode": "IPTABLES"
        }
      },
      "cilium": {
        "clusterId": 0,
        "clusterMesh": {
          "apiServer": {
            "nodePort": 0,
            "serviceType": "LoadBalancer"
          },
  …
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}");

print_r($result);
?>
```

## Create a managed Kubernetes cluster

`POST /v2/publicCloud/project/{projectId}/managedKubernetes`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#post-publiccloud-project-projectid-managedkubernetes

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/create`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `projectId` | path | string | yes | Project ID |

### Request body (required)

Type: `publicCloud.managedKubernetes.ClusterCreation`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | publicCloud.managedKubernetes.ClusterTargetSpec | yes | Desired cluster specification |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.Cni | yes | Container Network Interface plugin |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `targetSpec.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `targetSpec.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy |  | Internal pod and service addressing. Immutable after creation. |
| `targetSpec.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.name` | string |  | Cluster name. Not an identifier. Can be changed after creation by PUT. Automatically generated when omitted at creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.Network | yes | Network topology of the cluster nodes. The variant and its identifiers are immutable after creation. defaultEgress remains mutable. |
| `targetSpec.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `targetSpec.plan` | publicCloud.managedKubernetes.PlanNameEnum | yes | Platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `targetSpec.region` | string | yes | Deployment region name |
| `targetSpec.version` | string |  | Desired Kubernetes version. On creation, minor, for example 1.34 or full, for example 1.34.1-2. A minor resolves to its latest patch. On update, minor or full. |

```json
{
  "targetSpec": {
    "apiServer": {
      "access": {
        "authorizedIps": {
          "rules": [
            {
              "cidr": null
            }
          ]
        }
      },
      "admissionPlugins": {
        "key": {
          "enabled": true
        }
      }
    },
    "authentication": {
      "oidc": {
        "caContent": "string",
        "clientId": "string",
        "groupsClaim": [
          "string"
        ],
        "groupsPrefix": "string",
        "issuerUrl": "string",
        "requiredClaim": [
          "string"
        ],
        "signingAlgs": [
          "ES256"
        ],
        "usernameClaim": "string",
        "usernamePrefix": "string"
      },
      "type": "OIDC"
    },
    "autoUpgrade": {
      "patch": {
        "enabled": true
      }
    },
    "cni": {
      "canal": {
        "kubeProxy": {
          "iptables": {
            "minSyncPeriod": "string",
            "syncPeriod": "string"
          },
          "ipvs": {
            "minSyncPeriod": "string",
            "scheduler": "DESTINATION_HASHING",
            "syncPeriod": "string",
            "tcpFinTimeout": "string",
            "tcpTimeout": "string",
            "udpTimeout": "string"
          },
          "mode": "IPTABLES"
        }
      },
      "cilium": {
        "clusterId": 0,
        "clusterMesh": {
          "apiServer": {
            "nodePort": 0,
            "serviceType": "LoadBalancer"
          },
          "enabled": true
        },
        "hubble": {
          "enabled": true,
          "relay": {
            "enabled": true
  …
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Cluster | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Concurrency control hash of the target specification |
| `createdAt` | string (date-time) | read-only | Cluster creation timestamp |
| `currentState` | publicCloud.managedKubernetes.ClusterCurrentState | read-only | Actual cluster state |
| `currentState.apiServer` | publicCloud.managedKubernetes.CurrentStateApiServer | read-only | Observed API server state: configuration and resolved control-plane URL |
| `currentState.apiServer.access` | publicCloud.managedKubernetes.CurrentStateApiServerAccess | read-only | Observed exposure and IP filtering of the API server |
| `currentState.apiServer.admissionPlugins` | object | read-only | Observed admission plugin configurations |
| `currentState.authentication` | publicCloud.managedKubernetes.CurrentStateAuthentication | read-only | Observed control-plane authentication state |
| `currentState.authentication.oidc` | publicCloud.managedKubernetes.CurrentStateOidc | read-only | Observed OpenID Connect configuration, present when type is OIDC |
| `currentState.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | read-only | Observed active authentication variant — one of `OIDC` |
| `currentState.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade | read-only | Observed automatic Kubernetes version upgrade policy |
| `currentState.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `currentState.cni` | publicCloud.managedKubernetes.Cni | read-only | Observed Container Network Interface plugin and its settings |
| `currentState.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `currentState.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `currentState.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `currentState.deployedVersion` | string | read-only | Full Kubernetes version currently deployed on the cluster, for example 1.34.1-2 |
| `currentState.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy | read-only | Observed internal pod and service CIDRs allocated by the backend, including any applied platform defaults |
| `currentState.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.name` | string | read-only | Observed cluster name |
| `currentState.network` | publicCloud.managedKubernetes.Network | read-only | Observed network topology and resolved network identifiers |
| `currentState.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `currentState.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `currentState.plan` | publicCloud.managedKubernetes.PlanNameEnum | read-only | Observed platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `currentState.region` | string | read-only | Observed deployment region identifier |
| `currentState.version` | string | read-only | Minor Kubernetes version currently running on the cluster, for example 1.34. See deployedVersion for the full version. |
| `currentTasks` | common.CurrentTask[] | read-only | In-progress asynchronous operations on the cluster |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the cluster |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Current lifecycle status of the cluster — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.managedKubernetes.ClusterTargetSpec | read-only | Desired cluster specification |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.Cni | yes | Container Network Interface plugin |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `targetSpec.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `targetSpec.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy |  | Internal pod and service addressing. Immutable after creation. |
| `targetSpec.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.name` | string |  | Cluster name. Not an identifier. Can be changed after creation by PUT. Automatically generated when omitted at creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.Network | yes | Network topology of the cluster nodes. The variant and its identifiers are immutable after creation. defaultEgress remains mutable. |
| `targetSpec.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `targetSpec.plan` | publicCloud.managedKubernetes.PlanNameEnum | yes | Platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `targetSpec.region` | string | yes | Deployment region name |
| `targetSpec.version` | string |  | Desired Kubernetes version. On creation, minor, for example 1.34 or full, for example 1.34.1-2. A minor resolves to its latest patch. On update, minor or full. |
| `updatedAt` | string (date-time) | read-only | Last cluster modification timestamp |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "apiServer": {
      "access": {
        "authorizedIps": {
          "rules": [
            {
              "cidr": null
            }
          ]
        },
        "publicEndpoint": {
          "url": "string"
        }
      },
      "admissionPlugins": {
        "key": {
          "enabled": true
        }
      }
    },
    "authentication": {
      "oidc": {
        "caContent": "string",
        "clientId": "string",
        "groupsClaim": [
          "string"
        ],
        "groupsPrefix": "string",
        "issuerUrl": "string",
        "requiredClaim": [
          "string"
        ],
        "signingAlgs": [
          "ES256"
        ],
        "usernameClaim": "string",
        "usernamePrefix": "string"
      },
      "type": "OIDC"
    },
    "autoUpgrade": {
      "patch": {
        "enabled": true
      }
    },
    "cni": {
      "canal": {
        "kubeProxy": {
          "iptables": {
            "minSyncPeriod": "string",
            "syncPeriod": "string"
          },
          "ipvs": {
            "minSyncPeriod": "string",
            "scheduler": "DESTINATION_HASHING",
            "syncPeriod": "string",
            "tcpFinTimeout": "string",
            "tcpTimeout": "string",
            "udpTimeout": "string"
          },
          "mode": "IPTABLES"
        }
      },
      "cilium": {
        "clusterId": 0,
        "clusterMesh": {
          "apiServer": {
            "nodePort": 0,
            "serviceType": "LoadBalancer"
          },
  …
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: publicCloud.managedKubernetes.ClusterCreation
result = client.post("/v2/publicCloud/project/{projectId}/managedKubernetes",
	targetSpec = None, # Desired cluster specification (type: publicCloud.managedKubernetes.ClusterTargetSpec)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: publicCloud.managedKubernetes.ClusterCreation
$result = $ovh->post("/v2/publicCloud/project/{projectId}/managedKubernetes", array(
	targetSpec => null, // Desired cluster specification (type: publicCloud.managedKubernetes.ClusterTargetSpec)
));

print_r($result);
?>
```

## Delete a managed Kubernetes cluster

`DELETE /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#delete-publiccloud-project-projectid-managedkubernetes-managedkubernetesid

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/delete`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Cluster | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Concurrency control hash of the target specification |
| `createdAt` | string (date-time) | read-only | Cluster creation timestamp |
| `currentState` | publicCloud.managedKubernetes.ClusterCurrentState | read-only | Actual cluster state |
| `currentState.apiServer` | publicCloud.managedKubernetes.CurrentStateApiServer | read-only | Observed API server state: configuration and resolved control-plane URL |
| `currentState.apiServer.access` | publicCloud.managedKubernetes.CurrentStateApiServerAccess | read-only | Observed exposure and IP filtering of the API server |
| `currentState.apiServer.admissionPlugins` | object | read-only | Observed admission plugin configurations |
| `currentState.authentication` | publicCloud.managedKubernetes.CurrentStateAuthentication | read-only | Observed control-plane authentication state |
| `currentState.authentication.oidc` | publicCloud.managedKubernetes.CurrentStateOidc | read-only | Observed OpenID Connect configuration, present when type is OIDC |
| `currentState.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | read-only | Observed active authentication variant — one of `OIDC` |
| `currentState.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade | read-only | Observed automatic Kubernetes version upgrade policy |
| `currentState.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `currentState.cni` | publicCloud.managedKubernetes.Cni | read-only | Observed Container Network Interface plugin and its settings |
| `currentState.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `currentState.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `currentState.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `currentState.deployedVersion` | string | read-only | Full Kubernetes version currently deployed on the cluster, for example 1.34.1-2 |
| `currentState.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy | read-only | Observed internal pod and service CIDRs allocated by the backend, including any applied platform defaults |
| `currentState.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.name` | string | read-only | Observed cluster name |
| `currentState.network` | publicCloud.managedKubernetes.Network | read-only | Observed network topology and resolved network identifiers |
| `currentState.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `currentState.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `currentState.plan` | publicCloud.managedKubernetes.PlanNameEnum | read-only | Observed platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `currentState.region` | string | read-only | Observed deployment region identifier |
| `currentState.version` | string | read-only | Minor Kubernetes version currently running on the cluster, for example 1.34. See deployedVersion for the full version. |
| `currentTasks` | common.CurrentTask[] | read-only | In-progress asynchronous operations on the cluster |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the cluster |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Current lifecycle status of the cluster — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.managedKubernetes.ClusterTargetSpec | read-only | Desired cluster specification |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.Cni | yes | Container Network Interface plugin |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `targetSpec.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `targetSpec.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy |  | Internal pod and service addressing. Immutable after creation. |
| `targetSpec.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.name` | string |  | Cluster name. Not an identifier. Can be changed after creation by PUT. Automatically generated when omitted at creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.Network | yes | Network topology of the cluster nodes. The variant and its identifiers are immutable after creation. defaultEgress remains mutable. |
| `targetSpec.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `targetSpec.plan` | publicCloud.managedKubernetes.PlanNameEnum | yes | Platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `targetSpec.region` | string | yes | Deployment region name |
| `targetSpec.version` | string |  | Desired Kubernetes version. On creation, minor, for example 1.34 or full, for example 1.34.1-2. A minor resolves to its latest patch. On update, minor or full. |
| `updatedAt` | string (date-time) | read-only | Last cluster modification timestamp |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "apiServer": {
      "access": {
        "authorizedIps": {
          "rules": [
            {
              "cidr": null
            }
          ]
        },
        "publicEndpoint": {
          "url": "string"
        }
      },
      "admissionPlugins": {
        "key": {
          "enabled": true
        }
      }
    },
    "authentication": {
      "oidc": {
        "caContent": "string",
        "clientId": "string",
        "groupsClaim": [
          "string"
        ],
        "groupsPrefix": "string",
        "issuerUrl": "string",
        "requiredClaim": [
          "string"
        ],
        "signingAlgs": [
          "ES256"
        ],
        "usernameClaim": "string",
        "usernamePrefix": "string"
      },
      "type": "OIDC"
    },
    "autoUpgrade": {
      "patch": {
        "enabled": true
      }
    },
    "cni": {
      "canal": {
        "kubeProxy": {
          "iptables": {
            "minSyncPeriod": "string",
            "syncPeriod": "string"
          },
          "ipvs": {
            "minSyncPeriod": "string",
            "scheduler": "DESTINATION_HASHING",
            "syncPeriod": "string",
            "tcpFinTimeout": "string",
            "tcpTimeout": "string",
            "udpTimeout": "string"
          },
          "mode": "IPTABLES"
        }
      },
      "cilium": {
        "clusterId": 0,
        "clusterMesh": {
          "apiServer": {
            "nodePort": 0,
            "serviceType": "LoadBalancer"
          },
  …
```

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.delete("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->delete("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}");

print_r($result);
?>
```

## Update a managed Kubernetes cluster

`PUT /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#put-publiccloud-project-projectid-managedkubernetes-managedkubernetesid

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Request body (required)

Type: `publicCloud.managedKubernetes.ClusterUpdate`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string |  | Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). |
| `targetSpec` | publicCloud.managedKubernetes.ClusterUpdateTargetSpec | yes | Updated cluster specification with mutable fields only |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.CniUpdate |  | Mutable CNI settings only. The CNI variant is immutable. Its discriminant must not be sent. |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanalUpdate |  | Mutable Canal settings. Present on the FREE plan. The kube-proxy mode is immutable. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Mutable Cilium settings. Present on the STANDARD plan. |
| `targetSpec.name` | string | yes | Cluster name. Not an identifier. Can be changed after creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.NetworkUpdate |  | Mutable network settings only. The network variant and its identifiers are immutable and must not be sent. |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrackUpdate |  | Mutable private network (vRack) settings. Present for a vRack cluster. |
| `targetSpec.version` | string | yes | Desired Kubernetes version, full, for example 1.34.1-2 or minor, for example 1.34. The current minor changes nothing. The next minor upgrades to its latest patch. Changing this drives a version upgrade reconciliation. |

```json
{
  "checksum": "string",
  "targetSpec": {
    "apiServer": {
      "access": {
        "authorizedIps": {
          "rules": [
            {
              "cidr": null
            }
          ]
        }
      },
      "admissionPlugins": {
        "key": {
          "enabled": true
        }
      }
    },
    "authentication": {
      "oidc": {
        "caContent": "string",
        "clientId": "string",
        "groupsClaim": [
          "string"
        ],
        "groupsPrefix": "string",
        "issuerUrl": "string",
        "requiredClaim": [
          "string"
        ],
        "signingAlgs": [
          "ES256"
        ],
        "usernameClaim": "string",
        "usernamePrefix": "string"
      },
      "type": "OIDC"
    },
    "autoUpgrade": {
      "patch": {
        "enabled": true
      }
    },
    "cni": {
      "canal": {
        "kubeProxy": {
          "iptables": {
            "minSyncPeriod": "string",
            "syncPeriod": "string"
          },
          "ipvs": {
            "minSyncPeriod": "string",
            "scheduler": "DESTINATION_HASHING",
            "syncPeriod": "string",
            "tcpFinTimeout": "string",
            "tcpTimeout": "string",
            "udpTimeout": "string"
          }
        }
      },
      "cilium": {
        "clusterId": 0,
        "clusterMesh": {
          "apiServer": {
            "nodePort": 0,
            "serviceType": "LoadBalancer"
          },
          "enabled": true
        },
        "hubble": {
          "enabled": true,
          "relay": {
            "enabled": true
          },
  …
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Cluster | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Concurrency control hash of the target specification |
| `createdAt` | string (date-time) | read-only | Cluster creation timestamp |
| `currentState` | publicCloud.managedKubernetes.ClusterCurrentState | read-only | Actual cluster state |
| `currentState.apiServer` | publicCloud.managedKubernetes.CurrentStateApiServer | read-only | Observed API server state: configuration and resolved control-plane URL |
| `currentState.apiServer.access` | publicCloud.managedKubernetes.CurrentStateApiServerAccess | read-only | Observed exposure and IP filtering of the API server |
| `currentState.apiServer.admissionPlugins` | object | read-only | Observed admission plugin configurations |
| `currentState.authentication` | publicCloud.managedKubernetes.CurrentStateAuthentication | read-only | Observed control-plane authentication state |
| `currentState.authentication.oidc` | publicCloud.managedKubernetes.CurrentStateOidc | read-only | Observed OpenID Connect configuration, present when type is OIDC |
| `currentState.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | read-only | Observed active authentication variant — one of `OIDC` |
| `currentState.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade | read-only | Observed automatic Kubernetes version upgrade policy |
| `currentState.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `currentState.cni` | publicCloud.managedKubernetes.Cni | read-only | Observed Container Network Interface plugin and its settings |
| `currentState.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `currentState.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `currentState.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `currentState.deployedVersion` | string | read-only | Full Kubernetes version currently deployed on the cluster, for example 1.34.1-2 |
| `currentState.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy | read-only | Observed internal pod and service CIDRs allocated by the backend, including any applied platform defaults |
| `currentState.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.name` | string | read-only | Observed cluster name |
| `currentState.network` | publicCloud.managedKubernetes.Network | read-only | Observed network topology and resolved network identifiers |
| `currentState.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `currentState.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `currentState.plan` | publicCloud.managedKubernetes.PlanNameEnum | read-only | Observed platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `currentState.region` | string | read-only | Observed deployment region identifier |
| `currentState.version` | string | read-only | Minor Kubernetes version currently running on the cluster, for example 1.34. See deployedVersion for the full version. |
| `currentTasks` | common.CurrentTask[] | read-only | In-progress asynchronous operations on the cluster |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the cluster |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Current lifecycle status of the cluster — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.managedKubernetes.ClusterTargetSpec | read-only | Desired cluster specification |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.Cni | yes | Container Network Interface plugin |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `targetSpec.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `targetSpec.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy |  | Internal pod and service addressing. Immutable after creation. |
| `targetSpec.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.name` | string |  | Cluster name. Not an identifier. Can be changed after creation by PUT. Automatically generated when omitted at creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.Network | yes | Network topology of the cluster nodes. The variant and its identifiers are immutable after creation. defaultEgress remains mutable. |
| `targetSpec.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `targetSpec.plan` | publicCloud.managedKubernetes.PlanNameEnum | yes | Platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `targetSpec.region` | string | yes | Deployment region name |
| `targetSpec.version` | string |  | Desired Kubernetes version. On creation, minor, for example 1.34 or full, for example 1.34.1-2. A minor resolves to its latest patch. On update, minor or full. |
| `updatedAt` | string (date-time) | read-only | Last cluster modification timestamp |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "apiServer": {
      "access": {
        "authorizedIps": {
          "rules": [
            {
              "cidr": null
            }
          ]
        },
        "publicEndpoint": {
          "url": "string"
        }
      },
      "admissionPlugins": {
        "key": {
          "enabled": true
        }
      }
    },
    "authentication": {
      "oidc": {
        "caContent": "string",
        "clientId": "string",
        "groupsClaim": [
          "string"
        ],
        "groupsPrefix": "string",
        "issuerUrl": "string",
        "requiredClaim": [
          "string"
        ],
        "signingAlgs": [
          "ES256"
        ],
        "usernameClaim": "string",
        "usernamePrefix": "string"
      },
      "type": "OIDC"
    },
    "autoUpgrade": {
      "patch": {
        "enabled": true
      }
    },
    "cni": {
      "canal": {
        "kubeProxy": {
          "iptables": {
            "minSyncPeriod": "string",
            "syncPeriod": "string"
          },
          "ipvs": {
            "minSyncPeriod": "string",
            "scheduler": "DESTINATION_HASHING",
            "syncPeriod": "string",
            "tcpFinTimeout": "string",
            "tcpTimeout": "string",
            "udpTimeout": "string"
          },
          "mode": "IPTABLES"
        }
      },
      "cilium": {
        "clusterId": 0,
        "clusterMesh": {
          "apiServer": {
            "nodePort": 0,
            "serviceType": "LoadBalancer"
          },
  …
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: publicCloud.managedKubernetes.ClusterUpdate
result = client.put("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}",
	checksum = None, # Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). (type: string, nullable)
	targetSpec = None, # Updated cluster specification with mutable fields only (type: publicCloud.managedKubernetes.ClusterUpdateTargetSpec)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: publicCloud.managedKubernetes.ClusterUpdate
$result = $ovh->put("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}", array(
	checksum => null, // Optional concurrency-control checksum. When supplied, it must match the resource's current checksum or the request is rejected with a 409 checksum-mismatch conflict. When omitted or empty, the concurrency check is skipped and the write is forced (last-write-wins). (type: string, nullable)
	targetSpec => null, // Updated cluster specification with mutable fields only (type: publicCloud.managedKubernetes.ClusterUpdateTargetSpec)
));

print_r($result);
?>
```

## Retrieve the cluster admin kubeconfig

`GET /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#get-publiccloud-project-projectid-managedkubernetes-managedkubernetesid-kubeconfig

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/kubeconfig/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Kubeconfig | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `content` | string | read-only | Kubeconfig file content in YAML format |

```json
{
  "content": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig");

print_r($result);
?>
```

## Reset the cluster admin kubeconfig

`POST /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig/reset`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#post-publiccloud-project-projectid-managedkubernetes-managedkubernetesid-kubeconfig-reset

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/kubeconfig/reset`

Rotates the cluster admin credentials asynchronously. The previous kubeconfig stops working.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Cluster | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Concurrency control hash of the target specification |
| `createdAt` | string (date-time) | read-only | Cluster creation timestamp |
| `currentState` | publicCloud.managedKubernetes.ClusterCurrentState | read-only | Actual cluster state |
| `currentState.apiServer` | publicCloud.managedKubernetes.CurrentStateApiServer | read-only | Observed API server state: configuration and resolved control-plane URL |
| `currentState.apiServer.access` | publicCloud.managedKubernetes.CurrentStateApiServerAccess | read-only | Observed exposure and IP filtering of the API server |
| `currentState.apiServer.admissionPlugins` | object | read-only | Observed admission plugin configurations |
| `currentState.authentication` | publicCloud.managedKubernetes.CurrentStateAuthentication | read-only | Observed control-plane authentication state |
| `currentState.authentication.oidc` | publicCloud.managedKubernetes.CurrentStateOidc | read-only | Observed OpenID Connect configuration, present when type is OIDC |
| `currentState.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | read-only | Observed active authentication variant — one of `OIDC` |
| `currentState.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade | read-only | Observed automatic Kubernetes version upgrade policy |
| `currentState.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `currentState.cni` | publicCloud.managedKubernetes.Cni | read-only | Observed Container Network Interface plugin and its settings |
| `currentState.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `currentState.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `currentState.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `currentState.deployedVersion` | string | read-only | Full Kubernetes version currently deployed on the cluster, for example 1.34.1-2 |
| `currentState.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy | read-only | Observed internal pod and service CIDRs allocated by the backend, including any applied platform defaults |
| `currentState.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.name` | string | read-only | Observed cluster name |
| `currentState.network` | publicCloud.managedKubernetes.Network | read-only | Observed network topology and resolved network identifiers |
| `currentState.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `currentState.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `currentState.plan` | publicCloud.managedKubernetes.PlanNameEnum | read-only | Observed platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `currentState.region` | string | read-only | Observed deployment region identifier |
| `currentState.version` | string | read-only | Minor Kubernetes version currently running on the cluster, for example 1.34. See deployedVersion for the full version. |
| `currentTasks` | common.CurrentTask[] | read-only | In-progress asynchronous operations on the cluster |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the cluster |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Current lifecycle status of the cluster — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.managedKubernetes.ClusterTargetSpec | read-only | Desired cluster specification |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.Cni | yes | Container Network Interface plugin |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `targetSpec.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `targetSpec.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy |  | Internal pod and service addressing. Immutable after creation. |
| `targetSpec.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.name` | string |  | Cluster name. Not an identifier. Can be changed after creation by PUT. Automatically generated when omitted at creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.Network | yes | Network topology of the cluster nodes. The variant and its identifiers are immutable after creation. defaultEgress remains mutable. |
| `targetSpec.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `targetSpec.plan` | publicCloud.managedKubernetes.PlanNameEnum | yes | Platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `targetSpec.region` | string | yes | Deployment region name |
| `targetSpec.version` | string |  | Desired Kubernetes version. On creation, minor, for example 1.34 or full, for example 1.34.1-2. A minor resolves to its latest patch. On update, minor or full. |
| `updatedAt` | string (date-time) | read-only | Last cluster modification timestamp |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "apiServer": {
      "access": {
        "authorizedIps": {
          "rules": [
            {
              "cidr": null
            }
          ]
        },
        "publicEndpoint": {
          "url": "string"
        }
      },
      "admissionPlugins": {
        "key": {
          "enabled": true
        }
      }
    },
    "authentication": {
      "oidc": {
        "caContent": "string",
        "clientId": "string",
        "groupsClaim": [
          "string"
        ],
        "groupsPrefix": "string",
        "issuerUrl": "string",
        "requiredClaim": [
          "string"
        ],
        "signingAlgs": [
          "ES256"
        ],
        "usernameClaim": "string",
        "usernamePrefix": "string"
      },
      "type": "OIDC"
    },
    "autoUpgrade": {
      "patch": {
        "enabled": true
      }
    },
    "cni": {
      "canal": {
        "kubeProxy": {
          "iptables": {
            "minSyncPeriod": "string",
            "syncPeriod": "string"
          },
          "ipvs": {
            "minSyncPeriod": "string",
            "scheduler": "DESTINATION_HASHING",
            "syncPeriod": "string",
            "tcpFinTimeout": "string",
            "tcpTimeout": "string",
            "udpTimeout": "string"
          },
          "mode": "IPTABLES"
        }
      },
      "cilium": {
        "clusterId": 0,
        "clusterMesh": {
          "apiServer": {
            "nodePort": 0,
            "serviceType": "LoadBalancer"
          },
  …
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig/reset" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig/reset")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/kubeconfig/reset");

print_r($result);
?>
```

## Restart the control plane of a managed Kubernetes cluster

`POST /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/restart`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#post-publiccloud-project-projectid-managedkubernetes-managedkubernetesid-restart

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/restart`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Request body (required)

Type: `publicCloud.managedKubernetes.ClusterRestart`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `force` | boolean |  | Force the restart. When true the API server may be briefly unavailable. Defaults to false. |

```json
{
  "force": true
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.Cluster | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `checksum` | string | read-only | Concurrency control hash of the target specification |
| `createdAt` | string (date-time) | read-only | Cluster creation timestamp |
| `currentState` | publicCloud.managedKubernetes.ClusterCurrentState | read-only | Actual cluster state |
| `currentState.apiServer` | publicCloud.managedKubernetes.CurrentStateApiServer | read-only | Observed API server state: configuration and resolved control-plane URL |
| `currentState.apiServer.access` | publicCloud.managedKubernetes.CurrentStateApiServerAccess | read-only | Observed exposure and IP filtering of the API server |
| `currentState.apiServer.admissionPlugins` | object | read-only | Observed admission plugin configurations |
| `currentState.authentication` | publicCloud.managedKubernetes.CurrentStateAuthentication | read-only | Observed control-plane authentication state |
| `currentState.authentication.oidc` | publicCloud.managedKubernetes.CurrentStateOidc | read-only | Observed OpenID Connect configuration, present when type is OIDC |
| `currentState.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | read-only | Observed active authentication variant — one of `OIDC` |
| `currentState.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade | read-only | Observed automatic Kubernetes version upgrade policy |
| `currentState.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `currentState.cni` | publicCloud.managedKubernetes.Cni | read-only | Observed Container Network Interface plugin and its settings |
| `currentState.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `currentState.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `currentState.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `currentState.deployedVersion` | string | read-only | Full Kubernetes version currently deployed on the cluster, for example 1.34.1-2 |
| `currentState.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy | read-only | Observed internal pod and service CIDRs allocated by the backend, including any applied platform defaults |
| `currentState.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `currentState.name` | string | read-only | Observed cluster name |
| `currentState.network` | publicCloud.managedKubernetes.Network | read-only | Observed network topology and resolved network identifiers |
| `currentState.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `currentState.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `currentState.plan` | publicCloud.managedKubernetes.PlanNameEnum | read-only | Observed platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `currentState.region` | string | read-only | Observed deployment region identifier |
| `currentState.version` | string | read-only | Minor Kubernetes version currently running on the cluster, for example 1.34. See deployedVersion for the full version. |
| `currentTasks` | common.CurrentTask[] | read-only | In-progress asynchronous operations on the cluster |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier of the cluster |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Current lifecycle status of the cluster — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | publicCloud.managedKubernetes.ClusterTargetSpec | read-only | Desired cluster specification |
| `targetSpec.apiServer` | publicCloud.managedKubernetes.ApiServer |  | Control-plane exposure, IP filtering, and admission plugins |
| `targetSpec.apiServer.access` | publicCloud.managedKubernetes.ApiServerAccess |  | Exposure and IP filtering of the API server |
| `targetSpec.apiServer.admissionPlugins` | object |  | Admission plugin configurations. Plugin names are validated against a platform allowlist. An unknown name is rejected with 400. |
| `targetSpec.authentication` | publicCloud.managedKubernetes.Authentication |  | Control-plane authentication variant |
| `targetSpec.authentication.oidc` | publicCloud.managedKubernetes.Oidc |  | Single-provider OpenID Connect payload. Present when type is OIDC, absent otherwise. |
| `targetSpec.authentication.type` | publicCloud.managedKubernetes.AuthenticationTypeEnum | yes | Selected authentication variant — one of `OIDC` |
| `targetSpec.autoUpgrade` | publicCloud.managedKubernetes.AutoUpgrade |  | Automatic Kubernetes version upgrade policy, by track |
| `targetSpec.autoUpgrade.patch` | publicCloud.managedKubernetes.AutoUpgradeTrack |  | Automatic upgrade track for patch versions, for example 1.34.1-1 to 1.34.2-1. Enabled by default. |
| `targetSpec.cni` | publicCloud.managedKubernetes.Cni | yes | Container Network Interface plugin |
| `targetSpec.cni.canal` | publicCloud.managedKubernetes.CniCanal |  | Canal payload, valid only on the FREE plan. Present when type is CANAL, absent otherwise. |
| `targetSpec.cni.cilium` | publicCloud.managedKubernetes.CniCilium |  | Cilium payload, valid only on the STANDARD plan. Present when type is CILIUM, absent otherwise. |
| `targetSpec.cni.type` | publicCloud.managedKubernetes.CniTypeEnum | yes | Selected CNI variant — one of `CANAL`, `CILIUM` |
| `targetSpec.ipAllocationPolicy` | publicCloud.managedKubernetes.IpAllocationPolicy |  | Internal pod and service addressing. Immutable after creation. |
| `targetSpec.ipAllocationPolicy.pods` | ipv4Block |  | IPv4 CIDR block allocated for pod networking, for example 10.0.0.0/16. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.ipAllocationPolicy.services` | ipv4Block |  | IPv4 CIDR block allocated for service networking, for example 10.96.0.0/12. Immutable after creation. A non-IPv4, invalid or overlapping CIDR is rejected with 400. |
| `targetSpec.name` | string |  | Cluster name. Not an identifier. Can be changed after creation by PUT. Automatically generated when omitted at creation. |
| `targetSpec.network` | publicCloud.managedKubernetes.Network | yes | Network topology of the cluster nodes. The variant and its identifiers are immutable after creation. defaultEgress remains mutable. |
| `targetSpec.network.type` | publicCloud.managedKubernetes.NetworkTypeEnum | yes | Selected network topology variant — one of `PUBLIC`, `VRACK` |
| `targetSpec.network.vrack` | publicCloud.managedKubernetes.NetworkVrack |  | Private network (vRack) payload. Required when type is VRACK. Must be absent otherwise. |
| `targetSpec.plan` | publicCloud.managedKubernetes.PlanNameEnum | yes | Platform tier (FREE or STANDARD) — one of `FREE`, `STANDARD` |
| `targetSpec.region` | string | yes | Deployment region name |
| `targetSpec.version` | string |  | Desired Kubernetes version. On creation, minor, for example 1.34 or full, for example 1.34.1-2. A minor resolves to its latest patch. On update, minor or full. |
| `updatedAt` | string (date-time) | read-only | Last cluster modification timestamp |

```json
{
  "checksum": "string",
  "createdAt": "2024-01-01T12:00:00Z",
  "currentState": {
    "apiServer": {
      "access": {
        "authorizedIps": {
          "rules": [
            {
              "cidr": null
            }
          ]
        },
        "publicEndpoint": {
          "url": "string"
        }
      },
      "admissionPlugins": {
        "key": {
          "enabled": true
        }
      }
    },
    "authentication": {
      "oidc": {
        "caContent": "string",
        "clientId": "string",
        "groupsClaim": [
          "string"
        ],
        "groupsPrefix": "string",
        "issuerUrl": "string",
        "requiredClaim": [
          "string"
        ],
        "signingAlgs": [
          "ES256"
        ],
        "usernameClaim": "string",
        "usernamePrefix": "string"
      },
      "type": "OIDC"
    },
    "autoUpgrade": {
      "patch": {
        "enabled": true
      }
    },
    "cni": {
      "canal": {
        "kubeProxy": {
          "iptables": {
            "minSyncPeriod": "string",
            "syncPeriod": "string"
          },
          "ipvs": {
            "minSyncPeriod": "string",
            "scheduler": "DESTINATION_HASHING",
            "syncPeriod": "string",
            "tcpFinTimeout": "string",
            "tcpTimeout": "string",
            "udpTimeout": "string"
          },
          "mode": "IPTABLES"
        }
      },
      "cilium": {
        "clusterId": 0,
        "clusterMesh": {
          "apiServer": {
            "nodePort": 0,
            "serviceType": "LoadBalancer"
          },
  …
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/restart" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: publicCloud.managedKubernetes.ClusterRestart
result = client.post("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/restart",
	force = None, # Force the restart. When true the API server may be briefly unavailable. Defaults to false. (type: boolean, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: publicCloud.managedKubernetes.ClusterRestart
$result = $ovh->post("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/restart", array(
	force => null, // Force the restart. When true the API server may be briefly unavailable. Defaults to false. (type: boolean, nullable)
));

print_r($result);
?>
```

## Get the versions of a managed Kubernetes cluster

`GET /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/capabilities/version`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#get-publiccloud-project-projectid-managedkubernetes-managedkubernetesid-capabilities-version

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/capabilities/version/get`

Returns the full version deployed on the cluster, the patch versions of the current minor it can update to, and the versions of the next minor it can upgrade to. Multi-minor jumps are never returned.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.ClusterVersions | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `availableUpdates` | publicCloud.managedKubernetes.VersionReference[] | read-only | Patch versions of the current minor the cluster can update to, for example 1.32.8-1 to 1.32.8-2 |
| `availableUpdates[].status` | publicCloud.managedKubernetes.VersionStatusEnum | read-only | Support status of the version — one of `END_OF_SUPPORT`, `SUPPORTED` |
| `availableUpdates[].version` | string | read-only | Kubernetes version. Minor in the creation catalog, for example 1.34, full in the cluster update and upgrade lists, for example 1.34.2-1. |
| `availableUpgrades` | publicCloud.managedKubernetes.VersionReference[] | read-only | Versions of the next minor the cluster can upgrade to, for example 1.32.8-1 to 1.33.1-2. Multi-minor jumps are never listed. |
| `availableUpgrades[].status` | publicCloud.managedKubernetes.VersionStatusEnum | read-only | Support status of the version — one of `END_OF_SUPPORT`, `SUPPORTED` |
| `availableUpgrades[].version` | string | read-only | Kubernetes version. Minor in the creation catalog, for example 1.34, full in the cluster update and upgrade lists, for example 1.34.2-1. |
| `currentVersion` | string | read-only | Full Kubernetes version currently deployed on the cluster, for example 1.32.8-1 |

```json
{
  "availableUpdates": [
    {
      "status": "END_OF_SUPPORT",
      "version": "string"
    }
  ],
  "availableUpgrades": [
    {
      "status": "END_OF_SUPPORT",
      "version": "string"
    }
  ],
  "currentVersion": "string"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/capabilities/version" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/capabilities/version")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/capabilities/version");

print_r($result);
?>
```

## Get the etcd database usage and quota for a managed Kubernetes cluster

`GET /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/usage/etcd`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#get-publiccloud-project-projectid-managedkubernetes-managedkubernetesid-usage-etcd

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/usage/etcd/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | publicCloud.managedKubernetes.EtcdUsage | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `limit` | integer | read-only | Etcd storage quota in bytes |
| `used` | integer | read-only | Current etcd storage usage in bytes |

```json
{
  "limit": 0,
  "used": 0
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/usage/etcd" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/usage/etcd")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/usage/etcd");

print_r($result);
?>
```

## List all events related to a managed Kubernetes cluster

`GET /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/event`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#get-publiccloud-project-projectid-managedkubernetes-managedkubernetesid-event

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/event/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |
| `taskId` | query | string (uuid) |  | Return only the events belonging to this task |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Event[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the event |
| `kind` | string | read-only | Nature of the event |
| `link` | string | read-only | Link to the event related resource |
| `message` | string | read-only | Description of what happened on the event |
| `type` | common.EventTypeEnum | read-only | Type of the event — one of `TARGET_SPEC_UPDATE`, `TASK_ERROR`, `TASK_START`, `TASK_SUCCESS` |

```json
[
  {
    "createdAt": "2024-01-01T12:00:00Z",
    "kind": "string",
    "link": "string",
    "message": "string",
    "type": "TARGET_SPEC_UPDATE"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/event" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/event")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/event");

print_r($result);
?>
```

## List all tasks related to a managed Kubernetes cluster

`GET /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#get-publiccloud-project-projectid-managedkubernetes-managedkubernetesid-task

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/task/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
[
  {
    "createdAt": "2024-01-01T12:00:00Z",
    "errors": [
      {
        "message": "string"
      }
    ],
    "finishedAt": "2024-01-01T12:00:00Z",
    "id": "00000000-0000-0000-0000-000000000000",
    "link": "string",
    "message": "string",
    "progress": [
      {
        "name": "string",
        "status": "DONE"
      }
    ],
    "startedAt": "2024-01-01T12:00:00Z",
    "status": "DONE",
    "type": "string",
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task");

print_r($result);
?>
```

## Get a specific task related to a managed Kubernetes cluster

`GET /v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task/{taskId}`

Link: https://developers.eu.ovhcloud.com/reference/public-cloud/container/managed-kubernetes-service/clusters/#get-publiccloud-project-projectid-managedkubernetes-managedkubernetesid-task-taskid

**Status:** Beta version  
**IAM actions:** `publicCloudProject:apiovh:managedKubernetes/task/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `managedKubernetesId` | path | string (uuid) | yes | Managed kubernetes ID |
| `projectId` | path | string | yes | Project ID |
| `taskId` | path | string (uuid) | yes | Task ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
{
  "createdAt": "2024-01-01T12:00:00Z",
  "errors": [
    {
      "message": "string"
    }
  ],
  "finishedAt": "2024-01-01T12:00:00Z",
  "id": "00000000-0000-0000-0000-000000000000",
  "link": "string",
  "message": "string",
  "progress": [
    {
      "name": "string",
      "status": "DONE"
    }
  ],
  "startedAt": "2024-01-01T12:00:00Z",
  "status": "DONE",
  "type": "string",
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task/{taskId}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task/{taskId}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/v2/publicCloud/project/{projectId}/managedKubernetes/{managedKubernetesId}/task/{taskId}");

print_r($result);
?>
```
