Crusoe Kubernetes Node Pools API

The Kubernetes Node Pools API from Crusoe — 5 operation(s) for kubernetes node pools.

Operations 9

GET /projects/{project_id}/kubernetes/nodepools Lists all Kubernetes node pools in the project and returns their details. #
POST /projects/{project_id}/kubernetes/nodepools Creates a Kubernetes node pool in the project and returns the async operation. #
DELETE /projects/{project_id}/kubernetes/nodepools/{node_pool_id} Deletes a Kubernetes node pool from the project and returns the async operation. #
GET /projects/{project_id}/kubernetes/nodepools/{node_pool_id} Returns details for a single Kubernetes node pool in the project. #
PATCH /projects/{project_id}/kubernetes/nodepools/{node_pool_id} Updates a Kubernetes node pool in the project and returns the async operation. #
POST /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/cancel-rotate Cancels an in-progress rotation of a Kubernetes node pool in the project. #
GET /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate Returns the rotation status of a Kubernetes node pool in the project. #
POST /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate Starts a rotation of a Kubernetes node pool in the project and returns the async operation. #
GET /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/vms Lists all VMs in a Kubernetes node pool and returns their details. #

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/crusoe-kubernetes-node-pools-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 email required.

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

OpenAPI Specification

crusoe-kubernetes-node-pools-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crusoe Kubernetes Node Pools API
  version: '1.0'
  description: 'Operations tagged Kubernetes Node Pools across 2 of this provider''s published API definitions: crusoe-cloud-api-gateway-v1-openapi.json, crusoe-cloud-api-gateway-v1alpha5-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.cloud.crusoe.ai/v1
tags:
- name: Kubernetes Node Pools
paths:
  /projects/{project_id}/kubernetes/nodepools:
    get:
      description: Results can be narrowed to a single cluster with the cluster_id query parameter.
      operationId: listNodePools
      parameters:
      - description: ID of the project that owns the node pools.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: Filters results to node pools in this cluster.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: query
        name: cluster_id
        x-go-name: ClusterID
        schema:
          type: string
      - description: Field to sort results by; prefix with '-' for descending order.
        example: created_at, -created_at
        in: query
        name: sort
        x-go-name: SortBy
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listKubernetesNodePoolsResponse'
        '401':
          $ref: '#/components/responses/authError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Lists all Kubernetes node pools in the project and returns their details.
      tags:
      - Kubernetes Node Pools
    post:
      operationId: createNodePool
      parameters:
      - description: ID of the project to create the node pool in.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/asyncOperationResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Creates a Kubernetes node pool in the project and returns the async operation.
      tags:
      - Kubernetes Node Pools
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KubernetesNodePoolPostRequest'
        required: true
  /projects/{project_id}/kubernetes/nodepools/{node_pool_id}:
    delete:
      operationId: deleteNodePool
      parameters:
      - description: ID of the project that owns the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: node_pool_id
        required: true
        x-go-name: NodePoolID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/asyncOperationResponse'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Deletes a Kubernetes node pool from the project and returns the async operation.
      tags:
      - Kubernetes Node Pools
    get:
      operationId: getNodePool
      parameters:
      - description: ID of the project that owns the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: node_pool_id
        required: true
        x-go-name: NodePoolID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getKubernetesNodePoolResponse'
        '401':
          $ref: '#/components/responses/authError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Returns details for a single Kubernetes node pool in the project.
      tags:
      - Kubernetes Node Pools
    patch:
      operationId: updateNodePool
      parameters:
      - description: ID of the project that owns the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: node_pool_id
        required: true
        x-go-name: NodePoolID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/asyncOperationResponse'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Updates a Kubernetes node pool in the project and returns the async operation.
      tags:
      - Kubernetes Node Pools
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KubernetesNodePoolPatchRequest'
        required: true
  /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/cancel-rotate:
    post:
      operationId: cancelNodePoolRotate
      parameters:
      - description: ID of the project that owns the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: node_pool_id
        required: true
        x-go-name: NodePoolID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/cancelNodePoolRotateResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Cancels an in-progress rotation of a Kubernetes node pool in the project.
      tags:
      - Kubernetes Node Pools
  /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/rotate:
    get:
      operationId: getNodePoolRotateStatus
      parameters:
      - description: ID of the project that owns the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: node_pool_id
        required: true
        x-go-name: NodePoolID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/getNodePoolRotateStatusResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Returns the rotation status of a Kubernetes node pool in the project.
      tags:
      - Kubernetes Node Pools
    post:
      description: A successful response returns an async operation you can poll.
      operationId: rotateNodePool
      parameters:
      - description: ID of the project that owns the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: node_pool_id
        required: true
        x-go-name: NodePoolID
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/asyncOperationResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Starts a rotation of a Kubernetes node pool in the project and returns the async operation.
      tags:
      - Kubernetes Node Pools
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/KubernetesNodePoolRotateStartRequest'
        required: true
  /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/vms:
    get:
      operationId: listKubernetesNodePoolVMs
      parameters:
      - description: ID of the project that owns the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: project_id
        required: true
        x-go-name: ProjectID
        schema:
          type: string
      - description: ID of the node pool.
        example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
        in: path
        name: node_pool_id
        required: true
        x-go-name: NodePoolID
        schema:
          type: string
      - description: Maximum number of results to return per page.
        example: '20'
        in: query
        name: limit
        x-go-name: Limit
        schema:
          type: string
      - description: Field to sort results by; prefix with '-' for descending order.
        example: name
        in: query
        name: sort
        x-go-name: Sort
        schema:
          type: string
      - description: Base64-encoded token for the next page of results.
        example: bXktZmlyc3Qtdm0
        in: query
        name: next_token
        x-go-name: NextToken
        schema:
          type: string
      - description: Base64-encoded token for the previous page of results.
        example: bXktZmlyc3Qtdm0
        in: query
        name: prev_token
        x-go-name: PrevToken
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/listKubernetesNodePoolVMsResponse'
        '400':
          $ref: '#/components/responses/badReqError'
        '401':
          $ref: '#/components/responses/authError'
        '403':
          $ref: '#/components/responses/permissionsError'
        '404':
          $ref: '#/components/responses/notFoundError'
        '500':
          $ref: '#/components/responses/serverError'
      summary: Lists all VMs in a Kubernetes node pool and returns their details.
      tags:
      - Kubernetes Node Pools
