Expanso Ops API

The Ops API from Expanso — 6 operation(s) for ops.

Operations 6

GET /api/v1/agent/alive #
GET /api/v1/agent/authconfig Returns the OAuth2 configuration of the node. #
GET /api/v1/agent/config Returns the current configuration of the node. #
GET /api/v1/agent/debug Returns debug information on what the current node is doing. #
GET /api/v1/agent/node Returns the info of the node. #
GET /api/v1/agent/version Returns the build version running on the server. #

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/expanso-ops-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

expanso-ops-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: This page is the reference of the Bacalhau REST API. Project docs are available at https://docs.bacalhau.org/. Find more information about Bacalhau at https://github.com/bacalhau-project/bacalhau.
  title: Bacalhau Ops API
  contact:
    name: Bacalhau Team
    url: https://github.com/bacalhau-project/bacalhau
    email: team@bacalhau.org
  license:
    name: Apache 2.0
    url: https://github.com/bacalhau-project/bacalhau/blob/main/LICENSE
servers:
- url: http://localhost:1234/
tags:
- name: Ops
paths:
  /api/v1/agent/alive:
    get:
      tags:
      - Ops
      operationId: agent/alive
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/apimodels.IsAliveResponse'
  /api/v1/agent/authconfig:
    get:
      tags:
      - Ops
      summary: Returns the OAuth2 configuration of the node.
      operationId: agent/authconfig
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apimodels.GetAgentNodeAuthConfigResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: string
  /api/v1/agent/config:
    get:
      tags:
      - Ops
      summary: Returns the current configuration of the node.
      operationId: agent/config
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/types.Bacalhau'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: string
  /api/v1/agent/debug:
    get:
      tags:
      - Ops
      summary: Returns debug information on what the current node is doing.
      operationId: agent/debug
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.DebugInfo'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: string
  /api/v1/agent/node:
    get:
      tags:
      - Ops
      summary: Returns the info of the node.
      operationId: agent/node
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/models.NodeInfo'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: string
  /api/v1/agent/version:
    get:
      description: See https://github.com/bacalhau-project/bacalhau/releases for a complete list of `gitversion` tags.
      tags:
      - Ops
      summary: Returns the build version running on the server.
      operationId: agent/version
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/apimodels.GetVersionResponse'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                type: string
components:
  schemas:
    types.InputSourcesConfig:
      type: object
      properties:
        Disabled:
          description: Disabled specifies a list of storages that are disabled.
          type: array
          items:
            type: string
        MaxRetryCount:
          description: ReadTimeout specifies the maximum number of attempts for reading from a storage.
          type: integer
        ReadTimeout:
          description: ReadTimeout specifies the maximum time allowed for reading from a storage.
          type: integer
        Types:
          $ref: '#/components/schemas/types.InputSourcesTypes'
    types.IPFSPublisher:
      type: object
      properties:
        Endpoint:
          description: Endpoint specifies the multi-address to connect to for IPFS. e.g /ip4/127.0.0.1/tcp/5001
          type: string
    types.Orchestrator:
      type: object
      properties:
        Advertise:
          description: Advertise specifies URL to advertise to other servers.
          type: string
        Auth:
          description: Auth specifies the authentication configuration for compute nodes to connect to the orchestrator.
          allOf:
          - $ref: '#/components/schemas/types.OrchestratorAuth'
        Cluster:
          $ref: '#/components/schemas/types.Cluster'
        Enabled:
          description: Enabled indicates whether the orchestrator node is active and available for job submission.
          type: boolean
        EvaluationBroker:
          $ref: '#/components/schemas/types.EvaluationBroker'
        Host:
          description: Host specifies the hostname or IP address on which the Orchestrator server listens for compute node connections.
          type: string
        NodeManager:
          $ref: '#/components/schemas/types.NodeManager'
        Port:
          description: Host specifies the port number on which the Orchestrator server listens for compute node connections.
          type: integer
        Scheduler:
          $ref: '#/components/schemas/types.Scheduler'
        SupportReverseProxy:
          description: SupportReverseProxy configures the orchestrator node to run behind a reverse proxy
          type: boolean
        TLS:
          description: TLS specifies the TLS related configuration on the orchestrator for when compute nodes need to connect.
          allOf:
          - $ref: '#/components/schemas/types.OrchestratorTLS'
    types.S3ManagedPublisher:
      type: object
      properties:
        Bucket:
          description: Bucket specifies the S3 bucket name for managed publisher
          type: string
        Endpoint:
          description: Endpoint specifies an optional custom S3 endpoint
          type: string
        Key:
          description: Key specifies an optional prefix for objects stored in the bucket
          type: string
        PreSignedURLExpiration:
          description: PreSignedURLExpiration specifies the duration before a pre-signed URL expires.
          type: integer
        Region:
          description: Region specifies the region the S3 bucket is in
          type: string
    types.FeatureFlags:
      type: object
    types.Docker:
      type: object
      properties:
        ManifestCache:
          description: ManifestCache specifies the settings for the Docker manifest cache.
          allOf:
          - $ref: '#/components/schemas/types.DockerManifestCache'
    types.IPFSStorage:
      type: object
      properties:
        Endpoint:
          description: Endpoint specifies the multi-address to connect to for IPFS. e.g /ip4/127.0.0.1/tcp/5001
          type: string
    types.Capability:
      type: object
      properties:
        Actions:
          type: array
          items:
            type: string
    types.EnvConfig:
      type: object
      properties:
        AllowList:
          description: 'AllowList specifies which host environment variables can be forwarded to jobs.

            Supports glob patterns (e.g., "AWS_*", "API_*")'
          type: array
          items:
            type: string
    models.Protocol:
      type: string
      enum:
      - ncl/v1
      - bprotocol/v2
      x-enum-varnames:
      - ProtocolNCLV1
      - ProtocolBProtocolV2
    models.NodeType:
      type: integer
      enum:
      - 0
      - 1
      - 2
      x-enum-varnames:
      - nodeTypeUndefined
      - NodeTypeRequester
      - NodeTypeCompute
    types.ComputeTLS:
      type: object
      properties:
        CACert:
          description: CACert specifies the CA file path that the compute node trusts when connecting to orchestrator.
          type: string
        RequireTLS:
          description: RequireTLS specifies if the compute node enforces encrypted communication with orchestrator.
          type: boolean
    types.Heartbeat:
      type: object
      properties:
        InfoUpdateInterval:
          description: InfoUpdateInterval specifies the time between updates of non-resource information to the orchestrator.
          type: integer
        Interval:
          description: Interval specifies the time between heartbeat signals sent to the orchestrator.
          type: integer
        ResourceUpdateInterval:
          description: 'Deprecated: use Interval instead'
          type: integer
    types.Bacalhau:
      type: object
      properties:
        API:
          $ref: '#/components/schemas/types.API'
        Compute:
          $ref: '#/components/schemas/types.Compute'
        DataDir:
          description: DataDir specifies a location on disk where the bacalhau node will maintain state.
          type: string
        DisableAnalytics:
          description: DisableAnalytics, when true, disables sharing anonymous analytics data with the Bacalhau development team
          type: boolean
        Engines:
          $ref: '#/components/schemas/types.EngineConfig'
        FeatureFlags:
          $ref: '#/components/schemas/types.FeatureFlags'
        InputSources:
          $ref: '#/components/schemas/types.InputSourcesConfig'
        JobAdmissionControl:
          $ref: '#/components/schemas/types.JobAdmissionControl'
        JobDefaults:
          $ref: '#/components/schemas/types.JobDefaults'
        Labels:
          description: Labels are key-value pairs used to describe and categorize the nodes.
          type: object
          additionalProperties:
            type: string
        Logging:
          $ref: '#/components/schemas/types.Logging'
        NameProvider:
          description: 'NameProvider specifies the method used to generate names for the node. One of: hostname, aws, gcp, uuid, puuid.'
          type: string
        Orchestrator:
          $ref: '#/components/schemas/types.Orchestrator'
        Publishers:
          $ref: '#/components/schemas/types.PublishersConfig'
        ResultDownloaders:
          $ref: '#/components/schemas/types.ResultDownloaders'
        StrictVersionMatch:
          description: StrictVersionMatch indicates whether to enforce strict version matching.
          type: boolean
        UpdateConfig:
          $ref: '#/components/schemas/types.UpdateConfig'
        WebUI:
          $ref: '#/components/schemas/types.WebUI'
    types.EngineConfigTypes:
      type: object
      properties:
        Docker:
          $ref: '#/components/schemas/types.Docker'
        WASM:
          $ref: '#/components/schemas/types.WASM'
    types.WebUI:
      type: object
      properties:
        Backend:
          description: 'Backend specifies the address and port of the backend API server.

            If empty, the Web UI will use the same address and port as the API server.'
          type: string
        Enabled:
          description: Enabled indicates whether the Web UI is enabled.
          type: boolean
        Listen:
          description: Listen specifies the address and port on which the Web UI listens.
          type: string
    models.GPU:
      type: object
      properties:
        index:
          description: Self-reported index of the device in the system
          type: integer
          format: int64
        memory:
          description: Total GPU memory in mebibytes (MiB)
          type: integer
          format: int64
        name:
          description: Model name of the GPU e.g. Tesla T4
          type: string
        pciaddress:
          description: 'PCI address of the device, in the format AAAA:BB:CC.C

            Used to discover the correct device rendering cards'
          type: string
        vendor:
          description: Maker of the GPU, e.g. NVidia, AMD, Intel
          allOf:
          - $ref: '#/components/schemas/models.GPUVendor'
    types.S3Publisher:
      type: object
      properties:
        PreSignedURLDisabled:
          description: PreSignedURLDisabled specifies whether pre-signed URLs are enabled for the S3 provider.
          type: boolean
        PreSignedURLExpiration:
          description: PreSignedURLExpiration specifies the duration before a pre-signed URL expires.
          type: integer
    types.IpfsDownloader:
      type: object
      properties:
        Endpoint:
          description: Endpoint specifies the multi-address to connect to for IPFS. e.g /ip4/127.0.0.1/tcp/5001
          type: string
    models.GPUVendor:
      type: string
      enum:
      - NVIDIA
      - AMD/ATI
      - Intel
      x-enum-varnames:
      - GPUVendorNvidia
      - GPUVendorAMDATI
      - GPUVendorIntel
    apimodels.IsAliveResponse:
      type: object
      properties:
        Status:
          type: string
    apimodels.GetAgentNodeAuthConfigResponse:
      type: object
      properties:
        config:
          $ref: '#/components/schemas/types.Oauth2Config'
        version:
          type: string
    types.ResultDownloaders:
      type: object
      properties:
        Disabled:
          description: Disabled is a list of downloaders that are disabled.
          type: array
          items:
            type: string
        Timeout:
          description: Timeout specifies the maximum time allowed for a download operation.
          type: integer
        Types:
          $ref: '#/components/schemas/types.ResultDownloadersTypes'
    types.WASM:
      type: object
    types.Oauth2Config:
      type: object
      properties:
        Audience:
          type: string
        DeviceAuthorizationEndpoint:
          type: string
        DeviceClientID:
          type: string
        Issuer:
          type: string
        JWKSUri:
          type: string
        PollingInterval:
          type: integer
        ProviderID:
          type: string
        ProviderName:
          type: string
        Scopes:
          type: array
          items:
            type: string
        TokenEndpoint:
          type: string
    types.LocalPublisher:
      type: object
      properties:
        Address:
          description: Address specifies the endpoint the publisher serves on.
          type: string
        Port:
          description: Port specifies the port the publisher serves on.
          type: integer
    types.JobAdmissionControl:
      type: object
      properties:
        Locality:
          description: Locality specifies the locality of the job input data.
          allOf:
          - $ref: '#/components/schemas/models.JobSelectionDataLocality'
        ProbeExec:
          description: ProbeExec specifies the command to execute for probing job submission.
          type: string
        ProbeHTTP:
          description: ProbeHTTP specifies the HTTP endpoint for probing job submission.
          type: string
        RejectNetworkedJobs:
          description: RejectNetworkedJobs indicates whether to reject jobs that require network access.
          type: boolean
        RejectStatelessJobs:
          description: RejectStatelessJobs indicates whether to reject stateless jobs, i.e. jobs without inputs.
          type: boolean
    types.PublisherTypes:
      type: object
      properties:
        IPFS:
          $ref: '#/components/schemas/types.IPFSPublisher'
        Local:
          $ref: '#/components/schemas/types.LocalPublisher'
        S3:
          $ref: '#/components/schemas/types.S3Publisher'
        S3Managed:
          $ref: '#/components/schemas/types.S3ManagedPublisher'
    types.EngineConfig:
      type: object
      properties:
        Disabled:
          description: Disabled specifies a list of engines that are disabled.
          type: array
          items:
            type: string
        Types:
          $ref: '#/components/schemas/types.EngineConfigTypes'
    types.ResourcesConfig:
      type: object
      properties:
        CPU:
          description: 'CPU specifies the default amount of CPU allocated to a task.

            It uses Kubernetes resource string format (e.g., "100m" for 0.1 CPU cores).

            This value is used when the task hasn''t explicitly set its CPU requirement.'
          type: string
        Disk:
          description: 'Disk specifies the default amount of disk space allocated to a task.

            It uses Kubernetes resource string format (e.g., "1Gi" for 1 gibibyte).

            This value is used when the task hasn''t explicitly set its disk space requirement.'
          type: string
        GPU:
          description: 'GPU specifies the default number of GPUs allocated to a task.

            It uses Kubernetes resource string format (e.g., "1" for 1 GPU).

            This value is used when the task hasn''t explicitly set its GPU requirement.'
          type: string
        Memory:
          description: 'Memory specifies the default amount of memory allocated to a task.

            It uses Kubernetes resource string format (e.g., "256Mi" for 256 mebibytes).

            This value is used when the task hasn''t explicitly set its memory requirement.'
          type: string
    types.AuthUser:
      type: object
      properties:
        APIKey:
          type: string
        Alias:
          type: string
        Capabilities:
          type: array
          items:
            $ref: '#/components/schemas/types.Capability'
        Password:
          type: string
        Username:
          type: string
    models.ComputeNodeInfo:
      type: object
      properties:
        AvailableCapacity:
          $ref: '#/components/schemas/models.Resources'
        EnqueuedExecutions:
          type: integer
        ExecutionEngines:
          type: array
          items:
            type: string
        MaxCapacity:
          $ref: '#/components/schemas/models.Resources'
        MaxJobRequirements:
          $ref: '#/components/schemas/models.Resources'
        Publishers:
          type: array
          items:
            type: string
        QueueCapacity:
          $ref: '#/components/schemas/models.Resources'
        RunningExecutions:
          type: integer
        StorageSources:
          type: array
          items:
            type: string
        address:
          description: 'Address is the network location where this compute node can be reached

            Format: IPv4 or hostname (e.g., "192.168.1.100" or "node1.example.com")'
          type: string
    types.BatchJobDefaultsConfig:
      type: object
      properties:
        Priority:
          description: 'Priority specifies the default priority allocated to a batch or ops job.

            This value is used when the job hasn''t explicitly set its priority requirement.'
          type: integer
        Task:
          $ref: '#/components/schemas/types.BatchTaskDefaultConfig'
    types.LongRunningTaskDefaultConfig:
      type: object
      properties:
        Resources:
          $ref: '#/components/schemas/types.ResourcesConfig'
    types.ComputeAuth:
      type: object
      properties:
        Token:
          description: Token specifies the key for compute nodes to be able to access the orchestrator.
          type: string
    types.PublishersConfig:
      type: object
      properties:
        Disabled:
          description: Disabled specifies a list of publishers that are disabled.
          type: array
          items:
            type: string
        Types:
          $ref: '#/components/schemas/types.PublisherTypes'
    types.Scheduler:
      type: object
      properties:
        HousekeepingInterval:
          description: HousekeepingInterval specifies how often to run housekeeping tasks.
          type: integer
        HousekeepingTimeout:
          description: HousekeepingTimeout specifies the maximum time allowed for a single housekeeping run.
          type: integer
        QueueBackoff:
          description: QueueBackoff specifies the time to wait before retrying a failed job.
          type: integer
        WorkerCount:
          description: WorkerCount specifies the number of concurrent workers for job scheduling.
          type: integer
    types.OrchestratorAuth:
      type: object
      properties:
        Token:
          description: Token specifies the key for compute nodes to be able to access the orchestrator
          type: string
    types.JobDefaults:
      type: object
      properties:
        Batch:
          $ref: '#/components/schemas/types.BatchJobDefaultsConfig'
        Daemon:
          $ref: '#/components/schemas/types.LongRunningJobDefaultsConfig'
        Ops:
          $ref: '#/components/schemas/types.BatchJobDefaultsConfig'
        Service:
          $ref: '#/components/schemas/types.LongRunningJobDefaultsConfig'
    types.TaskTimeoutConfig:
      type: object
      properties:
        ExecutionTimeout:
          description: ExecutionTimeout is the maximum time allowed for task execution
          type: integer
        TotalTimeout:
          description: TotalTimeout is the maximum total time allowed for a task
          type: integer
    models.NodeInfo:
      type: object
      properties:
        BacalhauVersion:
          $ref: '#/components/schemas/models.BuildVersionInfo'
        ComputeNodeInfo:
          $ref: '#/components/schemas/models.ComputeNodeInfo'
        Labels:
          type: object
          additionalProperties:
            type: string
        NodeID:
          type: string
        NodeType:
          $ref: '#/components/schemas/models.NodeType'
        SupportedProtocols:
          description: SupportedProtocols indicates which communication protocols this node supports
          type: array
          items:
            $ref: '#/components/schemas/models.Protocol'
    models.BuildVersionInfo:
      type: object
      properties:
        BuildDate:
          type: string
          example: '2022-11-16T14:03:31Z'
        GOARCH:
          type: string
          example: amd64
        GOOS:
          type: string
          example: linux
        GitCommit:
          type: string
          example: d612b63108f2b5ce1ab2b9e02444eb1dac1d922d
        GitVersion:
          type: string
          example: v0.3.12
        Major:
          type: string
          example: '0'
        Minor:
          type: string
          example: '3'
    models.Resources:
      type: object
      properties:
        CPU:
          description: CPU units
          type: number
        Disk:
          description: Disk in bytes
          type: integer
        GPU:
          description: GPU units
          type: integer
        GPUs:
          description: GPU details
          type: array
          items:
            $ref: '#/components/schemas/models.GPU'
        Memory:
          description: Memory in bytes
          type: integer
    types.AuthConfig:
      type: object
      properties:
        AccessPolicyPath:
          description: 'AccessPolicyPath is the path to a file or directory that will be loaded as

            the policy to apply to all inbound API requests. If unspecified, a policy

            that permits access to all API endpoints to both authenticated and

            unauthenticated users (the default as of v1.2.0) will be used.'
          type: string
        Methods:
          description: 'Methods maps "method names" to authenticator implementations. A method

            name is a human-readable string chosen by the person configuring the

            system that is shown to users to help them pick the authentication method

            they want to use. There can be multiple usages of the same Authenticator

            *type* but with different configs and parameters, each identified with a

            unique method name.


            For example, if an implementation wants to allow users to log in with

            Github or Bitbucket, they might both use an authenticator implementation

            of type "oidc", and each would appear once on this provider with key /

            method name "github" and "bitbucket".


            By default, only a single authentication method that accepts

            authentication via client keys will be enabled.'
          type: object
          additionalProperties:
            $ref: '#/components/schemas/types.AuthenticatorConfig'
        Oauth2:
          $ref: '#/components/schemas/types.Oauth2Config'
        Users:
          type: array
          items:
            $ref: '#/components/schemas/types.AuthUser'
    types.BatchTaskDefaultConfig:
      type: object
      properties:
        Publisher:
          $ref: '#/components/schemas/types.DefaultPublisherConfig'
        Resources:
          $ref: '#/components/schemas/types.ResourcesConfig'
        Timeouts:
          $ref: '#/components/schemas/types.TaskTimeoutConfig'
    types.ResultDownloadersTypes:
      type: object
      properties:
        IPFS:
          $ref: '#/components/schemas/types.IpfsDownloader'
    types.OrchestratorTLS:
      type: object
      properties:
        CACert:
          description: CACert specifies the CA file path that the orchestrator node trusts when connecting to NATS server.
          type: string
        ServerCert:
          description: ServerCert specifies the certificate file path given to NATS server to serve TLS connections.
          type: string
        ServerKey:
          description: ServerKey specifies the private key file path given to NATS server to serve TLS connections.
          type: string
        ServerTimeout:
          description: ServerTimeout specifies the TLS timeout, in seconds, set on the NATS server.
          type: integer
    types.InputSourcesTypes:
      type: object
      properties:
        IPFS:
          $ref: '#/components/schemas/types.IPFSStorage'
    types.LongRunningJobDefaultsConfig:
      type: object
      properties:
        Priority:
          description: 'Priority specifies the default priority allocated to a service or daemon job.

            This value is used when the job hasn''t explicitly set its priority requirement.'
          type: integer
        Task:
          $ref: '#/components/schemas/types.LongRunningTaskDefaultConfig'
    types.API:
      type: object
      properties:
        Auth:
          $ref: '#/components/schemas/types.AuthConfig'
        Host:
          description: Host specifies the hostname or IP address on which the API server listens or the client connects.
          type: string
        Port:
          description: Port specifies the port number on which the API server listens or the client connects.
          type: integer
        TLS:
          $ref: '#/components/schemas/types.TLS'
    types.NetworkConfig:
      type: object
      properties:
        AdvertisedAddress:
          description: 'AdvertisedAddress is the address that this compute node advertises to other nodes.

            If empty, a default address will be auto-discovered.'
          type: string
        PortRangeEnd:
          description: PortRangeEnd is the last port in the range (inclusive) that can be allocated to jobs
          type: integer
        PortRangeStart:
          description: PortRangeStart is the first port in the range (inclusive) that can be allocated to jobs
          type: integer
    models.DebugInfo:
      type: object
      properties:
        component:
          type: string
        info: {}
    types.EvaluationBroker:
      type: object
      properties:
        MaxRetryCount:
          description: MaxRetryCount specifies the maximum number of times an evaluation can be retried before being marked as failed.
          type: integer
        VisibilityTimeout:
          description: VisibilityTimeout specifies how long an evaluation can be claimed before it's returned to the queue.
          type: integer
    types.AuthenticatorConfig:
      type: object
      properties:
        PolicyPath:
          type: string
        Type:
          type: string
    types.DockerManifestCache:
      type: object
      properties:
        Refresh:
          description: Refresh specifies the refresh interval for cache entries.
          type: integer
        Size:
          description: Size specifies the size of the Docker manifest cache.
          type: integer
        TTL:
          description: TTL specifies the time-to-live duration for cache entries.
          type: integer
    apimodels.GetVersionResponse:
      type: object
      properties:
        BuildDate:
          type: string
          example: '2022-11-16T14:03:31Z'
        GOARCH:
          type: string
          example: amd64
        GOOS:
          type: string
          example: linux
        GitCommit:
          type: string
          example: d612b63108f2b5ce1ab2b9e02444eb1dac1d922d
        GitVersion:
          type: string
          example: v0.3.12
        Major:
          type: string
          example: '0'
        Minor:
          type: string
          example: '3'
    types.ResourceScaler:
      type: object
      properties:
        CPU:
          description: 'CPU specifies the amount of CPU a compute node allocates for running jobs.

            It can be expressed as a percentage (e.g., "85%") or a Kubernetes resource string (e.g., "100m").'
          type: string
        Disk:
          description: 'Disk specifies the amount of Disk space a compute node allocates for running jobs.

            It can be expressed as a percentage (e.g., "85%") or a Kubernetes resource string (e.g., "10Gi").'
          type: string
        GPU:
          description: 'GPU specifies the amount of GPU a compute node allocates for running jobs.

            It can be expressed as a percentage (e.g., "85%") or a Kubernetes resource string (e.g., "1").

            Note: When using percentages, the result is always rounded up to the nearest whole GPU.'
          type: string
        Memory:
          description: 'Memory specifies the amount of Memory a compute node allocates for running jobs.

            It can be expressed as a percentage (e.g., "85%") or a Kubernetes resource string (e.g., "1Gi").'
          type: string
    types.Cluster:
      type: object
      properties:
        Advertise:
          description: Advertise specifies the address to advertise to other cluster members.
          type: string
        Host:
          description: Host specifies the hostname or IP address for cluster communication.
          type: string
        Name:
          description: Name specifies the unique identifier for this orchestrator cluster.
          type: string
        Peers:
          description: Peers is a list of other cluster members to connect to on startup.
          type: array
          items:
            type: string
        Port:
          description: Port specifies the port number for cluster communication.
          type: integer
    types.Compute:
      type: object
      properties:
        AllocatedCapacity:
          $ref: '#/components/schemas/types.ResourceScaler'
        AllowListedLocalPaths:
          description: AllowListedLocalPaths specifies a list of local file system paths that the compute node is allowed to access.
          type: array
          items:
            type: string
        Auth:
          description: Auth specifies the authentication configuration for compute nodes to connect to the orchestrator.
          allOf:
          - $ref: '#/components/schemas/types.ComputeAuth'
        Enabled:
          description: Enabled indicates whether the compute node is active and available for job execution.
          type: boolean
        Env:
          description: Env specifies environment variable configuration for the compute node
          allOf:
          - $ref: '#/components/schemas/types.EnvConfig'
        Heartbeat:
          $ref: '#/components/schemas/types.Heartbeat'
        Network:
          description: Network specifies the networking configuration for this compute node
          allOf:
          - $ref: '#/components/schemas/types.NetworkConfig'
        Orchestrators:
          description: Orchestrators specifies a list of orchestrator endpoints that this compute node connects to.
          type: array
          items:
            type: string
        TLS:
          description: TLS specifies the TLS related configuration on the compute node when connecting with the orchestrator.
          allOf:
          - $ref: '#/components/schemas/types.ComputeTLS'
    types.Logging:
      type: object
      properties:
        Level:
          description:

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