Crusoe AutoClusters API

The AutoClusters API from Crusoe — 2 operation(s) for autoclusters.

OpenAPI Specification

crusoe-energy-autoclusters-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  description: The API Gateway exposes all publicly available API endpoints for Crusoe Cloud products.
  title: Crusoe Cloud API Gateway Audit Logs AutoClusters API
  version: v1alpha5
host: api.crusoecloud.com
basePath: /v1alpha5
schemes:
- https
consumes:
- application/json
produces:
- application/json
tags:
- name: AutoClusters
paths:
  /projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/config:
    get:
      description: Returns the cluster's Autoclusters configuration including alert handling defaults and any customer overrides.
      tags:
      - AutoClusters
      summary: Retrieve the AutoClusters configuration for a specific cluster.
      operationId: getAutoClustersConfig
      parameters:
      - type: string
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        x-go-name: ProjectID
        description: Project ID
        name: project_id
        in: path
        required: true
      - type: string
        example: e384a1de-81f8-4cb2-b312-a7d88a9bf9cb
        x-go-name: ClusterID
        description: Cluster ID
        name: cluster_id
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/getAutoClustersConfigResponse'
        '401':
          $ref: '#/responses/authError'
        '403':
          $ref: '#/responses/permissionsError'
        '404':
          $ref: '#/responses/notFoundError'
        '500':
          $ref: '#/responses/serverError'
    patch:
      description: Allows setting or removing remediation overrides and configuring project reservation fallback.
      tags:
      - AutoClusters
      summary: Update the AutoClusters configuration for a specific cluster.
      operationId: updateAutoClustersConfig
      parameters:
      - type: string
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        x-go-name: ProjectID
        description: Project ID
        name: project_id
        in: path
        required: true
      - type: string
        example: e384a1de-81f8-4cb2-b312-a7d88a9bf9cb
        x-go-name: ClusterID
        description: Cluster ID
        name: cluster_id
        in: path
        required: true
      - description: Request body
        name: Body
        in: body
        required: true
        schema:
          $ref: '#/definitions/UpdateAutoClustersConfigRequest'
      responses:
        '200':
          $ref: '#/responses/updateAutoClustersConfigResponse'
        '400':
          $ref: '#/responses/badReqError'
        '401':
          $ref: '#/responses/authError'
        '403':
          $ref: '#/responses/permissionsError'
        '404':
          $ref: '#/responses/notFoundError'
        '500':
          $ref: '#/responses/serverError'
  /projects/{project_id}/kubernetes/clusters/{cluster_id}/autoclusters/vms/{vm_id}/remediate:
    post:
      description: 'Trigger remediation for a VM within a Kubernetes cluster with AutoClusters add-on enabled. This creates an AutoClusters operation and returns an

        asynchronous operation handle. Currently, this defaults to performing a replace node operation.'
      tags:
      - AutoClusters
      summary: Trigger VM remediation.
      operationId: remediateVM
      parameters:
      - type: string
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        x-go-name: ProjectID
        name: project_id
        in: path
        required: true
      - type: string
        example: e384a1de-81f8-4cb2-b312-a7d88a9bf9cb
        x-go-name: ClusterID
        name: cluster_id
        in: path
        required: true
      - type: string
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        x-go-name: VMID
        name: vm_id
        in: path
        required: true
      responses:
        '200':
          $ref: '#/responses/asyncOperationResponse'
        '401':
          $ref: '#/responses/authError'
        '403':
          $ref: '#/responses/permissionsError'
        '404':
          $ref: '#/responses/notFoundError'
        '500':
          $ref: '#/responses/serverError'
