Expanso Ops API

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

OpenAPI Specification

expanso-ops-api-openapi.yml Raw ↑
swagger: '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
host: localhost:1234
basePath: /
schemes:
- http
tags:
- name: Ops
paths:
  /api/v1/agent/alive:
    get:
      produces:
      - text/plain
      tags:
      - Ops
      operationId: agent/alive
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/apimodels.IsAliveResponse'
  /api/v1/agent/authconfig:
    get:
      produces:
      - application/json
      tags:
      - Ops
      summary: Returns the OAuth2 configuration of the node.
      operationId: agent/authconfig
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/apimodels.GetAgentNodeAuthConfigResponse'
        '500':
          description: Internal Server Error
          schema:
            type: string
  /api/v1/agent/config:
    get:
      produces:
      - application/json
      tags:
      - Ops
      summary: Returns the current configuration of the node.
      operationId: agent/config
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/types.Bacalhau'
        '500':
          description: Internal Server Error
          schema:
            type: string
  /api/v1/agent/debug:
    get:
      produces:
      - application/json
      tags:
      - Ops
      summary: Returns debug information on what the current node is doing.
      operationId: agent/debug
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/models.DebugInfo'
        '500':
          description: Internal Server Error
          schema:
            type: string
  /api/v1/agent/node:
    get:
      produces:
      - application/json
      tags:
      - Ops
      summary: Returns the info of the node.
      operationId: agent/node
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/models.NodeInfo'
        '500':
          description: Internal Server Error
          schema:
            type: string
  /api/v1/agent/version:
    get:
      description: See https://github.com/bacalhau-project/bacalhau/releases for a complete list of `gitversion` tags.
      produces:
      - application/json
      tags:
      - Ops
      summary: Returns the build version running on the server.
      operationId: agent/version
      responses:
        '200':
          description: OK
          schema:
            $ref: '#/definitions/apimodels.GetVersionResponse'
        '500':
          description: Internal Server Error
          schema:
            type: string