components:
  responses:
    listKubernetesNodePoolVMsResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListKubernetesNodePoolVMsResponse'
    notFoundError:
      description: Error Not Found
      content:
        application/json:
          schema:
            properties:
              code:
                example: '404'
                type: string
                x-go-name: Code
              message:
                example: not_found
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    permissionsError:
      description: Error Permissions
      content:
        application/json:
          schema:
            properties:
              code:
                example: '403'
                type: string
                x-go-name: Code
              message:
                example: unauthorized
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    serverError:
      description: Error Internal Server
      content:
        application/json:
          schema:
            properties:
              code:
                example: '500'
                type: string
                x-go-name: Code
              message:
                example: internal_error
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    badReqError:
      description: Error Bad Request
      content:
        application/json:
          schema:
            properties:
              code:
                example: '400'
                type: string
                x-go-name: Code
              message:
                example: bad_request
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    getNodePoolRotateStatusResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesGetNodePoolRotateStatusResponse'
    asyncOperationResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AsyncOperationResponse'
    getKubernetesNodePoolResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesNodePool'
    authError:
      description: Error Authentication Failed
      content:
        application/json:
          schema:
            properties:
              code:
                example: '401'
                type: string
                x-go-name: Code
              message:
                example: bad_credential
                type: string
                x-go-name: Message
            required:
            - code
            - message
            type: object
    cancelNodePoolRotateResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/KubernetesCancelNodePoolRotateResponse'
    listKubernetesNodePoolsResponse:
      description: ''
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ListKubernetesNodePoolsResponse'
  schemas:
    PrivateIPv4Address:
      properties:
        address:
          description: Private IPv4 address.
          example: 10.1.2.3
          type: string
          x-go-name: Address
      required:
      - address
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    HostChannelAdapter:
      properties:
        guid:
          description: Globally unique identifier (GUID) of the host channel adapter.
          example: 946d:ae03:0021:69aa
          type: string
          x-go-name: GUID
        ib_network_id:
          type: string
          x-go-name: IBNetworkID
        ib_partition_id:
          type: string
          x-go-name: IBPartitionID
        transport_network_id:
          description: ID of the transport network the host channel adapter is attached to.
          example: ca39e669-47ee-456b-968d-303234fbf99f
          type: string
          x-go-name: TransportNetworkID
        transport_partition_id:
          description: ID of the transport partition the host channel adapter is attached to.
          example: ca39e669-47ee-456b-968d-303234fbf99f
          type: string
          x-go-name: TransportPartitionID
        type:
          description: Transport type of the host channel adapter.
          example: infiniband
          type: string
          x-go-name: Type
      required:
      - type
      - guid
      - ib_network_id
      - ib_partition_id
      - transport_network_id
      - transport_partition_id
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    Operation:
      description: 'Individual resources that use Operations should populate the `metadata` field

        with resource-specific information.'
      properties:
        completed_at:
          example: '2021-12-03T19:59:34Z'
          type: string
          x-go-name: CompletedAt
        metadata:
          example: '{}'
          x-go-name: Metadata
        operation_id:
          example: F6EF489C-086E-458D-B812-7962964A28C9
          type: string
          x-go-name: ID
        result:
          example: '{}'
          x-go-name: Result
        started_at:
          example: '2021-12-03T19:58:34Z'
          type: string
          x-go-name: StartedAt
        state:
          enum:
          - IN_PROGRESS
          - SUCCEEDED
          - FAILED
          example: IN_PROGRESS
          type: string
          x-go-name: State
      required:
      - operation_id
      - state
      - metadata
      - started_at
      - completed_at
      title: Operation contains the common fields for all Operation API objects.
      type: object
      x-go-package: gitlab.com/crusoeenergy/schemas/utils/fetch
    KubernetesGetNodePoolRotateStatusResponse:
      properties:
        out_of_sync_instances:
          description: IDs of instances that are out of sync with the node pool configuration.
          items:
            type: string
          type: array
          x-go-name: OutOfSyncInstances
        state:
          description: Current rotation state of the node pool.
          type: string
          x-go-name: State
      required:
      - state
      - out_of_sync_instances
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    VirtualizationFeatures:
      properties:
        nested_virtualization:
          description: Whether nested virtualization is enabled, allowing a VM to run inside this VM.
          example: true
          type: boolean
          x-go-name: NestedVirtualization
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    NetworkInterface:
      properties:
        external_dns_name:
          description: External DNS name of the network interface.
          type: string
          x-go-name: ExternalDNSName
        id:
          description: ID of the network interface.
          example: ca39e669-47ee-456b-968d-303234fbf99f
          type: string
          x-go-name: ID
        interface_type:
          description: Type of the network interface.
          example: ethernet
          type: string
          x-go-name: InterfaceType
        ips:
          description: IP addresses assigned to the network interface.
          items:
            $ref: '#/components/schemas/IPAddresses'
          type: array
          x-go-name: IPs
        mac_address:
          description: MAC address of the network interface.
          example: 00:00:5e:00:53:af
          type: string
          x-go-name: MACAddress
        name:
          description: Name of the network interface.
          example: network-interface-1
          type: string
          x-go-name: Name
        network:
          description: ID of the VPC network the interface is attached to.
          example: 1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc
          type: string
          x-go-name: Network
        subnet:
          description: ID of the VPC subnet the interface is attached to.
          example: 1ce839b7-3fab-46f9-8e54-7a6bb4ac1ffc
          type: string
          x-go-name: Subnet
      required:
      - id
      - name
      - network
      - subnet
      - interface_type
      - mac_address
      - ips
      - external_dns_name
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    ListKubernetesNodePoolVMsResponse:
      description: 'ListKubernetesNodePoolVMsResponse is the response type for

        GET /projects/{project_id}/kubernetes/nodepools/{node_pool_id}/vms. Uses the

        canonical short-form `next_token` / `prev_token` field names that match

        `fetch`''s request params, rather than the legacy `*_page_token` naming used

        by /compute/vms/instances.'
      properties:
        items:
          items:
            $ref: '#/components/schemas/InstanceV1'
          type: array
          x-go-name: Items
        next_token:
          description: 'Base64 encoded token representing the next page of instances. Empty if

            currently on the last page.'
          example: bXktbGFzdC12bQ
          type: string
          x-go-name: NextToken
        prev_token:
          description: 'Base64 encoded token representing the previous page of instances. Empty

            if currently on the first page.'
          example: bXktZmlyc3Qtdm0
          type: string
          x-go-name: PrevToken
      required:
      - items
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    KubernetesNodePoolPatchRequest:
      properties:
        action:
          default: UPDATE
          description: 'Action to perform on the node pool: RESERVE, UNRESERVE, or UPDATE. RESERVE and UNRESERVE

            operations are done synchronously, and so will have succeeded with a 200 response.

            Defaults to UPDATE if no action is specified.'
          enum:
          - RESERVE
          - UNRESERVE
          - UPDATE
          example: UPDATE
          type: string
          x-go-name: Action
          x-redocly-optional: true
        count:
          description: New number of nodes in the node pool.
          example: 4
          format: int64
          type: integer
          x-go-name: Count
          x-redocly-optional: true
        ephemeral_storage_for_containerd:
          description: Whether the first local ephemeral NVMe disk is used for containerd storage.
          example: true
          type: boolean
          x-go-name: EphemeralStorageForContainerd
          x-redocly-optional: true
        node_labels:
          additionalProperties:
            type: string
          description: 'New labels for the node pool. Labels provided in the PATCH request do not modify existing nodes,

            but apply to any newly created nodes.'
          example:
            label: my_node
          type: object
          x-go-name: NodeLabels
          x-redocly-optional: true
        node_pool_version:
          description: New Kubernetes node pool version for newly created VMs.
          example: '1.30'
          type: string
          x-go-name: NodePoolVersion
          x-redocly-optional: true
        node_taints:
          description: 'New taints for nodes in this node pool. Taints provided in the PATCH request do not modify existing nodes,

            but apply to any newly created nodes.

            This field has three behaviors:

            Omitted (null): existing taints are left unchanged.

            Empty array ([]): all existing taints are cleared.

            Non-empty array: existing taints are fully replaced by the

            provided list.

            Each (key, effect) pair in the list must be unique. Up to 50

            taints are allowed. See KubernetesNodeTaint for per-field format rules.'
          example:
          - effect: NoSchedule
            key: gpu-type
            value: h100
          items:
            $ref: '#/components/schemas/KubernetesNodeTaint'
          type: array
          x-go-name: NodeTaints
          x-redocly-optional: true
        reservation_id:
          description: New reservation ID for the node pool.
          example: ca39e669-47ee-456b-968d-303234fbf99f
          type: string
          x-go-name: ReservationID
          x-redocly-optional: true
        ssh_public_key:
          description: New SSH public key to use for all VMs created from this node pool.
          example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCspdG97nTS/h4PEPq2QD2RYVK1jxFXLFZuSDMI8Rtxpucl6LDZLOghEYoj13lxKQnGtcsM3Iu68lh+4YgZe7CbI6cc/TxPbeAX2HJTqDh0J7+GAlLBHK9tsepC0QlhIDiazJptOPDZ3cesCBXdxSnzEbhDaqgYOfl393cp1fCeOKRIDWEP3H9CM25dCbWF66sTDziLsojJ9dMnxhgKm9/JkZc5gYncLT/2Ey+VWfV9Fs65mGUrBbQOn3c8S/nEk6WRcYn4PFOnIp0Mz+Chb50iCJrW677pllLnkTGSU+4c0H9J5z4HDG0I+91RoiQ0QsayFTYO1JtSn+THLuq98V+D
          type: string
          x-go-name: SSHPublicKey
          x-redocly-optional: true
      required:
      - count
      - node_labels
      - node_taints
      - reservation_id
      - action
      - ephemeral_storage_for_containerd
      - node_pool_version
      - ssh_public_key
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    ListKubernetesNodePoolsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/KubernetesNodePool'
          type: array
          x-go-name: Items
      required:
      - items
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    KubernetesNodePool:
      properties:
        cluster_id:
          description: ID of the Kubernetes cluster the node pool belongs to.
          example: 9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f
          type: string
          x-go-name: ClusterID
        count:
          description: Number of nodes in the node pool.
          example: 4
          format: int64
          type: integer
          x-go-name: Count
        created_at:
          description: Creation timestamp of the node pool, in RFC3339 format.
          example: '2021-12-03T19:58:34Z'
          type: string
          x-go-name: CreatedAt
        ephemeral_storage_for_containerd:
          description: Whether the first local ephemeral NVMe disk is used for containerd storage.
          example: true
          type: boolean
          x-go-name: EphemeralStorageForContainerd
        id:
          description: ID of the node pool.
          example: 0a1b3c2d-5e6f-8b9c-4d7e-1a2b3c4d5e6f
          type: string
          x-go-name: ID
        image_id:
          description: ID of the image used for the node pool.
          example: ab4a6b00-aa5f-408e-a9fb-ac6de5eb45ab
          type: string
          x-go-name: ImageID
        instance_details:
          description: Details about the instances within the node pool.
          items:
            $ref: '#/components/schemas/InstanceDetails'
          type: array
          x-go-name: InstanceDetails
        instance_ids:
          description: IDs of the instances within the node pool.
          example:
          - ca39e669-47ee-456b-968d-303234fbf99f
          items:
            type: string
          type: array
          x-go-name: InstanceIDs
        name:
          description: Name of the node pool.
          example: crusoe-node-pool
          type: string
          x-go-name: Name
        node_labels:
          additionalProperties:
            type: string
          description: Labels assigned to nodes in the node pool.
          example:
            label: my_node
          type: object
          x-go-name: NodeLabels
        node_taints:
          description: Taints applied to nodes in the node pool.
          example:
          - effect: NoSchedule
            key: gpu
            value: 'true'
          items:
            $ref: '#/components/schemas/KubernetesNodeTaint'
          type: array
          x-go-name: NodeTaints
        nvlink_domain_id:
          description: NVLink domain ID assigned to the node pool.
          example: 550e8400-e29b-41d4-a716-446655440000
          type: string
          x-go-name: NvlinkDomainID
        project_id:
          description: ID of the project that owns the node pool.
          example: 9c8b7d6e-5f4a-3b2c-1e0f-2a3b4c5d6e7f
          type: string
          x-go-name: ProjectID
        public_ip_type:
          default: dynamic
          description: 'Public IP type for the node pool''s nodes: dynamic, static, or none.'
          example: dynamic
          type: string
          x-go-name: PublicIPType
        reservation_id:
          description: ID of the billing reservation associated with the node pool.
          example: ca39e669-47ee-456b-968d-303234fbf99f
          type: string
          x-go-name: ReservationID
        state:
          description: Current state of the node pool.
          example: STATE_RUNNING
          type: string
          x-go-name: State
        subnet_id:
          description: ID of the subnet the node pool belongs to.
          example: 09ae8411-0fbb-411c-898c-2b8f19622ae1
          type: string
          x-go-name: SubnetID
        type:
          description: VM type of the node pool.
          example: a100.2x
          type: string
          x-go-name: Type
        updated_at:
          description: Last update timestamp of the node pool, in RFC3339 format.
          example: '2021-12-03T19:58:34Z'
          type: string
          x-go-name: UpdatedAt
      required:
      - id
      - name
      - count
      - project_id
      - cluster_id
      - image_id
      - node_labels
      - node_taints
      - subnet_id
      - instance_ids
      - state
      - type
      - created_at
      - updated_at
      - reservation_id
      - ephemeral_storage_for_containerd
      type: object
      x-go-package: gitlab.com/crusoeenergy/island/rest-gateway/internal/models
    InstanceV1:
      description: 'InstanceV1 contains identifying information about a vm instance for

        vms.instances endpoints.'
      properties:
        billing_type:
          description: 'Billing type of the VM: On-demand, Spot, or PoC.

            values: On-demand, Spot, PoC'
          type: string
          x-go-name: BillingType
        commitment_end:
          type: string
          x-go-name: CommitmentEnd
        commitment_period:
          description: commitment is no longer supported
          format: int64
          type: integer
          x-go-name: CommitmentPeriod
        created_at:
          description: Creation timestamp of the VM, in RFC3339 format.
          example: '2021-12-03T19:58:34Z'
          type: string
          x-go-name: CreatedAt
        disks:
          description: Disks attached to the VM.
          items:
            $ref: '#/components/schemas/AttachedDiskV1'
          type: array
          x-go-name: Disks
        host_channel_adapters:
          description: Host channel adapters attached to the VM.
          items:
            $ref: '#/components/schemas/HostChannelAdapter'
          type: array
          x-go-name: HostChannelAdapters
        id:
          description: ID of the VM.
          example: ca39e669-47ee-456b-968d-303234fbf99f
          type: string
          x-go-name: ID
        instance_group_id:
          description: ID of the instance group the VM belongs to, if any.
          example: 707749bd-ecad-4de8-aa00-1ae2fdb99e19
          type: string
          x-go-name: InstanceGroupID
        instance_template_id:
          description: ID of the instance template the VM was created from, if any.
          example: 75c6712a-8da8-463c-a72d-fc65cf922959
          type: string
          x-go-name: InstanceTemplateID
        location:
          description: Location the VM runs in.
          example: us-centralnorth1-a
          type: string
          x-go-name: Location
        maintenance_policy:
          description: 'Host maintenance policy applied to the VM: manual, stop-vm, or unspecified.'
          enum:
          - manual
          - stop-vm
          - unspecified
          type: string
          x-go-name: MaintenancePolicy
        name:
          description: Name of the VM.
          example: my-first-vm
          type: string
          x-go-name: Name
        network_interfaces:
          description: Network interfaces attached to the VM.
          items:
            $ref: '#/components/schemas/NetworkInterface'
          type: array
          x-go-name: NetworkInterfaces
        nvlink_domain_id:
          description: ID of the NVLink domain the VM belongs to, if any.
          type: strin

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/crusoe/refs/heads/main/openapi/crusoe-kubernetes-node-pools-api-openapi.yml