definitions:
  AsyncOperationResponse:
    type: object
    title: AsyncOperationResponse is the response type for endpoints which return async operations.
    required:
    - operation
    properties:
      operation:
        $ref: '#/definitions/Operation'
    x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
  Operation:
    description: 'Individual resources that use Operations should populate the `metadata` field

      with resource-specific information.'
    type: object
    title: Operation contains the common fields for all Operation API objects.
    required:
    - operation_id
    - state
    - metadata
    - started_at
    - completed_at
    properties:
      completed_at:
        type: string
        x-go-name: CompletedAt
        example: '2021-12-03T19:59:34Z'
      metadata:
        x-go-name: Metadata
        example: '{}'
      operation_id:
        type: string
        x-go-name: ID
        example: F6EF489C-086E-458D-B812-7962964A28C9
      result:
        x-go-name: Result
        example: '{}'
      started_at:
        type: string
        x-go-name: StartedAt
        example: '2021-12-03T19:58:34Z'
      state:
        type: string
        enum:
        - IN_PROGRESS
        - SUCCEEDED
        - FAILED
        x-go-name: State
        example: IN_PROGRESS
    x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/handlers
  RemediationConfig:
    type: object
    title: RemediationConfig represents a single remediation configuration in the API response.
    properties:
      default_action:
        $ref: '#/definitions/AutoRemediation'
      effective_action:
        $ref: '#/definitions/AutoRemediation'
      issue_name:
        description: The issue name / remediation type (e.g., "XID_74", "GPU_FELL_OFF_THE_BUS").
        type: string
        x-go-name: IssueName
        example: XID_74
      user_override:
        $ref: '#/definitions/AutoRemediation'
    x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
  UpdateAutoClustersConfigRequest:
    type: object
    title: UpdateAutoClustersConfigRequest represents the request body for updating cluster config.
    properties:
      fallback_to_project_reservations:
        description: Whether to use project's unused reservations as fallback. If not set, existing value is preserved.
        type: boolean
        x-go-name: FallbackToProjectReservations
        x-redocly-optional: true
        example: true
      remove_remediation_overrides:
        description: Remediation overrides to remove (revert to system defaults).
        type: array
        items:
          type: string
        x-go-name: RemoveRemediationOverrides
        example:
        - XID_74
        - GPU_FELL_OFF_THE_BUS
      set_remediation_overrides:
        description: Remediation overrides to add or update. These will override the system defaults.
        type: array
        items:
          $ref: '#/definitions/RemediationOverrideRequest'
        x-go-name: SetRemediationOverrides
        example:
        - action: 'OFF'
          issue_name: XID_74
    x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
  AutoRemediation:
    description: 'example: REPLACE_NODE

      enum: REPLACE_NODE,OFF'
    type: string
    title: AutoRemediation represents the auto remediation action type for an issue.
    x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
  AutoClustersConfigResponse:
    type: object
    title: AutoClustersConfigResponse represents the cluster configuration in the API response.
    properties:
      fallback_to_project_reservations:
        description: Whether to use project's unused reservations as fallback when Crusoe spares are exhausted.
        type: boolean
        x-go-name: FallbackToProjectReservations
        example: false
      remediation_configs:
        description: Per-issue configuration showing defaults and any user overrides.
        type: array
        items:
          $ref: '#/definitions/RemediationConfig'
        x-go-name: RemediationConfigs
      updated_at:
        description: When this config was last updated.
        type: string
        format: date-time
        x-go-name: UpdatedAt
        example: '2025-01-15T10:30:00Z'
    x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
  RemediationOverrideRequest:
    type: object
    title: RemediationOverrideRequest represents a remediation override in the API request.
    required:
    - issue_name
    - action
    properties:
      action:
        $ref: '#/definitions/AutoRemediation'
      issue_name:
        description: The issue name to override (e.g., "XID_74", "GPU_FELL_OFF_THE_BUS").
        type: string
        x-go-name: IssueName
        example: XID_74
    x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
responses:
  asyncOperationResponse:
    description: ''
    schema:
      $ref: '#/definitions/AsyncOperationResponse'
  serverError:
    description: Error Internal Server
    schema:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          x-go-name: Code
          example: '500'
        message:
          type: string
          x-go-name: Message
          example: internal_error
  notFoundError:
    description: Error Not Found
    schema:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          x-go-name: Code
          example: '404'
        message:
          type: string
          x-go-name: Message
          example: not_found
  updateAutoClustersConfigResponse:
    description: ''
    schema:
      $ref: '#/definitions/AutoClustersConfigResponse'
  badReqError:
    description: Error Bad Request
    schema:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          x-go-name: Code
          example: '400'
        message:
          type: string
          x-go-name: Message
          example: bad_request
  getAutoClustersConfigResponse:
    description: ''
    schema:
      $ref: '#/definitions/AutoClustersConfigResponse'
  permissionsError:
    description: Error Permissions
    schema:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          x-go-name: Code
          example: '403'
        message:
          type: string
          x-go-name: Message
          example: unauthorized
  authError:
    description: Error Authentication Failed
    schema:
      type: object
      required:
      - code
      - message
      properties:
        code:
          type: string
          x-go-name: Code
          example: '401'
        message:
          type: string
          x-go-name: Message
          example: bad_credential
x-tagGroups:
- name: Compute
  tags:
  - VMs
  - VM Operations
  - Images
  - Instance Templates
  - Custom Images
  - Custom Image Operations
- name: Organizations
  tags:
  - Projects
  - Entities
  - Prospects
  - Billing
  - Usage
  - Quotas
  - Audit Logs
  - Reservations
- name: Users
  tags:
  - Identities
  - Roles
  - SSH Keys
  - Tokens
- name: Storage
  tags:
  - Disks
  - Disk Operations
  - Snapshots
  - Snapshot Operations
- name: Networking
  tags:
  - VPC Firewall Rules
  - VPC Firewall Rule Operations
  - VPC Networks
  - VPC Subnets
  - IB Partitions
  - Load Balancers
- name: Orchestration
  tags:
  - Kubernetes Clusters
  - Kubernetes Cluster Operations
  - Kubernetes Node Pools
  - Kubernetes Node Pool Operations
  - Kubernetes Versions
  - AutoClusters
  - AutoCluster Operations
- name: Locations
  tags:
  - Locations
- name: Capacities
  tags:
  - Capacities