---
title: "Konnect Control Planes"
url: "https://seriousmonkeybusiness.shermett.me/apis/konnect-control-planes-2/versions/cdbfd644-3e35-4ab1-acfb-99cb9b2d34ed"
---

# Konnect Control Planes

OpenAPI specification document.

```json
{"openapi":"3.0.0","info":{"title":"Konnect Control Planes","version":"2.0.0","description":"The API for Kong Konnect Control Planes.","contact":{"name":"Kong","url":"https://cloud.konghq.com"}},"servers":[{"url":"https://us.api.konghq.com/v2","description":"United-States Production region"},{"url":"https://eu.api.konghq.com/v2","description":"Europe Production region"},{"url":"https://au.api.konghq.com/v2","description":"Australia Production region"},{"url":"https://me.api.konghq.com/v2","description":"Middle-East Production region"}],"paths":{"/control-planes":{"get":{"operationId":"list-control-planes","summary":"List Control Planes","description":"Returns an array of control plane objects containing information about the Konnect Control Planes.","parameters":[{"$ref":"#/components/parameters/PageSize"},{"$ref":"#/components/parameters/PageNumber"},{"$ref":"#/components/parameters/ControlPlaneFilter"},{"$ref":"#/components/parameters/FilterByLabels"},{"$ref":"#/components/parameters/ControlPlaneSort"}],"responses":{"200":{"$ref":"#/components/responses/ListControlPlanesResponse"},"400":{"$ref":"#/components/responses/ControlPlanesBadRequest"},"401":{"$ref":"#/components/responses/ControlPlaneUnauthenticated"},"403":{"$ref":"#/components/responses/ControlPlanePermissionDenied"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Planes"]},"parameters":[],"post":{"operationId":"create-control-plane","summary":"Create Control Plane","description":"Create a control plane in the Konnect Organization.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateControlPlaneRequest"},"examples":{"Example Request Body":{"$ref":"#/components/examples/CreateControlPlaneRequestExample"}}}}},"responses":{"201":{"$ref":"#/components/responses/CreateControlPlaneResponse"},"400":{"$ref":"#/components/responses/ControlPlanesBadRequest"},"401":{"$ref":"#/components/responses/ControlPlaneUnauthenticated"},"403":{"$ref":"#/components/responses/ControlPlanePermissionDenied"},"409":{"$ref":"#/components/responses/ControlPlaneConflict"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Planes"]}},"/control-planes/{id}":{"parameters":[{"name":"id","in":"path","description":"The control plane ID","required":true,"schema":{"type":"string","format":"uuid","example":"d32d905a-ed33-46a3-a093-d8f536af9a8a"}}],"get":{"operationId":"get-control-plane","summary":"Fetch Control Plane","description":"Returns information about an individual control plane.","responses":{"200":{"$ref":"#/components/responses/RetrieveControlPlaneResponse"},"400":{"$ref":"#/components/responses/ControlPlanesBadRequest"},"401":{"$ref":"#/components/responses/ControlPlaneUnauthenticated"},"403":{"$ref":"#/components/responses/ControlPlanePermissionDenied"},"404":{"$ref":"#/components/responses/ControlPlaneNotFound"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Planes"]},"patch":{"operationId":"update-control-plane","summary":"Update Control Plane","description":"Update an individual control plane.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateControlPlaneRequest"},"examples":{"Example Request Body":{"$ref":"#/components/examples/UpdateControlPlaneRequestExample"}}}}},"responses":{"200":{"$ref":"#/components/responses/UpdateControlPlaneResponse"},"400":{"$ref":"#/components/responses/ControlPlanesBadRequest"},"401":{"$ref":"#/components/responses/ControlPlaneUnauthenticated"},"403":{"$ref":"#/components/responses/ControlPlanePermissionDenied"},"404":{"$ref":"#/components/responses/ControlPlaneNotFound"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Planes"]},"delete":{"operationId":"delete-control-plane","summary":"Delete Control Plane","description":"Delete an individual control plane.","responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/ControlPlanesBadRequest"},"401":{"$ref":"#/components/responses/ControlPlaneUnauthenticated"},"403":{"$ref":"#/components/responses/ControlPlanePermissionDenied"},"404":{"$ref":"#/components/responses/ControlPlaneNotFound"},"500":{"$ref":"#/components/responses/InternalServerError"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Planes"]}},"/control-planes/{id}/group-memberships":{"parameters":[{"name":"id","in":"path","description":"ID of a control plane group","required":true,"schema":{"type":"string"}}],"get":{"operationId":"get-control-planes-id-group-memberships","summary":"List Control Plane Group Memberships","description":"Returns an array of control planes that are a member of this control plane group.","parameters":[{"$ref":"#/components/parameters/PageSize"},{"$ref":"#/components/parameters/PageAfter"}],"responses":{"200":{"$ref":"#/components/responses/ListGroupMemberships"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Plane Groups"]},"put":{"operationId":"put-control-planes-id-group-memberships","summary":"Upsert Control Plane Group Members","description":"Adds one or more control planes as a member of a control plane group.","requestBody":{"$ref":"#/components/requestBodies/GroupMembershipUpsert"},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Plane Groups"]}},"/control-planes/{id}/group-memberships/add":{"parameters":[{"name":"id","in":"path","description":"ID of a control plane group","required":true,"schema":{"type":"string"}}],"post":{"operationId":"post-control-planes-id-group-memberships-add","summary":"Add Control Plane Group Members","description":"Adds one or more control planes as a member of a control plane group.","requestBody":{"$ref":"#/components/requestBodies/GroupMembershipAdd"},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Plane Groups"]}},"/control-planes/{id}/group-memberships/remove":{"parameters":[{"name":"id","in":"path","description":"ID of a control plane group","required":true,"schema":{"type":"string"}}],"post":{"operationId":"post-control-planes-id-group-memberships-remove","summary":"Remove Control Plane Group Members","description":"Removes one or more control planes from the members of a control plane group.","requestBody":{"$ref":"#/components/requestBodies/GroupMembershipRemove"},"responses":{"204":{"description":"No Content"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Plane Groups"]}},"/control-planes/{id}/group-member-status":{"parameters":[{"name":"id","in":"path","description":"ID of a control plane","required":true,"schema":{"type":"string"}}],"get":{"operationId":"get-control-planes-id-group-member-status","summary":"Control Plane Group Member Status","description":"Determines the group membership status of a control plane.","responses":{"200":{"$ref":"#/components/responses/GetGroupMemberStatus"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Plane Groups"]}},"/control-planes/{id}/group-status":{"parameters":[{"name":"id","in":"path","description":"ID of a control plane group","required":true,"schema":{"type":"string"}}],"get":{"operationId":"get-control-planes-id-group-status","summary":"Get Control Plane Group Status","description":"Returns the status of a control plane group, including existing conflicts.","responses":{"200":{"$ref":"#/components/responses/GetGroupStatus"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/Forbidden"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/ServiceUnavailable"}},"tags":["Control Plane Groups"]}}},"components":{"parameters":{"ControlPlaneFilter":{"name":"filter","description":"Filters a collection of control-planes.","required":false,"in":"query","schema":{"$ref":"#/components/schemas/ControlPlaneFilterParameters"},"style":"deepObject"},"ControlPlaneSort":{"name":"sort","description":"Sorts a collection of control-planes. Supported sort attributes are:\n  - created_at\n","required":false,"in":"query","schema":{"$ref":"#/components/schemas/SortQuery"}},"FilterByLabels":{"name":"labels","description":"Filter control planes in the response by associated labels.","in":"query","required":false,"schema":{"type":"string","example":"key:value,existCheck"}},"PageAfter":{"name":"page[after]","description":"Request the next page of data, starting with the item after this parameter.","required":false,"in":"query","allowEmptyValue":true,"schema":{"type":"string","example":"ewogICJpZCI6ICJoZWxsbyB3b3JsZCIKfQ"}},"PageNumber":{"name":"page[number]","description":"Determines which page of the entities to retrieve.","required":false,"in":"query","allowEmptyValue":true,"schema":{"type":"integer","example":1}},"PageSize":{"name":"page[size]","description":"The maximum number of items to include per page. The last page of a collection may include fewer items.","required":false,"in":"query","allowEmptyValue":true,"schema":{"type":"integer","example":10}}},"schemas":{"GroupMembership":{"type":"object","properties":{"members":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}},"required":["members"]},"CreateControlPlaneRequest":{"description":"The request schema for the create control plane request.","type":"object","properties":{"name":{"description":"The name of the control plane.","type":"string","example":"Test Control Plane"},"description":{"description":"The description of the control plane in Konnect.","type":"string","example":"A test control plane for exploration."},"cluster_type":{"description":"The ClusterType value of the cluster associated with the Control Plane.","type":"string","example":"CLUSTER_TYPE_CONTROL_PLANE","enum":["CLUSTER_TYPE_CONTROL_PLANE","CLUSTER_TYPE_K8S_INGRESS_CONTROLLER","CLUSTER_TYPE_CONTROL_PLANE_GROUP","CLUSTER_TYPE_SERVERLESS"]},"auth_type":{"description":"The auth type value of the cluster associated with the Runtime Group.","type":"string","example":"pinned_client_certs","enum":["pinned_client_certs","pki_client_certs"]},"cloud_gateway":{"description":"Whether this control-plane can be used for cloud-gateways.","type":"boolean","example":false},"proxy_urls":{"$ref":"#/components/schemas/ProxyURLs"},"labels":{"$ref":"#/components/schemas/Labels"}},"additionalProperties":false,"required":["name"],"title":"CreateControlPlaneRequest"},"UpdateControlPlaneRequest":{"description":"The request schema for the update control plane request.","type":"object","properties":{"name":{"description":"The name of the control plane.","type":"string","example":"Test Control Plane"},"description":{"description":"The description of the control plane in Konnect.","type":"string","example":"A test control plane for exploration."},"auth_type":{"description":"The auth type value of the cluster associated with the Runtime Group.","type":"string","example":"pinned_client_certs","enum":["pinned_client_certs","pki_client_certs"]},"proxy_urls":{"$ref":"#/components/schemas/ProxyURLs"},"labels":{"$ref":"#/components/schemas/Labels"}},"additionalProperties":false,"title":"UpdateControlPlaneRequest"},"ControlPlane":{"description":"The control plane object contains information about a Kong control plane.","type":"object","properties":{"id":{"description":"The control plane ID.","type":"string","format":"uuid","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","readOnly":true},"name":{"description":"The name of the control plane.","type":"string","example":"Test Control Plane"},"description":{"description":"The description of the control plane in Konnect.","type":"string","example":"A test control plane for exploration."},"labels":{"$ref":"#/components/schemas/Labels"},"config":{"description":"CP configuration object for related access endpoints.","type":"object","additionalProperties":false,"properties":{"control_plane_endpoint":{"description":"Control Plane Endpoint.","type":"string","format":"url","example":"https://acfe5f253f.cp0.konghq.com","readOnly":true},"telemetry_endpoint":{"description":"Telemetry Endpoint.","type":"string","format":"url","example":"https://acfe5f253f.tp0.konghq.com","readOnly":true},"cluster_type":{"description":"The ClusterType value of the cluster associated with the Control Plane.","type":"string","example":"CLUSTER_TYPE_CONTROL_PLANE","enum":["CLUSTER_TYPE_CONTROL_PLANE","CLUSTER_TYPE_K8S_INGRESS_CONTROLLER","CLUSTER_TYPE_CONTROL_PLANE_GROUP","CLUSTER_TYPE_SERVERLESS"],"readOnly":true},"auth_type":{"description":"The auth type value of the cluster associated with the Runtime Group.","type":"string","example":"pinned_client_certs","enum":["pinned_client_certs","pki_client_certs"],"readOnly":true},"cloud_gateway":{"description":"Whether the Control Plane can be used for cloud-gateways.","type":"boolean","readOnly":true},"proxy_urls":{"$ref":"#/components/schemas/ProxyURLs"}},"required":["control_plane_endpoint","telemetry_endpoint","cluster_type","auth_type","cloud_gateway"]},"created_at":{"description":"An ISO-8604 timestamp representation of control plane creation date.","type":"string","format":"date-time","example":"2022-11-04T20:10:06.927Z","readOnly":true},"updated_at":{"description":"An ISO-8604 timestamp representation of control plane update date.","type":"string","format":"date-time","example":"2022-11-04T20:10:06.927Z","readOnly":true}},"additionalProperties":false,"required":["id","name","config","created_at","updated_at"],"x-examples":{"Example 1":{"id":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","name":"Test Control Plane","description":"A test control plane for exploration.","labels":{"env":"test"},"config":{"control_plane_endpoint":"https://acfe5f253f.cp0.konghq.com","telemetry_endpoint":"https://acfe5f253f.tp0.konghq.com","cluster_type":"CLUSTER_TYPE_CONTROL_PLANE","auth_type":"pinned_client_certs","cloud_gateway":false,"proxy_urls":[{"host":"example.com","port":443,"protocol":"https"}]},"created_at":"2022-11-04T20:10:06.927Z","updated_at":"2022-11-04T20:10:06.927Z"}}},"GroupStatus":{"description":"The Group Status object contains information about the status of a control plane group.","type":"object","properties":{"id":{"description":"The control plane group ID.","type":"string","format":"uuid","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","readOnly":true},"created_at":{"description":"An ISO-8604 timestamp representation of control plane group status creation date.","type":"string","format":"date-time","example":"2022-11-04T20:10:06.927Z","readOnly":true},"updated_at":{"description":"An ISO-8604 timestamp representation of control plane group status update date.","type":"string","format":"date-time","example":"2022-11-04T20:10:06.927Z","readOnly":true},"conflicts":{"type":"array","items":{"$ref":"#/components/schemas/GroupConflict"},"maxItems":256},"state":{"description":"The state of the control plane group.","type":"string","example":"CONFLICT","enum":["OK","CONFLICT","UNKNOWN"],"readOnly":true}},"required":["id","created_at","updated_at","state"],"title":"GroupStatus"},"GroupConflict":{"description":"The Group Conflict object contains information about a conflict in a control plane group.","type":"object","properties":{"cluster_id":{"description":"The ID of a control plane member of a control plane group.","type":"string","format":"uuid","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","readOnly":true},"description":{"description":"The description of the conflict.","type":"string","example":"conflicting entity found: ID=38d790ad-8b08-4ff5-a074-2e1e9e64d8bd, Name=foo","readOnly":true},"resource":{"$ref":"#/components/schemas/GroupConflictResource"}},"required":["cluster_id","description","resource"],"title":"GroupConflict"},"GroupConflictResource":{"description":"A resource causing a conflict in a control plane group.","type":"object","properties":{"id":{"description":"The ID of the resource.","type":"string","format":"uuid","example":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","readOnly":true},"type":{"description":"The type of the resource.","type":"string","example":"service","readOnly":true}},"required":["id","type"],"title":"GroupConflictResource"},"GroupMemberStatus":{"description":"Object with information determining the group membership status of a control plane.","type":"object","properties":{"is_member":{"description":"Boolean indicating if a control plane is a member of a control plane group.","type":"boolean","example":true,"readOnly":true}},"required":["is_member"],"title":"GroupMemberStatus"},"Labels":{"description":"Labels to facilitate tagged search on control planes. Keys must be of length 1-63 characters, and cannot start with 'kong', 'konnect', 'mesh', 'kic', or '_'.","type":"object","example":{"env":"test"},"additionalProperties":{"type":"string","pattern":"^[a-z0-9A-Z]{1}([a-z0-9A-Z\\-\\.\\_]*[a-z0-9A-Z]+)?$","minLength":1,"maxLength":63},"title":"Labels"},"ProxyURL":{"description":"Proxy URL associated with reaching the data-planes connected to a control-plane.","type":"object","properties":{"host":{"description":"Hostname of the proxy URL.","type":"string"},"port":{"description":"Port of the proxy URL.","type":"integer"},"protocol":{"description":"Protocol of the proxy URL.","type":"string"}},"example":{"host":"example.com","port":443,"protocol":"https"},"additionalProperties":false,"required":["host","port","protocol"],"title":"ProxyURL"},"ProxyURLs":{"description":"Array of proxy URLs associated with reaching the data-planes connected to a control-plane.","type":"array","items":{"$ref":"#/components/schemas/ProxyURL"},"format":"set","example":[{"host":"example.com","port":443,"protocol":"https"}],"title":"ProxyURLs"},"ControlPlaneFilterParameters":{"type":"object","properties":{"id":{"oneOf":[{"$ref":"#/components/schemas/StringFieldEqualsFilter"},{"$ref":"#/components/schemas/StringFieldOEQFilter"}]},"name":{"oneOf":[{"$ref":"#/components/schemas/StringFieldEqualsFilter"},{"$ref":"#/components/schemas/StringFieldContainsFilter"},{"$ref":"#/components/schemas/StringFieldNEQFilter"}]},"cluster_type":{"oneOf":[{"$ref":"#/components/schemas/StringFieldEqualsFilter"},{"$ref":"#/components/schemas/StringFieldNEQFilter"}]},"cloud_gateway":{"$ref":"#/components/schemas/BooleanFieldFilter"}},"additionalProperties":false,"title":"ControlPlaneFilterParameters"},"StringFieldEqualsFilter":{"description":"Filters on the given string field value by exact match.","oneOf":[{"type":"string"},{"type":"object","title":"StringFieldEqualsComparison","additionalProperties":false,"properties":{"eq":{"type":"string"}},"required":["eq"]}],"title":"StringFieldEqualsFilter","x-examples":{"example-1":"equals-some-value","example-2":{"eq":"some-value"}}},"StringFieldOEQFilter":{"description":"Returns entities that exact match any of the comma-delimited phrases in the filter string.","type":"object","properties":{"oeq":{"type":"string"}},"additionalProperties":false,"required":["oeq"],"title":"StringFieldOEQFilter","x-examples":{"example-1":{"oeq":"some-value,some-other-value"}}},"StringFieldContainsFilter":{"description":"Filters on the given string field value by fuzzy match.","type":"object","properties":{"contains":{"type":"string"}},"additionalProperties":false,"required":["contains"],"title":"StringFieldContainsFilter","x-examples":{"example-1":{"contains":"some-value"}}},"StringFieldNEQFilter":{"description":"Filters on the given string field value by exact match inequality.","type":"object","properties":{"neq":{"type":"string"}},"additionalProperties":false,"required":["neq"],"title":"StringFieldNEQFilter","x-examples":{"example-1":{"neq":"not-this-value"}}},"BooleanFieldFilter":{"description":"Filter by a boolean value (true/false).","type":"boolean","title":"BooleanFieldFilter","x-examples":{"example-1":true}},"SortQuery":{"description":"The `asc` suffix is optional as the default sort order is ascending.\nThe `desc` suffix is used to specify a descending order.\nMultiple sort attributes may be provided via a comma separated list.\nJSONPath notation may be used to specify a sub-attribute (eg: 'foo.bar desc').\n","type":"string","example":"name,created_at desc","title":"SortQuery"},"PageMeta":{"description":"Contains pagination query parameters and the total number of objects returned.","type":"object","properties":{"number":{"type":"number","example":1},"size":{"type":"number","example":10},"total":{"type":"number","example":100}},"required":["number","size","total"]},"PaginatedMeta":{"description":"returns the pagination information","type":"object","properties":{"page":{"$ref":"#/components/schemas/PageMeta"}},"required":["page"],"title":"PaginatedMeta"},"BaseError":{"description":"standard error","type":"object","properties":{"status":{"description":"The HTTP status code of the error. Useful when passing the response\nbody to child properties in a frontend UI. Must be returned as an integer.\n","type":"integer","readOnly":true},"title":{"description":"A short, human-readable summary of the problem. It should not\nchange between occurences of a problem, except for localization.\nShould be provided as \"Sentence case\" for direct use in the UI.\n","type":"string","readOnly":true},"type":{"description":"The error type.","type":"string","readOnly":true},"instance":{"description":"Used to return the correlation ID back to the user, in the format\nkong:trace:<correlation_id>. This helps us find the relevant logs\nwhen a customer reports an issue.\n","type":"string","readOnly":true},"detail":{"description":"A human readable explanation specific to this occurence of the problem.\nThis field may contain request/entity data to help the user understand\nwhat went wrong. Enclose variable values in square brackets. Should be\nprovided as \"Sentence case\" for direct use in the UI.\n","type":"string","readOnly":true}},"required":["status","title","instance","detail"],"title":"Error"},"InvalidRules":{"description":"invalid parameters rules","type":"string","enum":["required","is_array","is_base64","is_boolean","is_date_time","is_integer","is_null","is_number","is_object","is_string","is_uuid","is_fqdn","is_arn","unknown_property","is_label","matches_regex","invalid","is_supported_network_availability_zone_list","is_supported_network_cidr_block","is_supported_provider_region"],"nullable":true,"readOnly":true},"InvalidParameterStandard":{"type":"object","properties":{"field":{"type":"string","example":"name","readOnly":true},"rule":{"$ref":"#/components/schemas/InvalidRules"},"source":{"type":"string","example":"body"},"reason":{"type":"string","example":"is a required field","readOnly":true}},"additionalProperties":false,"required":["field","reason"]},"InvalidParameterMinimumLength":{"type":"object","properties":{"field":{"type":"string","example":"name","readOnly":true},"rule":{"description":"invalid parameters rules","type":"string","enum":["min_length","min_digits","min_lowercase","min_uppercase","min_symbols","min_items","min"],"nullable":false,"readOnly":true},"minimum":{"type":"integer","example":8},"source":{"type":"string","example":"body"},"reason":{"type":"string","example":"must have at least 8 characters","readOnly":true}},"additionalProperties":false,"required":["field","reason","rule","minimum"]},"InvalidParameterMaximumLength":{"type":"object","properties":{"field":{"type":"string","example":"name","readOnly":true},"rule":{"description":"invalid parameters rules","type":"string","enum":["max_length","max_items","max"],"nullable":false,"readOnly":true},"maximum":{"type":"integer","example":8},"source":{"type":"string","example":"body"},"reason":{"type":"string","example":"must not have more than 8 characters","readOnly":true}},"additionalProperties":false,"required":["field","reason","rule","maximum"]},"InvalidParameterChoiceItem":{"type":"object","properties":{"field":{"type":"string","example":"name","readOnly":true},"rule":{"description":"invalid parameters rules","type":"string","enum":["enum"],"nullable":false,"readOnly":true},"reason":{"type":"string","example":"is a required field","readOnly":true},"choices":{"type":"array","items":{},"minItems":1,"nullable":false,"readOnly":true,"uniqueItems":true},"source":{"type":"string","example":"body"}},"additionalProperties":false,"required":["field","reason","rule","choices"]},"InvalidParameterDependentItem":{"type":"object","properties":{"field":{"type":"string","example":"name","readOnly":true},"rule":{"description":"invalid parameters rules","type":"string","enum":["dependent_fields"],"nullable":true,"readOnly":true},"reason":{"type":"string","example":"is a required field","readOnly":true},"dependents":{"type":"array","items":{},"nullable":true,"readOnly":true,"uniqueItems":true},"source":{"type":"string","example":"body"}},"additionalProperties":false,"required":["field","rule","reason","dependents"]},"InvalidParameters":{"description":"invalid parameters","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/InvalidParameterStandard"},{"$ref":"#/components/schemas/InvalidParameterMinimumLength"},{"$ref":"#/components/schemas/InvalidParameterMaximumLength"},{"$ref":"#/components/schemas/InvalidParameterChoiceItem"},{"$ref":"#/components/schemas/InvalidParameterDependentItem"}]},"minItems":1,"nullable":false,"uniqueItems":true},"BadRequestError":{"allOf":[{"$ref":"#/components/schemas/BaseError"},{"type":"object","required":["invalid_parameters"],"properties":{"invalid_parameters":{"$ref":"#/components/schemas/InvalidParameters"}}}]},"UnauthorizedError":{"allOf":[{"$ref":"#/components/schemas/BaseError"},{"type":"object","properties":{"status":{"example":401},"title":{"example":"Unauthorized"},"type":{"example":"https://httpstatuses.com/401"},"instance":{"example":"kong:trace:1234567890"},"detail":{"example":"Invalid credentials"}}}]},"ForbiddenError":{"allOf":[{"$ref":"#/components/schemas/BaseError"},{"type":"object","properties":{"status":{"example":403},"title":{"example":"Forbidden"},"type":{"example":"https://httpstatuses.com/403"},"instance":{"example":"kong:trace:1234567890"},"detail":{"example":"Forbidden"}}}]},"ConflictError":{"allOf":[{"$ref":"#/components/schemas/BaseError"},{"type":"object","properties":{"status":{"example":409},"title":{"example":"Conflict"},"type":{"example":"https://httpstatuses.com/409"},"instance":{"example":"kong:trace:1234567890"},"detail":{"example":"Conflict"}}}]},"NotFoundError":{"allOf":[{"$ref":"#/components/schemas/BaseError"},{"type":"object","properties":{"status":{"example":404},"title":{"example":"Not Found"},"type":{"example":"https://httpstatuses.com/404"},"instance":{"example":"kong:trace:1234567890"},"detail":{"example":"Not found"}}}]},"CursorMetaWithSizeAndTotal":{"type":"object","properties":{"next":{"description":"URI to the next page","type":"string","format":"path","nullable":true},"size":{"description":"Requested page size","type":"number","example":10},"total":{"description":"Total number of objects in the collection; will only be present on the first page","type":"number","example":974,"nullable":true}},"required":["size","next","total"]},"CursorPaginatedMetaWithSizeAndTotal":{"description":"returns the pagination information","type":"object","properties":{"page":{"$ref":"#/components/schemas/CursorMetaWithSizeAndTotal"}},"required":["page"],"title":"CursorPaginatedMetaWithSizeAndTotal"}},"examples":{"400RequestFormatInvalidExample":{"value":{"status":400,"title":"Bad Request","instance":"konnect:trace:3674017986744198214","invalid_parameters":[{"field":"body","reason":"request format is invalid"}]}},"400CannotBeBlankExample":{"value":{"status":400,"title":"Bad Request","instance":"konnect:trace:6644808935508571943","invalid_parameters":[{"field":"name","reason":"cannot be blank"}]}},"400InvalidIDFormatExample":{"value":{"status":400,"title":"Bad Request","instance":"konnect:trace:8988732526256293040","invalid_parameters":[{"field":"id","reason":"invalid ID format"}]}},"400UsageLimitsReachedExample":{"value":{"status":400,"title":"Bad Request","instance":"konnect:trace:8988732526256293040","detail":"Cannot create an additional control plane because usage limits have been reached."}},"400UnknownPropertyExample":{"value":{"status":400,"title":"Bad Request","instance":"konnect:trace:8988732526256293040","invalid_parameters":[{"field":"id","rule":"unknownProperty","reason":"property id should not exist"}]}},"401UnauthenticatedExample":{"value":{"status":401,"title":"Unauthenticated","instance":"konnect:trace:952172606039454040","detail":"A valid token is required"}},"403PermissionDeniedExample":{"value":{"status":403,"title":"Permission denied","instance":"konnect:trace:2822394689570210664","detail":"Insufficient role-set to create control planes."}},"404NotFoundExample":{"value":{"status":404,"title":"Not Found","instance":"konnect:trace:2287285207635123011","detail":"The requested control plane was not found."}},"409ConflictExample":{"value":{"status":409,"title":"Conflict","instance":"konnect:trace:2287285207635123011","detail":"Control Plane with provided name already exists."}},"500InternalErrorExample":{"value":{"status":500,"title":"Internal Server Error","instance":"konnect:trace:2287285207635123011","detail":"Could not propagate control plane changes to control plane cluster service."}},"503PermissionReadFailureExample":{"value":{"status":503,"title":"Service Unavailable","instance":"konnect:trace:2287285207635123011","detail":"Could not retrieve permissions to check resource accessibility."}},"CreateControlPlaneRequestExample":{"value":{"name":"Test Control Plane","description":"A test control plane for exploration.","cluster_type":"CLUSTER_TYPE_K8S_INGRESS_CONTROLLER","cloud_gateway":false,"proxy_urls":[{"host":"example.com","port":443,"protocol":"https"}],"labels":{"env":"test"}}},"UpdateControlPlaneRequestExample":{"value":{"name":"Test Control Plane","description":"A test control plane for exploration.","proxy_urls":[{"host":"example.com","port":443,"protocol":"https"}],"labels":{"env":"development"}}},"ControlPlaneExample":{"value":{"id":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","name":"Test Control Plane","description":"A test control plane for exploration.","labels":{"env":"test"},"config":{"control_plane_endpoint":"https://acfe5f253f.cp0.konghq.com","telemetry_endpoint":"https://acfe5f253f.tp0.konghq.com","cluster_type":"CLUSTER_TYPE_CONTROL_PLANE","auth_type":"pinned_client_certs","cloud_gateway":false,"proxy_urls":[{"host":"example.com","port":443,"protocol":"https"}]},"created_at":"2022-11-04T20:10:06.927Z","updated_at":"2022-11-04T20:10:06.927Z"}},"GroupConflictStatusExample":{"value":{"item":{"id":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","conflicts":[{"cluster_id":"57fdf779-7935-476f-ab2b-7fa1323b70e6","description":"conflicting entity found: ID=df43b088-cace-4119-9e2a-d83e5fbb0c48, Name=svc1","resource":{"id":"df43b088-cace-4119-9e2a-d83e5fbb0c48","type":"service"}},{"cluster_id":"38ceea96-fe39-11ed-be56-0242ac120002","description":"conflicting entity found: ID=15f3ab7d-7202-498a-95b4-334f783dbcdd, Name=svc1","resource":{"id":"15f3ab7d-7202-498a-95b4-334f783dbcdd","type":"service"}}],"state":"CONFLICT","created_at":"2022-11-04T20:10:06.927Z","updated_at":"2022-11-04T20:10:06.927Z"}}},"GroupNoConflictStatusExample":{"value":{"item":{"id":"7f9fd312-a987-4628-b4c5-bb4f4fddd5f7","conflicts":[{"cluster_id":"57fdf779-7935-476f-ab2b-7fa1323b70e6","description":"conflicting entity found: ID=df43b088-cace-4119-9e2a-d83e5fbb0c48, Name=svc1","resource":{"id":"df43b088-cace-4119-9e2a-d83e5fbb0c48","type":"service"}},{"cluster_id":"38ceea96-fe39-11ed-be56-0242ac120002","description":"conflicting entity found: ID=15f3ab7d-7202-498a-95b4-334f783dbcdd, Name=svc1","resource":{"id":"15f3ab7d-7202-498a-95b4-334f783dbcdd","type":"service"}}],"state":"CONFLICT","created_at":"2022-11-04T20:10:06.927Z","updated_at":"2022-11-04T20:10:06.927Z"}}},"ListGroupMembershipsExample":{"value":{"meta":{"page":{"total":2,"size":100,"next":"/control-planes/57fdf779-7935-476f-ab2b-7fa1323b70e6/group-memberships?q=son&page[after]=ewogICJpZCI6ICJoZWysbyB3b3JsZCIKgZ"}},"data":[{"id":"774f2a35-509d-4b94-97e9-1ed49563bcb1","name":"Group Member 1","description":"Child RG","labels":{"env":"prod"},"config":{"control_plane_endpoint":"https://9e0353434a.us.cp0.konghq.com","telemetry_endpoint":"https://9e0353434a.us.tp0.konghq.com","cluster_type":"CLUSTER_TYPE_CONTROL_PLANE","auth_type":"pinned_client_certs","cloud_gateway":false,"proxy_urls":[{"host":"example.com","port":443,"protocol":"https"}]},"created_at":"2023-03-20T22:23:45.873Z","updated_at":"2023-03-30T16:17:55.073Z"},{"id":"e4a1917c-bb26-4aa1-9a3e-50ee366f13db","name":"Group Member 2","description":"Child RG","labels":{"env":"prod","foo":"bar"},"config":{"control_plane_endpoint":"https://05459046af.us.cp0.konghq.com","telemetry_endpoint":"https://05459046af.us.tp0.konghq.com","cluster_type":"CLUSTER_TYPE_CONTROL_PLANE","auth_type":"pinned_client_certs","cloud_gateway":false,"proxy_urls":[{"host":"example.com","port":443,"protocol":"https"}]},"created_at":"2023-03-23T22:25:30.907Z","updated_at":"2023-03-30T16:18:12.067Z"}]}},"UnauthorizedExample":{"value":{"status":401,"title":"Unauthorized","instance":"kong:trace:8347343766220159418","detail":"Unauthorized"}},"ForbiddenExample":{"value":{"status":403,"title":"Forbidden","instance":"kong:trace:2723154947768991354","detail":"You do not have permission to perform this action"}},"NotFoundExample":{"value":{"status":404,"title":"Not Found","instance":"kong:trace:6816496025408232265","detail":"Not Found"}}},"requestBodies":{"GroupMembershipAdd":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupMembership"},"examples":{"Example 1":{"value":{"members":[{"id":"1beb9ad3-d21b-4090-b6e3-574784d1166d"},{"id":"778a0474-687d-41af-8e51-a0488d790586"},{"id":"fa85f8e8-2e5a-496e-b6d0-4e534eaab459"}]}}}}},"description":"Request body for adding a list of child control planes to a control plane group membership."},"GroupMembershipRemove":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupMembership"},"examples":{"Example 1":{"value":{"members":[{"id":"1beb9ad3-d21b-4090-b6e3-574784d1166d"},{"id":"778a0474-687d-41af-8e51-a0488d790586"},{"id":"fa85f8e8-2e5a-496e-b6d0-4e534eaab459"}]}}}}},"description":"Request body for removing a list of child control planes from a control plane group membership."},"GroupMembershipUpsert":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupMembership"},"examples":{"Example 1":{"value":{"members":[{"id":"1beb9ad3-d21b-4090-b6e3-574784d1166d"},{"id":"778a0474-687d-41af-8e51-a0488d790586"},{"id":"fa85f8e8-2e5a-496e-b6d0-4e534eaab459"}]}}}}},"description":"Request body for upserting a list of child control planes to a control plane group membership."}},"responses":{"RetrieveControlPlaneResponse":{"description":"A response to retrieving a single control plane.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ControlPlane"},"examples":{"Single control plane response":{"$ref":"#/components/examples/ControlPlaneExample"}}}}},"CreateControlPlaneResponse":{"description":"A response to creating a control plane.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ControlPlane"},"examples":{"Create Control Plane Response":{"$ref":"#/components/examples/ControlPlaneExample"}}}}},"UpdateControlPlaneResponse":{"description":"A response to updating a control plane.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ControlPlane"},"examples":{"Update Control Plane Response":{"$ref":"#/components/examples/ControlPlaneExample"}}}}},"ListControlPlanesResponse":{"description":"A paginated list response for a collection of control planes.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/PaginatedMeta"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ControlPlane"}}},"additionalProperties":false,"required":["meta","data"],"title":"ListControlPlanesResponse"}}}},"ControlPlanesBadRequest":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BadRequestError"},"examples":{"Request Format Invalid":{"$ref":"#/components/examples/400RequestFormatInvalidExample"},"Cannot Be Blank":{"$ref":"#/components/examples/400CannotBeBlankExample"},"Invalid ID Format":{"$ref":"#/components/examples/400InvalidIDFormatExample"},"Usage Limits Reached":{"$ref":"#/components/examples/400UsageLimitsReachedExample"},"Unknown Property":{"$ref":"#/components/examples/400UnknownPropertyExample"}}}}},"ControlPlanePermissionDenied":{"description":"Permission denied","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"},"examples":{"Permission Denied":{"$ref":"#/components/examples/403PermissionDeniedExample"}}}}},"ControlPlaneUnauthenticated":{"description":"Unauthenticated","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"},"examples":{"Unauthorized":{"$ref":"#/components/examples/401UnauthenticatedExample"}}}}},"ControlPlaneNotFound":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundError"},"examples":{"Not Found":{"$ref":"#/components/examples/404NotFoundExample"}}}}},"ControlPlaneConflict":{"description":"Conflict","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ConflictError"},"examples":{"Conflict":{"$ref":"#/components/examples/409ConflictExample"}}}}},"InternalServerError":{"description":"Internal Server Error","content":{"application/problem+json":{"schema":{"description":"The error response object.","type":"object","properties":{"status":{"description":"The HTTP status code.","type":"integer","example":500,"enum":[500]},"title":{"description":"The error response code.","type":"string","example":"Internal Server Error"},"instance":{"description":"The Konnect traceback code","type":"string","example":"konnect:trace:2287285207635123011"},"detail":{"description":"Details about the error.","type":"string","example":"Could not propagate control plane changes to control plane cluster service."}},"required":["status","title","instance"],"title":"InternalServerError"},"examples":{"Internal Server Error":{"$ref":"#/components/examples/500InternalErrorExample"}}}}},"ServiceUnavailable":{"description":"Service Unavailable","content":{"application/problem+json":{"schema":{"description":"Error response for temporary service unavailability.","type":"object","properties":{"status":{"description":"The HTTP status code.","type":"integer","example":503,"enum":[503]},"title":{"description":"The error response code.","type":"string","example":"Service Unavailable"},"instance":{"description":"The Konnect traceback code","type":"string","example":"konnect:trace:2287285207635123011"},"detail":{"description":"Details about the error.","type":"string","example":"Could not retrieve permissions to check resource accessibility."}},"required":["status","title","instance"],"title":"ServiceUnavailableError"},"examples":{"Service Unavailable":{"$ref":"#/components/examples/503PermissionReadFailureExample"}}}}},"ListGroupMemberships":{"description":"A paginated list response for a collection of control plane group memberships.","content":{"application/json":{"schema":{"type":"object","properties":{"meta":{"$ref":"#/components/schemas/CursorPaginatedMetaWithSizeAndTotal"},"data":{"description":"Array of control planes summary who are a child to this control plane group.","type":"array","items":{"$ref":"#/components/schemas/ControlPlane"}}},"required":["meta","data"]},"examples":{"List Group Memberships Example":{"$ref":"#/components/examples/ListGroupMembershipsExample"}}}}},"GetGroupStatus":{"description":"Status of a control plane group, including existing conflicts.","content":{"application/json":{"schema":{"type":"object","properties":{"item":{"$ref":"#/components/schemas/GroupStatus"}}},"examples":{"Group Conflict Status Example":{"$ref":"#/components/examples/GroupConflictStatusExample"},"Group No Conflict Status Example":{"$ref":"#/components/examples/GroupNoConflictStatusExample"}}}}},"GetGroupMemberStatus":{"description":"Determines the group membership status of a control plane.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GroupMemberStatus"}}}},"BadRequest":{"description":"Bad Request","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/BadRequestError"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/UnauthorizedError"},"examples":{"UnauthorizedExample":{"$ref":"#/components/examples/UnauthorizedExample"}}}}},"Forbidden":{"description":"Forbidden","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/ForbiddenError"},"examples":{"UnauthorizedExample":{"$ref":"#/components/examples/ForbiddenExample"}}}}},"NotFound":{"description":"Not Found","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/NotFoundError"},"examples":{"NotFoundExample":{"$ref":"#/components/examples/NotFoundExample"}}}}}},"securitySchemes":{"personalAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"Token","description":"The personal access token is meant to be used as an alternative to basic-auth when accessing Konnect via APIs.\nYou can generate a Personal Access Token (PAT) from the [personal access token page](https://cloud.konghq.com/global/tokens/) in the Konnect dashboard.\nThe PAT token must be passed in the header of a request, for example:\n`curl -X GET 'https://global.api.konghq.com/v2/users/' --header 'Authorization: Bearer kpat_xgfT...'`\n"},"systemAccountAccessToken":{"type":"http","scheme":"bearer","bearerFormat":"Token","description":"The system account access token is meant for automations and integrations that are not directly associated with a human identity.\nYou can generate a system account Access Token by creating a system account and then obtaining a system account access token for that account.\nThe access token must be passed in the header of a request, for example:\n`curl -X GET 'https://global.api.konghq.com/v2/users/' --header 'Authorization: Bearer spat_i2Ej...'`\n"}}},"tags":[{"name":"Control Planes"},{"name":"Control Plane Groups"}],"security":[{"personalAccessToken":[]},{"systemAccountAccessToken":[]}]}
```
