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