NVIDIA Run:ai Clusters API

Use these endpoints to create, manage and delete NVIDIA Run:ai Kubernetes clusters.

OpenAPI Specification

runai-clusters-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  version: latest
  description: '# Introduction


    The NVIDIA Run:ai Control-Plane API reference is a guide that provides an easy-to-use programming interface for adding various tasks to your application, including workload submission, resource management, and administrative operations.


    NVIDIA Run:ai APIs are accessed using *bearer tokens*. To obtain a token, you need to create a **Service account** through the NVIDIA Run:ai user interface.

    To create a service account, in your UI, go to Access → Service Accounts (for organization-level service accounts) or User settings → Access Keys (for user access keys), and create a new one.


    After you have created a new service account, you will need to assign it access rules.

    To assign access rules to the service account, see [Create access rules](https://run-ai-docs.nvidia.com/saas/infrastructure-setup/authentication/accessrules#create-or-delete-rules).

    Make sure you assign the correct rules to your service account. Use the [Roles](https://run-ai-docs.nvidia.com/saas/infrastructure-setup/authentication/roles) to assign the correct access rules.


    To get your access token, follow the instructions in [Request a token](https://run-ai-docs.nvidia.com/saas/reference/api/rest-auth/#request-an-api-token).

    '
  title: NVIDIA Run:ai Access Keys Clusters API
  x-logo:
    url: https://api.redocly.com/registry/raw/runai-xq8/saas/latest/public/runai-logo-api.png
    altText: NVIDIA Run:ai
    href: https://run.ai
  license:
    name: NVIDIA Run:ai
    url: https://www.nvidia.com/en-us/agreements/enterprise-software/nvidia-software-license-agreement/
servers:
- url: https://app.run.ai
security:
- bearerAuth: []
tags:
- name: Clusters
  description: Use these endpoints to create, manage and delete NVIDIA Run:ai Kubernetes clusters.
paths:
  /api/v1/clusters:
    get:
      summary: Get a list of clusters.
      description: Retrieve a list of clusters with details.
      operationId: get_clusters
      tags:
      - Clusters
      parameters:
      - $ref: '#/components/parameters/QueryVerbosity'
      - $ref: '#/components/parameters/QueryIncludeRequestedForDelete'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DisplayedCluster'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    post:
      summary: Create a cluster.
      description: Use to create a Kubernetes cluster.
      operationId: create_cluster
      tags:
      - Clusters
      requestBody:
        description: The cluster to create.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterCreationRequest'
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisplayedCluster'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/clusters/{clusterUuid}:
    get:
      summary: Get cluster by id.
      description: Retrieve cluster details by Universally Unique Identifier (UUID).
      operationId: get_cluster_by_uuid
      tags:
      - Clusters
      parameters:
      - $ref: '#/components/parameters/ClusterUuid'
      - $ref: '#/components/parameters/QueryVerbosity'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisplayedCluster'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    delete:
      summary: Delete a cluster by id.
      description: "Use to delete a cluster by Universally Unique Identifier (UUID). \nWill return 202 for success if this api was called on a cluster that its version is >=2.20, \nand force query param is false or not provided.\nWill return 204 for success if force query param is true, or if cluster is in a version < 2.20\n"
      operationId: delete_cluster
      tags:
      - Clusters
      parameters:
      - $ref: '#/components/parameters/ClusterUuid'
      - $ref: '#/components/parameters/QueryForceDelete'
      responses:
        '202':
          $ref: '#/components/responses/202Accepted'
        '204':
          $ref: '#/components/responses/204NoContent'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
    put:
      summary: Update a cluster by id.
      description: Use to update the details of a Kubernetes cluster by Universally Unique Identifier (UUID).
      operationId: updateCluster
      tags:
      - Clusters
      parameters:
      - $ref: '#/components/parameters/ClusterUuid'
      requestBody:
        description: The cluster details to update
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClusterUpdateRequest'
      responses:
        '204':
          $ref: '#/components/responses/204NoContent'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/clusters/{clusterUuid}/metrics:
    get:
      summary: Get the cluster metrics data.
      description: Retrieve the metrics data for a Kubernetes cluster by Universally Unique Identifier (UUID).
      operationId: get_cluster_metrics
      tags:
      - Clusters
      parameters:
      - $ref: '#/components/parameters/ClusterUuid'
      - $ref: '#/components/parameters/StartRequired'
      - $ref: '#/components/parameters/EndRequired'
      - $ref: '#/components/parameters/NumberOfSamples'
      - $ref: '#/components/parameters/MetricsType'
      - $ref: '#/components/parameters/ClusterMetricsGroupBy'
      - $ref: '#/components/parameters/FilterByNodepoolName'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupedMetricsResponse'
            text/csv: {}
        '207':
          description: Partial success.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GroupedMetricsResponse'
        '400':
          $ref: '#/components/responses/400BadRequest'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '422':
          $ref: '#/components/responses/422UnprocessableEntity'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /api/v1/clusters/{clusterUuid}/cluster-install-info:
    get:
      summary: Retrieve the installation instructions of a cluster by ID.
      description: "Use to retrieve installation instruction for a cluster by Universally Unique Identifier (UUID). \nSupports clusters version 2.15 or above.\n"
      operationId: get_cluster_install_info_by_uuid
      tags:
      - Clusters
      parameters:
      - $ref: '#/components/parameters/ClusterUuid'
      - $ref: '#/components/parameters/ClusterVersion'
      - $ref: '#/components/parameters/ClusterRemoteURL'
      responses:
        '200':
          description: Executed successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClusterInstallationInfoResponse'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
  /v1/k8s/clusters/{cluster_uuid}/installfile:
    get:
      tags:
      - Clusters
      summary: Get cluster installation file by id.
      description: "Retrieve the installation values file of a cluster by Retrieve the installation values file of a given cluster by ID. \nSupports clusters 2.13 and lower.\n"
      operationId: getInstallFile
      parameters:
      - name: cluster_uuid
        in: path
        required: true
        description: Unique identifier of the cluster.
        schema:
          type: string
          format: uuid
      - in: query
        name: cloud
        description: Cloud type identifier.
        schema:
          type: string
          enum:
          - gke
          - aws
          - aks
          - op
          - airgapped
          - openshift
      - in: query
        name: clusterip
        description: Comma-separated list of IP addresses that provide access to the cluster.
        schema:
          type: string
      - in: query
        name: format
        description: Format of the output file.
        schema:
          type: string
          enum:
          - json
          - yaml
          default: yaml
      responses:
        '200':
          $ref: '#/components/responses/OK'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /v1/k8s/clusters/{clusterUuid}/metrics:
    get:
      tags:
      - Clusters
      summary: Get cluster metrics.
      operationId: getClusterMetrics
      deprecated: true
      description: Get current cluster metrics. If time range query parameters supplied, then historical data will be returned as well. Deprecated - please use api/v1/clusters/{clusterUuid}/metrics
      parameters:
      - $ref: '#/components/parameters/ClusterUuid'
      - $ref: '#/components/parameters/Start'
      - $ref: '#/components/parameters/End'
      - $ref: '#/components/parameters/NumberOfSamples'
      - $ref: '#/components/parameters/NodepoolName'
      responses:
        '200':
          description: A Clusters metrics
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cluster'
        '401':
          $ref: '#/components/responses/401Unauthorized'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
        '500':
          $ref: '#/components/responses/500InternalServerError'
        '503':
          $ref: '#/components/responses/503ServiceUnavailable'
components:
  schemas:
    HttpResponse:
      required:
      - code
      - message
      properties:
        code:
          type: integer
          minimum: 100
          maximum: 599
        message:
          type: string
    MetricsType:
      type: string
      description: specifies what data to request
      enum:
      - TOTAL_GPU_NODES
      - GPU_UTILIZATION
      - GPU_UTILIZATION_DISTRIBUTION
      - GPU_MEMORY_UTILIZATION
      - CPU_UTILIZATION
      - CPU_MEMORY_UTILIZATION
      - TOTAL_GPU
      - GPU_QUOTA
      - ALLOCATED_GPU
      - UNALLOCATED_GPU
      - AVG_WORKLOAD_WAIT_TIME
      - WORKLOADS_COUNT
    ClusterState:
      type: string
      description: The cluster's state.
      enum:
      - WaitingToConnect
      - Connected
      - Disconnected
      - MissingPrerequisites
      - ServiceIssues
      - Unknown
    DisplayedCluster:
      type: object
      required:
      - uuid
      - tenantId
      - name
      - createdAt
      properties:
        uuid:
          type: string
          format: uuid
        tenantId:
          $ref: '#/components/schemas/TenantId'
        name:
          type: string
        createdAt:
          type: string
          format: date-time
        domain:
          type: string
          nullable: true
        version:
          type: string
          nullable: true
        status:
          $ref: '#/components/schemas/ClusterDisplayedStatus'
        updatedAt:
          type: string
          format: date-time
          nullable: true
        deletedAt:
          type: string
          nullable: true
          format: date-time
        lastLiveness:
          type: string
          nullable: true
          format: date-time
        deleteRequestedAt:
          description: the timestamp value of when the cluster deletion request was received
          type: string
          format: date-time
          nullable: true
      example:
        uuid: A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11
        name: example
        tenantId: 1001
        domain: my.company.com
        status: {}
        createdAt: '2020-01-01T00:00:00Z'
        updatedAt: '2020-01-02T00:00:00Z'
        lastLiveness: '2020-01-02T00:00:00Z'
        version: 2.15.0
    Error:
      required:
      - code
      - message
      properties:
        code:
          type: integer
          minimum: 100
          maximum: 599
        message:
          type: string
        details:
          type: string
      example:
        code: 400
        message: Bad request - Resource should have a name
    TimeRange:
      type: object
      description: Overtime metrics data. Returned only if both start and end query parameters are set.
      required:
      - resources
      properties:
        resources:
          type: array
          items:
            $ref: '#/components/schemas/ResourcesDataOvertime'
    Error1:
      required:
      - code
      - message
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
    ProjectName1:
      type: string
      example: project-a
    ClusterName:
      type: string
      example: cluster-a
    ClusterDisplayedStatus:
      type: object
      description: The cluster's displayed status.
      nullable: true
      allOf:
      - $ref: '#/components/schemas/ClusterReportedStatus'
      - type: object
        properties:
          state:
            $ref: '#/components/schemas/ClusterState'
    TenantId:
      description: The id of the tenant.
      type: integer
      format: int32
      example: 1001
    ClusterId:
      description: The id of the cluster.
      type: string
      format: uuid
      example: 71f69d83-ba66-4822-adf5-55ce55efd210
    ClusterDependenciesStatus:
      type: object
      required:
      - required
      - optional
      properties:
        required:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ClusterDependencyStatus'
        optional:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ClusterDependencyStatus'
    ResourceData:
      type: object
      description: quota equals to the given resources and allocated equal to the real count of used resources
      required:
      - quota
      - allocated
      properties:
        quota:
          type: number
          example: 3
        allocated:
          type: number
          example: 2.5
        utilization:
          type: number
          example: 0.765
    ClusterCreationRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        domain:
          type: string
        version:
          type: string
    GroupedMetricsResponse:
      type: object
      required:
      - measurements
      properties:
        measurements:
          type: array
          items:
            $ref: '#/components/schemas/GroupedMeasurementResponse'
    nodepoolName:
      type: string
      example: nodepoola
    ResourcesDataOvertime:
      allOf:
      - $ref: '#/components/schemas/ResourcesData'
      - type: object
        required:
        - timestamp
        properties:
          timestamp:
            type: string
            format: date-time
            example: '2023-06-06T12:09:18.211Z'
    GroupedMeasurementResponse:
      type: object
      required:
      - type
      - values
      properties:
        type:
          type: string
          description: specifies what data returned
          example: ALLOCATED_GPU
        labels:
          type: object
          nullable: true
          description: labels of the metric measurement
          example: '{''gpu'': ''3''}'
          additionalProperties:
            type: string
        values:
          type: array
          nullable: true
          items:
            type: object
            required:
            - value
            - timestamp
            properties:
              value:
                type: string
                example: '85'
              timestamp:
                type: string
                format: date-time
                nullable: true
                example: '2023-06-06 12:09:18.211'
        groups:
          type: array
          description: Group information for this measurement
          items:
            $ref: '#/components/schemas/GroupedMeasurementGroup'
    cluster:
      type: object
      required:
      - metadata
      - current
      properties:
        metadata:
          type: object
          required:
          - clusterId
          - clusterName
          properties:
            clusterId:
              $ref: '#/components/schemas/ClusterId'
            clusterName:
              $ref: '#/components/schemas/ClusterName'
        current:
          type: object
          description: Current reported metrics data. resources holds data that is summed up to the cluster level and projectResources explains the division of it to projects
          required:
          - resources
          - projectResources
          properties:
            resources:
              type: array
              items:
                allOf:
                - $ref: '#/components/schemas/ResourcesData'
                - type: object
                  required:
                  - nodepoolName
                  properties:
                    nodepoolName:
                      $ref: '#/components/schemas/NodepoolName'
            projectResources:
              type: array
              items:
                allOf:
                - $ref: '#/components/schemas/ResourcesData'
                - type: object
                  required:
                  - projectName
                  - departmentName
                  - nodepoolName
                  properties:
                    projectName:
                      $ref: '#/components/schemas/ProjectName1'
                    departmentName:
                      $ref: '#/components/schemas/DepartmentName'
                    nodepoolName:
                      $ref: '#/components/schemas/nodepoolName'
        timeRange:
          $ref: '#/components/schemas/TimeRange'
    NodepoolName:
      type: string
      example: nodepoola
    ClusterUpdateRequest:
      type: object
      required:
      - name
      properties:
        name:
          type: string
    DepartmentName:
      type: string
      example: default
    ResourcesData:
      type: object
      required:
      - numberOfPendingWorkloads
      - gpu
      - cpu
      - memory
      properties:
        numberOfPendingWorkloads:
          type: integer
          example: 1
        gpu:
          description: GPU resources in fractions. 0.7 = 70% of a gpu
          $ref: '#/components/schemas/ResourceData'
        cpu:
          description: CPU resources in millicpus. 1000 = 1 cpu
          $ref: '#/components/schemas/ResourceData'
        memory:
          description: Memory resources in megabytes. 1 = 10^6  (1000*1000)
          $ref: '#/components/schemas/ResourceData'
    GroupedMeasurementGroup:
      type: object
      required:
      - key
      - value
      properties:
        key:
          type: string
          example: Nodepool
          description: The grouping key
        value:
          type: string
          example: gpu-pool-1
          description: The grouping value
    ClusterDependencyStatus:
      type: object
      required:
      - available
      properties:
        available:
          type: boolean
          description: whether the dependency is available
        reason:
          type: string
          description: the reason for the dependency status
        components:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/ClusterDependencyStatus'
    ClusterReportedConfig:
      description: Holds cluster configuration values.
      type: object
      properties:
        workloadOwnershipProtection:
          type: boolean
          nullable: true
          description: indicates if the cluster workload ownership protection is enabled
          example: false
        subdomainEnabled:
          type: boolean
          nullable: true
          description: indicates if the cluster subdomain is enabled
          example: false
        ingressClass:
          type: string
          nullable: true
          description: the ingress class that is configured for the cluster
          example: nginx
      nullable: true
    ClusterInstallationInfoResponse:
      type: object
      required:
      - installationStr
      - repositoryName
      - chartRepoURL
      - clientSecret
      properties:
        installationStr:
          type: string
        repositoryName:
          type: string
        chartRepoURL:
          type: string
        clientSecret:
          type: string
      example:
        installationStr: helm update --update repo/runai-cluster -n runai --set cluster.url=test_cluster
        repositoryName: runai
        chartRepoURL: https://runai.jfrog.io/artifactory/charts
        clientSecret: ABC333DDD
    ClusterReportedStatus:
      type: object
      description: the cluster status reported by the cluster
      properties:
        conditions:
          items:
            description: Condition contains details for one aspect of the current state of this API Resource
            properties:
              lastTransitionTime:
                description: lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed.  If that is not known, then using the time when the API field changed is acceptable.
                format: date-time
                type: string
              message:
                description: message is a human readable message indicating details about the transition. This may be an empty string.
                maxLength: 32768
                type: string
              observedGeneration:
                description: observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.
                format: int64
                minimum: 0
                type: integer
              reason:
                description: reason contains a programmatic identifier indicating the reason for the condition's last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.
                maxLength: 1024
                minLength: 1
                pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
                type: string
              status:
                description: status of the condition, one of True, False, Unknown.
                enum:
                - 'True'
                - 'False'
                - Unknown
                type: string
              type:
                description: type of condition in CamelCase or in foo.example.com/CamelCase. --- Many .condition.type values are consistent across resources like Available, but because arbitrary conditions can be useful (see .node.status.conditions), the ability to deconflict is important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt)
                maxLength: 316
                type: string
            required:
            - lastTransitionTime
            - message
            - reason
            - status
            - type
            type: object
          type: array
        operands:
          additionalProperties:
            description: Status specifies the status of an operand. And operand manages resources, some of which are not immediately available and need their status monitored, such as Deployments, Daemonsets, Ingressess etc. Some resources are immediately available and should not be monitored once accepted by the cluster, such as Services, ConfigMaps, Secrets etc. If all resources of an operand are ready, a Status with Ready set to 'true' and a nil 'Reasons' slice should be returned, otherwise, a Status with 'Reasons' slice containig the reason why the Operand is not ready (Deployment pods are not ready for example.)
            properties:
              lastTransitionTime:
                description: LastTransitionTime specifies the last time the operand readiness changed
                format: date-time
                type: string
              ready:
                description: Ready specifies if the operand is ready or not
                type: boolean
              reasons:
                description: Reasons specifies the reasons why the operand is not ready
                items:
                  type: string
                type: array
              unreadyThresholdCrossed:
                description: UnreadyThresholdCrossed specifies if the operand has been unready for longer than the threshold
                type: boolean
            required:
            - ready
            type: object
          description: OperandStatuses specifies the status of the managed operands
          type: object
        platform:
          nullable: true
          type: object
          properties:
            type:
              nullable: true
              type: string
              enum:
              - vanilla
              - openshift
              - rke
              - gke
              - aks
              - eks
              description: the cluster platform type
            kubeVersion:
              nullable: true
              type: string
              description: the cluster kubernetes version
        config:
          $ref: '#/components/schemas/ClusterReportedConfig'
        dependencies:
          $ref: '#/components/schemas/ClusterDependenciesStatus'
  parameters:
    QueryForceDelete:
      name: force
      in: query
      required: false
      description: 'if true will force cluster instant deletion otherwise will start cluster graceful deletion process.

        '
      example: true
      schema:
        type: boolean
        default: false
    QueryVerbosity:
      name: verbosity
      in: query
      required: false
      description: 'response verbosity level.

        '
      example: full
      schema:
        type: string
        enum:
        - metadata
        - full
        default: full
    FilterByNodepoolName:
      name: nodepoolName
      in: query
      description: Filter using the nodepool.
      required: false
      schema:
        type: string
        example: default
    ClusterRemoteURL:
      name: remoteClusterUrl
      in: query
      required: false
      description: The remote URL of the runai cluster
      schema:
        type: string
        example: https://cluster.runai
    StartRequired:
      name: start
      in: query
      description: Start date of time range to fetch data in ISO 8601 timestamp format.
      required: true
      schema:
        type: string
        format: date-time
        example: '2023-06-06T12:09:18.211Z'
    Start:
      name: start
      in: query
      description: Start of time range to fetch data from in UTC format.
      required: false
      schema:
        type: string
        format: date-time
        example: '2023-06-06 12:09:18.211'
    ClusterMetricsGroupBy:
      name: groupBy
      in: query
      description: 'Labels to group the returned metrics data by. Grouping availability depends on the selected metric type. Supported values: "category" (workload category) or "node pool".

        '
      explode: false
      required: false
      schema:
        type: string
        enum:
        - Category
        - Nodepool
        - Project
        - Department
      example: Category
    EndRequired:
      name: end
      in: query
      description: End date of time range to fetch data in ISO 8601 timestamp format.
      required: true
      schema:
        type: string
        format: date-time
        example: '2023-06-07T12:09:18.211Z'
    MetricsType:
      name: metricType
      in: query
      required: true
      description: specifies what data to request
      explode: false
      schema:
        type: array
        items:
          $ref: '#/components/schemas/MetricsType'
    End:
      name: end
      in: query
      description: End of time range to fetch data from in UTC format.
      required: false
      schema:
        type: string
        format: date-time
        example: '2023-06-07 12:09:18.211'
    QueryIncludeRequestedForDelete:
      name: includeRequestedForDelete
      in: query
      required: false
      example: true
      schema:
        type: boolean
      description: When true, includes clusters that are marked for deletion
    ClusterVersion:
      name: version
      in: query
      required: true
      description: The cluster version to install
      schema:
        type: string
        example: 2.16
    NodepoolName:
      in: query
      name: nodepoolName
      schema:
        type: string
        example: default
      required: false
      description: Filter by unique nodepool name.
    NumberOfSamples:
      name: numberOfSamples
      in: query
      description: The number of samples to take in the specified time range.
      required: false
      schema:
        type: integer
        example: 20
        maximum: 1000
        minimum: 0
        default: 20
    ClusterUuid:
      name: clusterUuid
      in: path
      required: true
      description: The Universally Unique Identifier (UUID) of the cluster.
      schema:
        type: string
        format: uuid
        minLength: 1
        example: 9f55255e-11ed-47c7-acef-fc4054768dbc
  responses:
    202Accepted:
      description: Accepted.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/HttpResponse'
          example:
            code: 202
            message: Request has been accepted.
    OK:
      description: OK
      content:
        application/json:
          schema:
            type: string
            format: text
    404NotFound:
      description: The specified resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: 404
            message: Resource id not found.
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
         

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