Qovery Clusters API

The Clusters API from Qovery — 24 operation(s) for clusters.

Operations 31

GET /organization/{organizationId}/cluster List organization clusters #
POST /organization/{organizationId}/cluster Create a cluster #
GET /organization/{organizationId}/cluster/status List all clusters statuses #
DELETE /organization/{organizationId}/cluster/{clusterId} Delete a cluster #
PUT /organization/{organizationId}/cluster/{clusterId} Edit a cluster #
GET /organization/{organizationId}/cluster/{clusterId}/status Get cluster status #
GET /organization/{organizationId}/cluster/{clusterId}/installationHelmValues Get cluster helm values for self managed installation #
GET /organization/{organizationId}/cluster/{clusterId}/kubeconfig Get cluster kubeconfig #
PUT /organization/{organizationId}/cluster/{clusterId}/kubeconfig Edit cluster kubeconfig #
GET /organization/{organizationId}/cluster/{clusterId}/advancedSettings Get advanced settings #
PUT /organization/{organizationId}/cluster/{clusterId}/advancedSettings Edit advanced settings #
GET /organization/{organizationId}/cluster/{clusterId}/routingTable Get routing table #
PUT /organization/{organizationId}/cluster/{clusterId}/routingTable Edit routing table #
GET /organization/{organizationId}/cluster/{clusterId}/logs List Cluster Logs #
GET /organization/{organizationId}/cluster/{clusterId}/cloudProviderInfo Get cluster cloud provider info and credentials #
POST /organization/{organizationId}/cluster/{clusterId}/cloudProviderInfo Specify cluster cloud provider info and credentials #
GET /organization/{organizationId}/cluster/{clusterId}/isReady Know if a cluster is ready to be deployed or not #
POST /organization/{organizationId}/cluster/{clusterId}/deploy Deploy a cluster #
GET /organization/{organizationId}/cluster/{clusterId}/eks-anywhere/commits List EKS Anywhere commits #
PUT /organization/{organizationId}/cluster/{clusterId}/eks-anywhere/commit Update selected EKS Anywhere commit #
GET /organization/{organizationId}/cluster/{clusterId}/eks-anywhere/jwt Get latest EKS Anywhere cluster JWT #
POST /cluster/{clusterId}/upgrade Upgrade a cluster #
PUT /organization/{organizationId}/cluster/{clusterId}/karpenterPrivateSubnetIds Update karpenter private fargate subnet ids #
POST /organization/{organizationId}/cluster/{clusterId}/stop Stop cluster #
GET /defaultClusterAdvancedSettings List default cluster advanced settings #
GET /cluster/{clusterId}/environments List environments services by cluster id #
POST /cluster/{clusterId}/lock Lock Cluster #
DELETE /cluster/{clusterId}/lock Unlock Cluster #
GET /cluster/{clusterId}/events List Cluster Kubernetes Events #
GET /cluster/{clusterId}/metrics Fetch cluster metrics #
GET /cluster/{clusterId}/logs Fetch cluster logs #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/qovery-clusters-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

qovery-clusters-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.4
  title: Qovery Account Info Clusters API
  description: '- Qovery is the fastest way to deploy your full-stack apps on any Cloud provider.

    - ℹ️ The API is stable and still in development.

    '
  contact:
    name: Qovery Product Team
    url: https://www.qovery.com
    email: support+api+documentation@qovery.com
  x-logo:
    url: https://console.qovery.com/assets/logos/logo-white.svg
    altText: Qovery
