---
title: "Update a whole control plane"
method: PUT
path: "/v1/mesh/control-planes/{cpId}"
tags: ["Mesh"]
---

# Update a whole control plane

`PUT /v1/mesh/control-planes/{cpId}`

Update a whole control plane

## Request body

- PutMeshControlPlaneRequest — a payload to update the whole control plane
  - `name` string, required — The name of the control plane.
  - `description` string
  - `labels` MeshControlPlaneNonNullableLabels, nullable — Labels to facilitate tagged search on control planes. Keys must be of length 1-63 characters.
  - `version` string — The version of the control plane. Setting it propagates the change to the global control plane, and is the only way to move a control plane between versions.

## Response `200`

A response to updating a control plane.

- MeshControlPlane — a control plane
  - `id` string, uuid, required — ID of the control plane.
  - `name` string, required — The name of the control plane.
  - `description` string
  - `labels` MeshControlPlaneLabels, nullable — Labels to facilitate tagged search on control planes. Keys must be of length 1-63 characters.
  - `features` MeshControlPlaneFeature[]
    - `type` 'MeshCreation' | 'HostnameGeneratorCreation', required
    - `hostnameGeneratorCreation` MeshControlPlaneFeatureHostnameGenerationCreation
      - `enabled` boolean, required
    - `meshCreation` MeshControlPlaneFeatureMeshCreation
      - `enabled` boolean, required
  - `version` string — The version of the control plane. Setting it propagates the change to the global control plane, and is the only way to move a control plane between versions.
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required

## Other responses

- `400` — Validation Error
- `401` — Unauthorized Error
- `403` — Permission denied
- `404` — Not found

## Changes

- **2026-08-18** `658ffb748f95` — 2 info
  - added the new optional request property `version`
  - added the optional property `version` to the response with the `200` status
- **2025-11-06** `5d2b35832e3f` — 1 warning
  - added the new `type` enum value to the `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterStandard]/rule` response property for the response status `400`
- **2025-10-02** `ecce2daf9de6` — 5 breaking
  - the response property `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterChoiceItem]/source` became nullable for the status `400`
  - the response property `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterDependentItem]/source` became nullable for the status `400`
  - the response property `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterMaximumLength]/source` became nullable for the status `400`
  - the response property `allOf[subschema #2]/invalid_parameters/items/oneOf[#/components/schemas/InvalidParameterMinimumLength]/source` became nullable for the status `400`
  - …1 more
- **2025-03-19** `d0d31a247ed6` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/kong/apis/konnect-api-beta/changes/v1/mesh/control-planes/:cpId/put.md)

---

[API](https://skmtc.dev/kong/apis/konnect-api-beta.md) · [All operations](https://skmtc.dev/kong/apis/konnect-api-beta/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kong/konnect-api-beta/revisions/cef0f947e9c9/schema)
