Yugabyte cluster API

APIs for cluster CRUD

OpenAPI Specification

yugabyte-cluster-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  contact:
    email: support@yugabyte.com
    name: Yugabyte Cloud Support
    url: https://support.yugabyte.com/
  description: YugabyteDB as a Service
  license:
    name: Properietary (TBD)
    url: https://www.yugabyte.com/yugabyte-cloud-terms-of-service
  termsOfService: https://www.yugabyte.com/yugabyte-cloud-terms-of-service
  title: Yugabyte Cloud backup-info cluster API
  version: v1
servers:
- description: Endpoint of the API server
  url: '{protocol}://{host_port}/api'
  variables:
    protocol:
      default: http
      enum:
      - http
      - https
    host_port:
      default: localhost:1323
security:
- BearerAuthToken: []
tags:
- description: APIs for cluster CRUD
  name: cluster
paths:
  /cluster:
    delete:
      description: Submit task to delete a Yugabyte Cluster
      operationId: deleteCluster
      responses:
        '200':
          description: Successfully submitted delete cluster request
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: API Error
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: API Error
      summary: Submit task to delete a cluster
      tags:
      - cluster
    get:
      description: Get a Yugabyte Cluster
      operationId: getCluster
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cluster_Response'
          description: Cluster response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: API Error
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: API Error
      summary: Get a cluster
      tags:
      - cluster
    put:
      description: Submit task to edit a Yugabyte Cluster
      operationId: editCluster
      requestBody:
        $ref: '#/components/requestBodies/ClusterSpec'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Cluster_Response'
          description: Cluster response
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: API Error
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
          description: API Error
      summary: Submit task to edit a cluster
      tags:
      - cluster