servers:
- url: https://api.qovery.com
security:
- bearerAuth: []
- ApiKeyAuth: []
tags:
- name: Clusters
paths:
  /organization/{organizationId}/cluster:
    get:
      summary: List organization clusters
      operationId: listOrganizationCluster
      parameters:
      - $ref: '#/components/parameters/organizationId'
      tags:
      - Clusters
      responses:
        '200':
          description: List clusters
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    post:
      summary: Create a cluster
      operationId: createCluster
      parameters:
      - $ref: '#/components/parameters/organizationId'
      tags:
      - Clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterRequest'
      responses:
        '201':
          description: Create cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cluster'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/status:
    get:
      summary: List all clusters statuses
      description: Returns a list of clusters with only their id and status.
      operationId: getOrganizationClusterStatus
      parameters:
      - $ref: '#/components/parameters/organizationId'
      tags:
      - Clusters
      responses:
        '200':
          description: Get statuses
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterStatusResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}:
    delete:
      summary: Delete a cluster
      operationId: deleteCluster
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      - in: query
        name: deleteMode
        schema:
          $ref: '#/components/schemas/ClusterDeleteMode'
      tags:
      - Clusters
      responses:
        '204':
          $ref: '#/components/responses/204-deletion'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    put:
      summary: Edit a cluster
      operationId: editCluster
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterRequest'
      responses:
        '200':
          description: Edited the cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cluster'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/status:
    get:
      summary: Get cluster status
      operationId: getClusterStatus
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: Get status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterStatus'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/installationHelmValues:
    get:
      summary: Get cluster helm values for self managed installation
      operationId: getInstallationHelmValues
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: Helm values
          content:
            application/x-yaml:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/kubeconfig:
    get:
      summary: Get cluster kubeconfig
      operationId: getClusterKubeconfig
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      - schema:
          type: boolean
        in: query
        name: with_token_from_cli
        description: If true, the user auth part will have an exec command with qovery cli
      tags:
      - Clusters
      responses:
        '200':
          description: Get kubeconfig of the cluster
          content:
            application/x-yaml:
              schema:
                type: string
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    put:
      summary: Edit cluster kubeconfig
      operationId: editClusterKubeconfig
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      requestBody:
        content:
          application/x-yaml:
            schema:
              type: string
      responses:
        '204':
          description: edit kubeconfig of the cluster
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/advancedSettings:
    get:
      summary: Get advanced settings
      description: 'Get the list and values of the advanced settings of the cluster.

        Default values for each setting are available in [our documentation](https://hub.qovery.com/docs/using-qovery/configuration/cluster-advanced-settings/)

        '
      operationId: getClusterAdvancedSettings
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: Advanced settings list
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterAdvancedSettings'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    put:
      summary: Edit advanced settings
      description: Edit advanced settings by returning table of advanced settings.
      operationId: editClusterAdvancedSettings
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterAdvancedSettings'
      responses:
        '201':
          description: Updated advanced settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterAdvancedSettings'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/routingTable:
    get:
      summary: Get routing table
      description: Retrieve network routing table where each line corresponds to a route between a destination and a target.
      operationId: getRoutingTable
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: Routing table
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterRoutingTable'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    put:
      summary: Edit routing table
      description: Edit routing table by returning updated table.
      operationId: editRoutingTable
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterRoutingTableRequest'
      responses:
        '201':
          description: Updated routing table
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterRoutingTable'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/logs:
    get:
      summary: List Cluster Logs
      description: List Cluster Logs
      operationId: listClusterLogs
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: list cluster logs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterLogsResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/cloudProviderInfo:
    get:
      summary: Get cluster cloud provider info and credentials
      operationId: getOrganizationCloudProviderInfo
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: get cloud provider info and credentials
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterCloudProviderInfo'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
    post:
      summary: Specify cluster cloud provider info and credentials
      operationId: specifyClusterCloudProviderInfo
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterCloudProviderInfoRequest'
      responses:
        '201':
          description: Create cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterCloudProviderInfo'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/isReady:
    get:
      summary: Know if a cluster is ready to be deployed or not
      operationId: getClusterReadinessStatus
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: Get Cluster Readiness Status
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterReadinessStatus'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/deploy:
    post:
      summary: Deploy a cluster
      description: allows to deploy a cluster
      operationId: deployCluster
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      - schema:
          type: boolean
        in: query
        name: dry_run
        description: 'default: false. Decide if the deployment of the cluster should be done in dry_run mode. Avoiding any changes'
      tags:
      - Clusters
      responses:
        '201':
          description: Deploy cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterStatus'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/eks-anywhere/commits:
    get:
      summary: List EKS Anywhere commits
      description: Returns list of the last commits made on the repository linked to the EKS Anywhere cluster, filtered by the targeted YAML file when supported by provider.
      operationId: listEksAnywhereCommits
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: List EKS Anywhere commits
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CommitResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/eks-anywhere/commit:
    put:
      summary: Update selected EKS Anywhere commit
      description: Persist selected commit for an EKS Anywhere cluster.
      operationId: updateEksAnywhereCommit
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EksAnywhereCommitRequest'
      responses:
        '200':
          description: Updated EKS Anywhere commit
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EksAnywhereCommitResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/eks-anywhere/jwt:
    get:
      summary: Get latest EKS Anywhere cluster JWT
      description: Returns the latest valid JWT currently used for engine deployments for the specified EKS Anywhere cluster.
      operationId: getEksAnywhereClusterJwt
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '200':
          description: Latest EKS Anywhere cluster JWT
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EksAnywhereClusterJwtResponse'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /cluster/{clusterId}/upgrade:
    post:
      summary: Upgrade a cluster
      description: allows to upgrade a cluster to next available kubernetes version
      operationId: upgradeCluster
      parameters:
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '201':
          description: Upgrade cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterStatus'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/karpenterPrivateSubnetIds:
    put:
      summary: Update karpenter private fargate subnet ids
      description: Update karpenter private fargate subnet ids
      operationId: updateKarpenterPrivateFargateSubnetIds
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterKarpenterPrivateSubnetIdsPutRequest'
      responses:
        '200':
          description: Updated
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /organization/{organizationId}/cluster/{clusterId}/stop:
    post:
      summary: Stop cluster
      description: Cluster stop has been requester.
      operationId: StopCluster
      parameters:
      - $ref: '#/components/parameters/organizationId'
      - $ref: '#/components/parameters/clusterId'
      tags:
      - Clusters
      responses:
        '202':
          description: Update cluster
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterStatus'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Cluster is already stopped or an operation is in progress
  /defaultClusterAdvancedSettings:
    get:
      summary: List default cluster advanced settings
      description: Default values for each setting are available in [our documentation](https://hub.qovery.com/docs/using-qovery/configuration/cluster-advanced-settings/)
      operationId: getDefaultClusterAdvancedSettings
      tags:
      - Clusters
      responses:
        '200':
          description: Default cluster advanced settings
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterAdvancedSettings'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /cluster/{clusterId}/environments:
    parameters:
    - schema:
        type: string
      name: clusterId
      in: path
      required: true
    get:
      summary: List environments services by cluster id
      operationId: get-environments-by-cluster-id
      tags:
      - Clusters
      responses:
        '200':
          description: List environments services by cluster id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterEnvironmentResponseList'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
  /cluster/{clusterId}/lock:
    parameters:
    - schema:
        type: string
      name: clusterId
      in: path
      required: true
    post:
      summary: Lock Cluster
      tags:
      - Clusters
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterLock'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      operationId: lockCluster
      x-stoplight:
        id: kttp2yd6qq7m7
      description: Lock a Cluster
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterLockRequest'
    delete:
      summary: Unlock Cluster
      tags:
      - Clusters
      responses:
        '204':
          description: No Content
        '401':
          description: "Unauthorized responses:\n        '204':\n          $ref: '#/components/responses/204-deletion'\n        '401':\n          $ref: '#/components/responses/401'\n        '403':\n          $ref: '#/components/responses/403'\n        '404':\n          $ref: '#/components/responses/404'"
        '403':
          description: Forbidden
        '404':
          description: ''
      operationId: unlock-cluster
      x-stoplight:
        id: vkn00s3mt1vew
      description: Unlock a cluster
  /cluster/{clusterId}/events:
    get:
      summary: List Cluster Kubernetes Events
      description: List Cluster Kubernetes Events
      operationId: get-cluster-kubernetes-events
      tags:
      - Clusters
      parameters:
      - $ref: '#/components/parameters/clusterId'
      - in: query
        name: from_date_time
        description: "The start date time to fetch events from, following ISO-8601 format.  \nThe `+` character must be escaped (`%2B`)\n"
        required: true
        example: '2025-03-03T09:00:00+00:00'
        schema:
          type: string
      - in: query
        name: to_date_time
        description: "The end date time to fetch events from, following ISO-8601 format.  \nThe `+` character must be escaped (`%2B`)\n"
        required: true
        example: '2025-03-03T03:00:00+00:00'
        schema:
          type: string
      - schema:
          type: string
        in: query
        name: node_name
        description: The name of the node to fetch event from
      - schema:
          type: string
        in: query
        name: pod_name
        description: The name of the pod to fetch event from
      - schema:
          type: string
        in: query
        name: reporting_component
        description: The name of the reporting component used to filter events.
      responses:
        '200':
          description: List Cluster Kubernetes Events
          content:
            application/json:
              schema:
                type: object
                properties:
                  results:
                    type: array
                    items:
                      type: object
                      properties:
                        created_at:
                          type: string
                          format: date-time
                          description: The created date following ISO-8601 format
                        kind:
                          type: string
                          description: The source kubernetes object related to the Event
                        namespace:
                          type: string
                          description: The namespace of the kubernetes object related to the Event (optional)
                        name:
                          type: string
                          description: The name of the Event
                        reason:
                          type: string
                          description: The action that triggered the Event
                        message:
                          type: string
                          description: A description of the Event
                        type:
                          type: string
                          description: As of today it can be either Warning or Normal (can evolve in the next releases)
                        reporting_component:
                          type: string
                          x-stoplight:
                            id: j80d7nbe0d7t5
                        count:
                          type: integer
                          x-stoplight:
                            id: dg0q4lb53n9bu
                        first_occurrence:
                          type: string
                          x-stoplight:
                            id: 2gfzxsksepqu1
                          format: date-time
                        last_occurrence:
                          type: string
                          x-stoplight:
                            id: 5pap12d1475w9
                          format: date-time
  /cluster/{clusterId}/metrics:
    get:
      summary: Fetch cluster metrics
      description: Fetch cluster metrics.
      operationId: get-cluster-metrics
      tags:
      - Clusters
      parameters:
      - $ref: '#/components/parameters/clusterId'
      - in: query
        name: endpoint
        schema:
          type: string
        required: true
      - in: query
        name: query
        required: true
        schema:
          type: string
      - schema:
          type: string
        in: query
        name: start
      - schema:
          type: string
        in: query
        name: end
      - schema:
          type: string
        in: query
        name: step
      - schema:
          type: string
        in: query
        name: time
      - schema:
          type: string
        in: query
        name: timeout
      - schema:
          type: string
        in: query
        name: dedup
      - schema:
          type: string
        in: query
        name: partial_response
      - schema:
          type: string
        in: query
        name: max_source_resolution
      - schema:
          type: string
        in: query
        name: engine
      - schema:
          type: string
        in: query
        name: analyze
      - schema:
          type: string
        in: query
        name: board_short_name
      - schema:
          type: string
        in: query
        name: metric_short_name
      - schema:
          type: string
        in: query
        name: trace_id
      - schema:
          type: string
        in: query
        name: range
      responses:
        '200':
          description: Cluster Metrics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterMetricsResponse'
  /cluster/{clusterId}/logs:
    parameters:
    - schema:
        type: string
      name: clusterId
      in: path
      required: true
    get:
      summary: Fetch cluster logs
      responses:
        '200':
          description: Cluster Logs
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterLogsResponse'
      operationId: get-cluster-logs
      tags:
      - Clusters
      x-stoplight:
        id: eodcl3enjp2ax
      description: Fetch cluster logs
      parameters:
      - schema:
          type: string
        in: query
        name: endpoint
        required: true
      - schema:
          type: string
        in: query
        name: query
        required: true
      - schema:
          type: string
        in: query
        name: start
      - schema:
          type: string
        in: query
        name: end
      - schema:
          type: string
        in: query
        name: limit
      - schema:
          type: string
        in: query
        name: since
      - schema:
          type: string
        in: query
        name: step
      - schema:
          type: string
        in: query
        name: interval
      - schema:
          type: string
        in: query
        name: direction
      - schema:
          type: string
        in: query
        name: time
components:
  schemas:
    ClusterRoutingTableRequest:
      type: object
      required:
      - routes
      properties:
        routes:
          type: array
          items:
            type: object
            required:
            - destination
            - target
            - description
            properties:
              destination:
                type: string
              target:
                type: string
              description:
                type: string
    EksAnywhereCommitRequest:
      type: object
      required:
      - commit_id
      properties:
        commit_id:
          type: string
    EksAnywhereCommitResponse:
      type: object
      required:
      - commit_id
      properties:
        commit_id:
          type: string
    KubernetesEnum:
      type: string
      enum:
      - MANAGED
      - SELF_MANAGED
      - PARTIALLY_MANAGED
      default: MANAGED
    RegistryMirroringModeEnum:
      type: string
      default: Service
      enum:
      - Cluster
      - Service
      description: 'Mirroring mode when deploying a service from a container registry

        - Cluster: This is not available on Scaleway. Images within the mirroring registry are organized by "Qovery cluster", meaning that the application deployed on the same cluster are all mirrored on the same repository.

        - Service: Images within the mirroring registry are organized by "Qovery service", each service has its own repository

        '
    KarpenterDefaultNodePoolOverride:
      title: KarpenterDefaultNodePoolOverride
      type: object
      properties:
        limits:
          $ref: '#/components/schemas/KarpenterNodePoolLimits'
        consolidate_after:
          type: string
          description: 'Time to wait before consolidating empty or underutilized nodes (e.g., 1m, 10m, 1h). Maximum: 24h'
          example: 1m
          pattern: ^\d+(s|m|h)$
    ClusterLogs:
      type: object
      properties:
        type:
          type: string
          description: log level
          example: info
        timestamp:
          type: string
          description: log date creation
          format: date-time
          example: '2022-06-22T14:20:17.733084815Z'
        step:
          description: log step
          example: Create
          type: string
          enum:
          - LoadConfiguration
          - Create
          - Created
          - CreateError
          - Pause
          - Paused
          - PauseError
          - Delete
          - Deleted
          - DeleteError
          - RetrieveClusterConfig
          - RetrieveClusterResources
          - ValidateSystemRequirements
          - UnderMigration
          - Unknown
        message:
          type: object
          properties:
            safe_message:
              type: string
              description: log global message
              example: Preparing to delete EKS cluster.
        error:
          type: object
          description: Present only for `error` log
          properties:
            tag:
              type: string
              description: log error tag
              example: CANNOT_UNINSTALL_HELM_CHART
       

# --- truncated at 32 KB (92 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/qovery/refs/heads/main/openapi/qovery-clusters-api-openapi.yml