openapi: 3.2.0 info: title: Ubicloud Kubernetes Cluster API version: 0.1.0 contact: url: https://www.ubicloud.com/ email: support@ubicloud.com license: name: GNU Affero General Public License v3.0 (AGPL-3.0) url: https://www.gnu.org/licenses/agpl-3.0.en.html description: 'Operations tagged Kubernetes Cluster across 2 of this provider''s published API definitions: ubicloud-openapi.yml, ubicloud-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api.ubicloud.com security: - BearerAuth: [] tags: - description: Kubernetes Cluster Operations name: Kubernetes Cluster paths: /project/{project_id}/kubernetes-cluster: get: operationId: listProjectKubernetesClusters summary: List all kubernetes clusters parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/start_after' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/order_column' responses: '200': $ref: '#/components/responses/KubernetesClusters' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com /project/{project_id}/location/{location}/kubernetes-cluster: get: operationId: listLocationKubernetesClusters summary: List kubernetes clusters in a location parameters: - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/start_after' - $ref: '#/components/parameters/page_size' - $ref: '#/components/parameters/order_column' responses: '200': $ref: '#/components/responses/KubernetesClusters' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}: parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' delete: operationId: deleteKubernetesCluster summary: Delete a kubernetes cluster responses: '204': $ref: '#/components/responses/Delete' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster get: operationId: getKubernetesClusterDetails summary: Get kubernetes cluster details responses: '200': $ref: '#/components/responses/KubernetesCluster' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster post: operationId: createKubernetesCluster summary: Create a new kubernetes cluster requestBody: required: true content: application/json: schema: type: object properties: version: description: Version of the kubernetes cluster type: string worker_size: description: Size of each worker VM type: string cp_nodes: description: Number of control plane nodes type: integer worker_nodes: description: Number of worker nodes type: integer additionalProperties: false required: - version - worker_size responses: '200': $ref: '#/components/responses/KubernetesCluster' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/kubeconfig: parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' get: operationId: getKubernetesKubeconfigFile summary: Get kubeconfig file responses: '200': $ref: '#/components/responses/Kubeconfig' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/metrics: parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' get: operationId: getKubernetesClusterMetrics summary: Get Kubernetes cluster metrics parameters: - name: start in: query description: Start time for metrics query (rfc3339 format) required: false schema: type: string example: 2025-05-12 11:57:24+00:00 default: now-30m - name: end in: query description: End time for metrics query (rfc3339 format) required: false schema: type: string example: 2025-05-12 11:27:24+00:00 default: now - name: key in: query description: Key of the specific metric to retrieve required: false schema: type: string example: cpu_usage responses: '200': $ref: '#/components/responses/KubernetesClusterMetrics' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com ? /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/node/{kubernetes_node_name}/retire : parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' - $ref: '#/components/parameters/kubernetes_node_name' post: operationId: retireKubernetesNode summary: Retire a worker node from a kubernetes cluster responses: '200': $ref: '#/components/responses/KubernetesNodepool' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/nodepool: parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' post: operationId: createKubernetesNodepool summary: Create a new kubernetes nodepool requestBody: required: true content: application/json: schema: type: object properties: name: description: Name of the nodepool type: string node_count: description: Number of worker nodes in the nodepool type: integer node_size: description: Size of each worker node type: string additionalProperties: false required: - name - node_count - node_size responses: '200': $ref: '#/components/responses/KubernetesNodepool' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com ? /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/nodepool/{kubernetes_nodepool_reference} : parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' - $ref: '#/components/parameters/kubernetes_nodepool_reference' delete: operationId: deleteKubernetesNodepool summary: Delete a kubernetes nodepool responses: '204': $ref: '#/components/responses/Delete' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com ? /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/nodepool/{kubernetes_nodepool_reference}/rename : parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' - $ref: '#/components/parameters/kubernetes_nodepool_reference' post: operationId: renameKubernetesNodepool summary: Rename a kubernetes nodepool requestBody: required: true content: application/json: schema: type: object properties: name: description: New name for kubernetes nodepool type: string additionalProperties: false required: - name responses: '200': $ref: '#/components/responses/KubernetesNodepool' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com ? /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/nodepool/{kubernetes_nodepool_reference}/resize : parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' - $ref: '#/components/parameters/kubernetes_nodepool_reference' post: operationId: resizeKubernetesNodepool summary: Change number of nodes of a kubernetes nodepool requestBody: required: true content: application/json: schema: type: object properties: node_count: description: New number of nodes for the kubernetes nodepool type: integer additionalProperties: false required: - node_count responses: '200': $ref: '#/components/responses/KubernetesNodepool' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com ? /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/nodepool/{kubernetes_nodepool_reference}/upgrade : parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' - $ref: '#/components/parameters/kubernetes_nodepool_reference' post: operationId: upgradeKubernetesNodepool summary: Upgrade a kubernetes nodepool to the cluster version responses: '200': $ref: '#/components/responses/KubernetesNodepool' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/rename: parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' post: operationId: renameKubernetesCluster summary: Rename a kubernetes cluster requestBody: required: true content: application/json: schema: type: object properties: name: description: New name for kubernetes cluster type: string additionalProperties: false required: - name responses: '200': $ref: '#/components/responses/KubernetesCluster' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com /project/{project_id}/location/{location}/kubernetes-cluster/{kubernetes_cluster_reference}/upgrade: parameters: - $ref: '#/components/parameters/project_id' - $ref: '#/components/parameters/location' - $ref: '#/components/parameters/kubernetes_cluster_reference' post: operationId: upgradeKubernetesCluster summary: Upgrade a kubernetes cluster responses: '200': $ref: '#/components/responses/KubernetesCluster' default: $ref: '#/components/responses/Error' tags: - Kubernetes Cluster servers: - url: https://api.ubicloud.com components: schemas: ResourceMetrics: type: object properties: metrics: type: array items: type: object additionalProperties: false properties: key: description: Key of the metric type: string example: cpu_usage name: description: Name of the metric type: string example: CPU Usage description: description: Description of the metric type: string example: Percentage of CPU used by the system unit: description: Unit of measurement for the metric type: - string - 'null' example: percent series: type: array items: type: object additionalProperties: false properties: labels: description: Labels identifying the time series type: object example: instance: pv9z3a26qkyy4qcxrhzg5f1bs8 additionalProperties: type: string values: description: Array of timestamp-value pairs type: array items: type: array minItems: 2 maxItems: 2 items: oneOf: - type: number description: Unix timestamp - type: string description: Sample value required: - labels - values required: - name - unit - series additionalProperties: false required: - metrics Vm: type: object properties: boot_image: description: Boot image of the VM type: string id: description: ID of the VM type: string example: vmhfy8gff8c67hasb0eez2k1pd pattern: ^vm[0-9a-hj-km-np-tv-z]{24}$ ip4: description: IPv4 address type: - string - 'null' format: ipv4 ip4_enabled: description: Whether IPv4 is enabled type: boolean ip6: description: IPv6 address type: - string - 'null' format: ipv6 location: description: Location of the VM type: string example: eu-central-h1 maintenance_window_start_at: description: Maintenance window start time type: - integer - 'null' name: description: Name of the VM type: string example: my-vm-name size: description: Size of the underlying VM type: string state: description: State of the VM type: string storage_size_gib: description: Storage size in GiB type: integer unix_user: description: Unix user of the VM type: string additionalProperties: false required: - boot_image - id - ip4 - ip4_enabled - ip6 - location - maintenance_window_start_at - name - size - state - storage_size_gib - unix_user x-go-name: VmSchema Kubeconfig: description: Raw YAML content of a Kubernetes cluster configuration file type: string Error: type: object properties: error: type: object additionalProperties: false properties: code: type: integer example: 401 message: type: string example: There was an error logging in type: type: string example: InvalidCredentials details: type: - object - 'null' required: - code - message - type additionalProperties: false required: - error Reference: description: Resource ID or name type: string pattern: ^[a-z0-9](?:[a-z0-9\-]{0,61}[a-z0-9])?$ KubernetesNodepool: type: object properties: kubernetes_cluster_id: description: Parent KubernetesCluster id type: string example: kcqxhqbg86sj0ng5e9ck5n191z pattern: ^kc[0-9a-hj-km-np-tv-z]{24}$ id: description: ID of the KubernetesNodepool type: string example: knqxhqbg86sj0ng5e9ck5n191z pattern: ^kn[0-9a-hj-km-np-tv-z]{24}$ name: description: Name of the KubernetesNodepool type: string example: my-nodepool-name node_count: description: Number of worker nodes type: integer node_size: description: Size of each worker node type: string version: description: Version of the KubernetesNodepool type: string vms: description: Worker VMs definition type: array items: $ref: '#/components/schemas/Vm' additionalProperties: false required: - kubernetes_cluster_id - id - name - node_count - node_size - version x-go-name: KubernetesNodepoolSchema KubernetesCluster: type: object properties: cp_node_count: description: Number of control plane nodes type: integer cp_vms: type: array items: $ref: '#/components/schemas/Vm' display_state: description: State of the KubernetesCluster type: string id: description: ID of the KubernetesCluster type: string example: kcqxhqbg86sj0ng5e9ck5n191z pattern: ^kc[0-9a-hj-km-np-tv-z]{24}$ location: description: Location of the KubernetesCluster type: string example: eu-central-h1 name: description: Name of the KubernetesCluster type: string example: my-cluster-name node_size: description: Size of each control plane node type: string nodepools: type: array items: $ref: '#/components/schemas/KubernetesNodepool' services_load_balancer_url: description: Services type: - string - 'null' version: description: Version of the KubernetesCluster type: string additionalProperties: false required: - cp_node_count - id - location - name - node_size - version x-go-name: KubernetesClusterSchema responses: KubernetesClusters: description: A list of KubernetesClusters content: application/json: schema: type: object properties: count: type: integer items: type: array items: $ref: '#/components/schemas/KubernetesCluster' additionalProperties: false required: - count - items Kubeconfig: description: A Kubernetes Cluster configuration file content: text/yaml: schema: $ref: '#/components/schemas/Kubeconfig' KubernetesNodepool: description: A Kubernetes node pool content: application/json: schema: type: object additionalProperties: false allOf: - $ref: '#/components/schemas/KubernetesNodepool' Delete: description: An empty response after successful resource delete KubernetesClusterMetrics: description: Metrics data for a Kubernetes Cluster content: application/json: schema: $ref: '#/components/schemas/ResourceMetrics' Error: description: An error response content: application/json: schema: $ref: '#/components/schemas/Error' KubernetesCluster: description: A KubernetesCluster content: application/json: schema: type: object additionalProperties: false allOf: - $ref: '#/components/schemas/KubernetesCluster' parameters: kubernetes_nodepool_reference: description: Kubernetes nodepool ID or name examples: id: value: kn66ktqjab025mkxhjmavpwjxs name: value: kubernetes-nodepool-name in: path name: kubernetes_nodepool_reference required: true schema: $ref: '#/components/schemas/Reference' start_after: description: Pagination - Start after in: query name: start_after required: false schema: type: string project_id: description: ID of the project in: path name: project_id required: true schema: type: string example: pjkkmx0f2vke4h36nk9cm8v8q0 pattern: ^pj[0-9a-hj-km-np-tv-z]{24}$ kubernetes_cluster_reference: description: Kubernetes cluster ID or name examples: id: value: kcn30gjk1d1e2jj34v9x0dq4rp name: value: kubernetes-cluster-name in: path name: kubernetes_cluster_reference required: true schema: $ref: '#/components/schemas/Reference' page_size: description: Pagination - Page size in: query name: page_size required: false schema: type: integer default: 10 location: description: The Ubicloud location/region in: path name: location required: true schema: type: string example: eu-central-h1 order_column: description: Pagination - Order column in: query name: order_column required: false schema: type: string default: id kubernetes_node_name: description: Kubernetes node name example: kubernetes-node-name in: path name: kubernetes_node_name required: true schema: $ref: '#/components/schemas/Reference' securitySchemes: BearerAuth: bearerFormat: JWT scheme: bearer type: http x-refined-from: - ubicloud-openapi.yml - ubicloud-openapi.yml