definitions:
  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: '#/definitions/types.OrchestratorAuth'
      Cluster:
        $ref: '#/definitions/types.Cluster'
      Enabled:
        description: Enabled indicates whether the orchestrator node is active and available for job submission.
        type: boolean
      EvaluationBroker:
        $ref: '#/definitions/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: '#/definitions/types.NodeManager'
      Port:
        description: Host specifies the port number on which the Orchestrator server listens for compute node connections.
        type: integer
      Scheduler:
        $ref: '#/definitions/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: '#/definitions/types.OrchestratorTLS'
  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.BatchTaskDefaultConfig:
    type: object
    properties:
      Publisher:
        $ref: '#/definitions/types.DefaultPublisherConfig'
      Resources:
        $ref: '#/definitions/types.ResourcesConfig'
      Timeouts:
        $ref: '#/definitions/types.TaskTimeoutConfig'
  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.NodeManager:
    type: object
    properties:
      DisconnectTimeout:
        description: DisconnectTimeout specifies how long to wait before considering a node disconnected.
        type: integer
      ManualApproval:
        description: ManualApproval, if true, requires manual approval for new compute nodes joining the cluster.
        type: boolean
  types.Docker:
    type: object
    properties:
      ManifestCache:
        description: ManifestCache specifies the settings for the Docker manifest cache.
        allOf:
        - $ref: '#/definitions/types.DockerManifestCache'
  types.TLS:
    type: object
    properties:
      AutoCert:
        description: AutoCert specifies the domain for automatic certificate generation.
        type: string
      AutoCertCachePath:
        description: AutoCertCachePath specifies the directory to cache auto-generated certificates.
        type: string
      CAFile:
        description: CAFile specifies the path to the Certificate Authority file.
        type: string
      CertFile:
        description: CertFile specifies the path to the TLS certificate file.
        type: string
      Insecure:
        description: Insecure allows insecure TLS connections (e.g., self-signed certificates).
        type: boolean
      KeyFile:
        description: KeyFile specifies the path to the TLS private key file.
        type: string
      SelfSigned:
        description: SelfSigned indicates whether to use a self-signed certificate.
        type: boolean
      UseTLS:
        description: UseTLS indicates whether to use TLS for client connections.
        type: boolean
  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
  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
  types.AuthUser:
    type: object
    properties:
      APIKey:
        type: string
      Alias:
        type: string
      Capabilities:
        type: array
        items:
          $ref: '#/definitions/types.Capability'
      Password:
        type: string
      Username:
        type: string
  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
  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
  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
  models.NodeType:
    type: integer
    enum:
    - 0
    - 1
    - 2
    x-enum-varnames:
    - nodeTypeUndefined
    - NodeTypeRequester
    - NodeTypeCompute
  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.Protocol:
    type: string
    enum:
    - ncl/v1
    - bprotocol/v2
    x-enum-varnames:
    - ProtocolNCLV1
    - ProtocolBProtocolV2
  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: '#/definitions/types.InputSourcesTypes'
  types.WASM:
    type: object
  types.OrchestratorAuth:
    type: object
    properties:
      Token:
        description: Token specifies the key for compute nodes to be able to access the orchestrator
        type: string
  types.ResultDownloadersTypes:
    type: object
    properties:
      IPFS:
        $ref: '#/definitions/types.IpfsDownloader'
  apimodels.IsAliveResponse:
    type: object
    properties:
      Status:
        type: string
  models.ComputeNodeInfo:
    type: object
    properties:
      AvailableCapacity:
        $ref: '#/definitions/models.Resources'
      EnqueuedExecutions:
        type: integer
      ExecutionEngines:
        type: array
        items:
          type: string
      MaxCapacity:
        $ref: '#/definitions/models.Resources'
      MaxJobRequirements:
        $ref: '#/definitions/models.Resources'
      Publishers:
        type: array
        items:
          type: string
      QueueCapacity:
        $ref: '#/definitions/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.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.EngineConfigTypes:
    type: object
    properties:
      Docker:
        $ref: '#/definitions/types.Docker'
      WASM:
        $ref: '#/definitions/types.WASM'
  types.InputSourcesTypes:
    type: object
    properties:
      IPFS:
        $ref: '#/definitions/types.IPFSStorage'
  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
  models.JobSelectionDataLocality:
    type: integer
    format: int64
    enum:
    - 0
    - 1
    x-enum-comments:
      Anywhere: anywhere
      Local: local
    x-enum-descriptions:
    - local
    - anywhere
    x-enum-varnames:
    - Local
    - Anywhere
  apimodels.GetAgentNodeAuthConfigResponse:
    type: object
    properties:
      config:
        $ref: '#/definitions/types.Oauth2Config'
      version:
        type: string
  types.AuthenticatorConfig:
    type: object
    properties:
      PolicyPath:
        type: string
      Type:
        type: string
  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: '#/definitions/types.LongRunningTaskDefaultConfig'
  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.Logging:
    type: object
    properties:
      Level:
        description: 'Level sets the logging level. One of: trace, debug, info, warn, error, fatal, panic.'
        type: string
      LogDebugInfoInterval:
        description: LogDebugInfoInterval specifies the interval for logging debug information.
        type: integer
      Mode:
        description: 'Mode specifies the logging mode. One of: default, json.'
        type: string
  models.DebugInfo:
    type: object
    properties:
      component:
        type: string
      info: {}
  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: '#/definitions/types.ResultDownloadersTypes'
  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.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.Bacalhau:
    type: object
    properties:
      API:
        $ref: '#/definitions/types.API'
      Compute:
        $ref: '#/definitions/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: '#/definitions/types.EngineConfig'
      FeatureFlags:
        $ref: '#/definitions/types.FeatureFlags'
      InputSources:
        $ref: '#/definitions/types.InputSourcesConfig'
      JobAdmissionControl:
        $ref: '#/definitions/types.JobAdmissionControl'
      JobDefaults:
        $ref: '#/definitions/types.JobDefaults'
      Labels:
        description: Labels are key-value pairs used to describe and categorize the nodes.
        type: object
        additionalProperties:
          type: string
      Logging:
        $ref: '#/definitions/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: '#/definitions/types.Orchestrator'
      Publishers:
        $ref: '#/definitions/types.PublishersConfig'
      ResultDownloaders:
        $ref: '#/definitions/types.ResultDownloaders'
      StrictVersionMatch:
        description: StrictVersionMatch indicates whether to enforce strict version matching.
        type: boolean
      UpdateConfig:
        $ref: '#/definitions/types.UpdateConfig'
      WebUI:
        $ref: '#/definitions/types.WebUI'
  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.JobAdmissionControl:
    type: object
    properties:
      Locality:
        description: Locality specifies the locality of the job input data.
        allOf:
        - $ref: '#/definitions/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.LongRunningTaskDefaultConfig:
    type: object
    properties:
      Resources:
        $ref: '#/definitions/types.ResourcesConfig'
  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: '#/definitions/models.GPU'
      Memory:
        description: Memory in bytes
        type: integer
  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: '#/definitions/models.GPUVendor'
  models.GPUVendor:
    type: string
    enum:
    - NVIDIA
    - AMD/ATI
    - Intel
    x-enum-varnames:
    - GPUVendorNvidia
    - GPUVendorAMDATI
    - GPUVendorIntel
  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.PublisherTypes:
    type: object
    properties:
      IPFS:
        $ref: '#/definitions/types.IPFSPublisher'
      Local:
        $ref: '#/definitions/types.LocalPublisher'
      S3:
        $ref: '#/definitions/types.S3Publisher'
      S3Managed:
        $ref: '#/definitions/types.S3ManagedPublisher'
  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.Compute:
    type: object
    properties:
      AllocatedCapacity:
        $ref: '#/definitions/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: '#/definitions/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: '#/definitions/types.EnvConfig'
      Heartbeat:
        $ref: '#/definitions/types.Heartbeat'
      Network:
        description: Network specifies the networking configuration for this compute node
        allOf:
        - $ref: '#/definitions/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: '#/definitions/types.ComputeTLS'
  types.API:
    type: object
    properties:
      Auth:
        $ref: '#/definitions/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: '#/definitions/types.TLS'
  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.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
  models.NodeInfo:
    type: object
    properties:
      BacalhauVersion:
        $ref: '#/definitions/models.BuildVersionInfo'
      ComputeNodeInfo:
        $ref: '#/definitions/models.ComputeNodeInfo'
      Labels:
        type: object
        additionalProperties:
          type: string
      NodeID:
        type: string
      NodeType:
        $ref: '#/definitions/models.NodeType'
      SupportedProtocols:
        description: SupportedProtocols indicates which communication protocols this node supports
        type: array
        items:
          $ref: '#/definitions/models.Protocol'
  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: '#/definitions/types.AuthenticatorConfig'
      Oauth2:
        $ref: '#/definitions/types.Oauth2Config'
      Users:
        type: array
        items:
          $ref: '#/definitions/types.AuthUser'
  types.FeatureFlags:
    type: object
  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: '#/definitions/types.BatchTaskDefaultConfig'
  types.Capability:
    type: object
    properties:
      Actions:
        type: array
        items:
          type: string
  types.JobDefaults:
    type: object
    properties:
      Batch:
        $ref: '#/definitions/types.BatchJobDefaultsConfig'
      Daemon:
        $ref: '#/definitions/types.LongRunningJobDefaultsConfig'
      Ops:
        $ref: '#/definitions/types.BatchJobDefaultsConfig'
      Service:
        $ref: '#/definitions/types.LongRunningJobDefaultsConfig'
  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
  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'
  types.EngineConfig:
    type: object
    properties:
      Disabled:
        description: Disabled specifies a list of engines that are disabled.
        type: array
        items:
          type: string
      Types:
        $ref: '#/definitions/types.EngineConfigTypes'
  types.UpdateConfig:
    type: object
    properties:
      Interval:
        description: Interval specifies the time between update checks, when set to 0 update checks are not performed.
        type: integer
  types.ComputeAuth:
    type: object
    properties:
      Token:
        description: Token specifies the key for compute nodes to be able to access the orchestrator.
        type: string
  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.DefaultPublisherConfig:
    type: object
    properties:
      Params:
        description: Params specifies the publisher configuration data.
        type: object
        additionalProperties:
          type: string
      Type:
        description: Type specifies the publisher type. e.g. "s3", "local", "ipfs", etc.
        type: string
  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.PublishersConfig:
    type: object
    properties:
      Disabled:
        description: Disabled specifies a list of publishers that are disabled.
        type: arr

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