components:
  schemas:
    PlacementInfo:
      example:
        cloud_info:
          region: us-west2
        num_nodes: 5
      properties:
        cloud_info:
          $ref: '#/components/schemas/CloudInfo'
        num_nodes:
          default: 3
          description: How many nodes are in the region
          maximum: 24
          minimum: 1
          type: integer
      required:
      - cloud_info
      - num_nodes
      type: object
    ClusterInfo:
      description: Cluster level information
      example:
        replication_factor: 14
        node_info:
          disk_size_used_gb: 5.637376656633329
          num_cores: 7
          memory_mb: 1.4658129805029452
          ram_provisioned_gb: 9.301444243932576
          cpu_usage: 2.3021358869347655
          disk_size_gb: 5.962133916683182
        is_production: false
        version: 3
        num_nodes: 2
      properties:
        num_nodes:
          default: 3
          description: How many nodes are in the cluster
          maximum: 24
          minimum: 1
          type: integer
        fault_tolerance:
          $ref: '#/components/schemas/ClusterFaultTolerance'
        replication_factor:
          description: The replication factor applied on the cluster
          maximum: 24
          minimum: 1
          type: integer
        node_info:
          $ref: '#/components/schemas/ClusterNodeInfo'
        is_production:
          default: false
          description: Describes if the cluster is a production cluster
          type: boolean
        version:
          description: cluster data version
          nullable: true
          type: integer
      required:
      - cluster_tier
      - fault_tolerance
      - is_production
      - node_info
      - num_nodes
      title: Cluster Info
      type: object
    Cluster_Response:
      example:
        data:
          spec:
            cluster_region_info:
            - placement_info:
                cloud_info:
                  region: us-west2
                num_nodes: 5
            - placement_info:
                cloud_info:
                  region: us-west2
                num_nodes: 5
            name: name
            cloud_info:
              region: us-west2
            encryption_info:
              encryption_in_transit: false
              encryption_at_rest: false
            cluster_info:
              replication_factor: 14
              node_info:
                disk_size_used_gb: 5.637376656633329
                num_cores: 7
                memory_mb: 1.4658129805029452
                ram_provisioned_gb: 9.301444243932576
                cpu_usage: 2.3021358869347655
                disk_size_gb: 5.962133916683182
              is_production: false
              version: 3
              num_nodes: 2
          info:
            metadata:
              updated_on: updated_on
              created_on: created_on
            cluster_uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
            universe_uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
            state: state
            software_version: software_version
      properties:
        data:
          $ref: '#/components/schemas/ClusterData'
      title: Cluster Response
      type: object
    EntityMetadata:
      description: Common metadata for entities
      example:
        updated_on: updated_on
        created_on: created_on
      properties:
        created_on:
          description: Timestamp when the entity was created (UTC)
          nullable: true
          type: string
        updated_on:
          description: Timestamp when the entity was last updated (UTC)
          nullable: true
          type: string
      title: Entity Metadata
      type: object
    ClusterRegionInfo:
      description: Cluster region info list
      example:
        placement_info:
          cloud_info:
            region: us-west2
          num_nodes: 5
      properties:
        placement_info:
          $ref: '#/components/schemas/PlacementInfo'
      required:
      - placement_info
      title: Cluster Region Info
      type: object
    ClusterNodeInfo:
      description: Node level information
      example:
        disk_size_used_gb: 5.637376656633329
        num_cores: 7
        memory_mb: 1.4658129805029452
        ram_provisioned_gb: 9.301444243932576
        cpu_usage: 2.3021358869347655
        disk_size_gb: 5.962133916683182
      properties:
        memory_mb:
          default: 0
          description: The total amount of RAM (MB) used by all nodes
          format: double
          type: number
        disk_size_gb:
          default: 0
          description: The total size of disk (GB)
          format: double
          type: number
        disk_size_used_gb:
          default: 0
          description: The total size of used disk space (GB)
          format: double
          type: number
        cpu_usage:
          default: 0
          description: The average CPU usage over all nodes
          format: double
          type: number
        num_cores:
          default: 0
          description: The number of CPU cores per node
          type: integer
        ram_provisioned_gb:
          default: 0
          description: The total size of provisioned ram (GB)
          format: double
          type: number
      required:
      - disk_size_gb
      - memory_mb
      - num_cores
      - ram_provisioned_gb
      title: Cluster Node Info
      type: object
    EncryptionInfo:
      description: Cluster encryption info
      example:
        encryption_in_transit: false
        encryption_at_rest: false
      properties:
        encryption_at_rest:
          default: false
          type: boolean
        encryption_in_transit:
          default: false
          type: boolean
      title: Encryption Info
      type: object
    CloudInfo:
      description: Cloud deployment information
      example:
        region: us-west2
      properties:
        code:
          $ref: '#/components/schemas/CloudEnum'
        region:
          default: us-west2
          minLength: 1
          type: string
      required:
      - code
      - region
      title: Cloud Info
      type: object
    ClusterSpec:
      description: Cluster spec
      example:
        cluster_region_info:
        - placement_info:
            cloud_info:
              region: us-west2
            num_nodes: 5
        - placement_info:
            cloud_info:
              region: us-west2
            num_nodes: 5
        name: name
        cloud_info:
          region: us-west2
        encryption_info:
          encryption_in_transit: false
          encryption_at_rest: false
        cluster_info:
          replication_factor: 14
          node_info:
            disk_size_used_gb: 5.637376656633329
            num_cores: 7
            memory_mb: 1.4658129805029452
            ram_provisioned_gb: 9.301444243932576
            cpu_usage: 2.3021358869347655
            disk_size_gb: 5.962133916683182
          is_production: false
          version: 3
          num_nodes: 2
      properties:
        name:
          description: The name of the cluster
          maxLength: 63
          minLength: 3
          pattern: ^(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?)$
          type: string
        cloud_info:
          $ref: '#/components/schemas/CloudInfo'
        cluster_info:
          $ref: '#/components/schemas/ClusterInfo'
        cluster_region_info:
          items:
            $ref: '#/components/schemas/ClusterRegionInfo'
          nullable: true
          type: array
          uniqueItems: true
        encryption_info:
          $ref: '#/components/schemas/EncryptionInfo'
      required:
      - cloud_info
      - cluster_info
      - encryption_info
      - name
      - network_info
      - software_info
      title: Cluster Specification
      type: object
    ApiError:
      properties:
        error:
          $ref: '#/components/schemas/ApiError_error'
      title: API Error
      type: object
    ClusterFaultTolerance:
      default: ZONE
      description: The level of fault tolerance for the cluster
      enum:
      - NONE
      - NODE
      - ZONE
      - REGION
      title: Cluster Fault Tolerance
      type: string
    ApiError_error:
      properties:
        detail:
          description: Error message
          type: string
        status:
          description: Error code
          type: integer
      type: object
    ClusterData:
      description: Cluster data
      example:
        spec:
          cluster_region_info:
          - placement_info:
              cloud_info:
                region: us-west2
              num_nodes: 5
          - placement_info:
              cloud_info:
                region: us-west2
              num_nodes: 5
          name: name
          cloud_info:
            region: us-west2
          encryption_info:
            encryption_in_transit: false
            encryption_at_rest: false
          cluster_info:
            replication_factor: 14
            node_info:
              disk_size_used_gb: 5.637376656633329
              num_cores: 7
              memory_mb: 1.4658129805029452
              ram_provisioned_gb: 9.301444243932576
              cpu_usage: 2.3021358869347655
              disk_size_gb: 5.962133916683182
            is_production: false
            version: 3
            num_nodes: 2
        info:
          metadata:
            updated_on: updated_on
            created_on: created_on
          cluster_uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          universe_uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
          state: state
          software_version: software_version
      properties:
        spec:
          $ref: '#/components/schemas/ClusterSpec'
        info:
          $ref: '#/components/schemas/ClusterDataInfo'
      required:
      - info
      - spec
      title: Cluster Data
      type: object
    ClusterDataInfo:
      example:
        metadata:
          updated_on: updated_on
          created_on: created_on
        cluster_uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        universe_uuid: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
        state: state
        software_version: software_version
      properties:
        universe_uuid:
          description: The UUID of the universe
          format: uuid
          type: string
        cluster_uuid:
          description: The UUID of the cluster
          format: uuid
          type: string
        state:
          description: The current state of the cluster
          type: string
        software_version:
          description: The current version of YugabyteDB installed on the cluster
          type: string
        metadata:
          $ref: '#/components/schemas/EntityMetadata'
      required:
      - cluster_uuid
      - metadata
      - project_id
      - state
      - universe_uuid
      type: object
    CloudEnum:
      default: MANUAL
      description: Which cloud the cluster is deployed in
      enum:
      - AWS
      - GCP
      - MANUAL
      title: Cloud Enum
      type: string
  requestBodies:
    ClusterSpec:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ClusterSpec'
      description: DB Cluster to be updated
  securitySchemes:
    BearerAuthToken:
      bearerFormat: JWT
      scheme: bearer
      type: http