OpenAPI Specification
openapi: 3.0.1
info:
contact:
email: info@seqera.io
url: https://seqera.io
description: Seqera Platform services API
title: Seqera actions compute-envs API
version: 1.181.0
tags:
- description: Compute environments
name: compute-envs
paths:
/compute-envs:
get:
description: Lists all available compute environments in a user context. Append `?workspaceId` to list compute environments in a workspace context, and `?status` to filter by compute environment status.
operationId: ListComputeEnvs
parameters:
- description: Compute environment status
in: query
name: status
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: 'Additional attribute values to include in the response (`labels`, `resources`). Returns an empty value (ex. `labels: null`) if omitted.'
explode: false
in: query
name: attributes
schema:
items:
$ref: '#/components/schemas/ComputeEnvQueryAttribute'
type: array
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListComputeEnvsResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: List compute environments
tags:
- compute-envs
post:
description: Creates a new compute environment. Append `?workspaceId` to create the environment in a workspace context.
operationId: CreateComputeEnv
parameters:
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateComputeEnvRequest'
description: Compute environment create request
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateComputeEnvResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: Create compute environment
tags:
- compute-envs
/compute-envs/validate:
get:
description: Confirms the validity of the given compute environment name in a user context. Append `?name=<your_ce_name>`.
operationId: ValidateComputeEnvName
parameters:
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: Compute environment name to validate
in: query
name: name
schema:
type: string
responses:
'204':
description: OK - No content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Duplicate element
security:
- BearerAuth: []
summary: Validate compute environment name
tags:
- compute-envs
/compute-envs/{computeEnvId}:
delete:
description: Deletes the compute environment identified by the given `computeEnvId`. When `force=true`, bypasses active-job checks and SCMS/forge cleanup; only allowed for environments in ERRORED, INVALID, or DELETING status.
operationId: DeleteComputeEnv
parameters:
- description: Compute environment string identifier
in: path
name: computeEnvId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: Force-delete a stuck compute environment, bypassing active-job checks. Only valid for environments in ERRORED, INVALID, or DELETING status.
in: query
name: force
schema:
type: boolean
responses:
'204':
description: OK - No content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Conflicting deletion
security:
- BearerAuth: []
summary: Delete compute environment
tags:
- compute-envs
get:
description: Retrieves the details of the compute environment identified by the given `computeEnvId`.
operationId: DescribeComputeEnv
parameters:
- description: Compute environment string identifier
in: path
name: computeEnvId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: 'Additional attribute values to include in the response (`labels`). Returns an empty value (`labels: null`) if omitted.'
in: query
name: attributes
schema:
items:
$ref: '#/components/schemas/ComputeEnvQueryAttribute'
type: array
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DescribeComputeEnvResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: Describe compute environment
tags:
- compute-envs
put:
description: Updates the details of the compute environment identified by the given `computeEnvId`.
operationId: UpdateComputeEnv
parameters:
- description: Compute environment string identifier
in: path
name: computeEnvId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateComputeEnvRequest'
description: Compute environment update request
required: true
responses:
'204':
description: OK - No content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Duplicate element
security:
- BearerAuth: []
summary: Update compute environment
tags:
- compute-envs
/compute-envs/{computeEnvId}/disable:
post:
description: Disables the compute environment identified by the given `computeEnvId`. A disabled compute environment cannot be used to launch workflows. If the compute environment is primary, it will be automatically unset as primary.
operationId: DisableComputeEnv
parameters:
- description: Compute environment string identifier
in: path
name: computeEnvId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmptyBodyRequest'
responses:
'204':
description: OK - No content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: Disable compute environment
tags:
- compute-envs
/compute-envs/{computeEnvId}/enable:
post:
description: Enables the compute environment identified by the given `computeEnvId`. An enabled compute environment can be used to launch workflows.
operationId: EnableComputeEnv
parameters:
- description: Compute environment string identifier
in: path
name: computeEnvId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmptyBodyRequest'
responses:
'204':
description: OK - No content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: Enable compute environment
tags:
- compute-envs
/compute-envs/{computeEnvId}/primary:
post:
description: Selects the compute environment identified by the given `computeEnvId` as the primary compute environment in the given workspace context.
operationId: UpdateComputeEnvPrimary
parameters:
- description: Compute environment string identifier
in: path
name: computeEnvId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmptyBodyRequest'
responses:
'204':
description: OK - No content
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: Define primary compute environment
tags:
- compute-envs
/compute-envs/{computeEnvId}/validate:
post:
description: Re-runs the pre-flight checks (associated-credential validation and work-directory accessibility) for the compute environment identified by the given `computeEnvId` and persists the outcome to the compute environment and its credential. Intended to recover a compute environment marked `INVALID` after the underlying problem has been fixed. Available only while the pre-flight feature is enabled.
operationId: ValidateComputeEnv
parameters:
- description: Compute environment string identifier
in: path
name: computeEnvId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: When true, skip the credential and work-dir checks and force the compute environment (INVALID only, with an AVAILABLE credential) to AVAILABLE. Rejected with 409 otherwise.
in: query
name: force
required: false
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/EmptyBodyRequest'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidateComputeEnvResponse'
description: Validation outcome - inspect status and the transientError flag on the response body
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Compute environment is in a status that cannot be validated
'403':
description: Operation not allowed
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Compute environment not found
'405':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Pre-flight feature is disabled
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Force override rejected because the compute environment or its associated credential is not in a compatible state
security:
- BearerAuth: []
summary: Validate a compute environment
tags:
- compute-envs
components:
schemas:
ComputeEnv.Status:
enum:
- CREATING
- AVAILABLE
- DISABLED
- DELETING
- ERRORED
- INVALID
- DELETED
type: string
AltairPbsComputeConfig:
allOf:
- $ref: '#/components/schemas/AbstractGridConfig'
title: Altair PBS configuration
type: object
AzBatchConfig:
allOf:
- $ref: '#/components/schemas/ComputeConfig'
- properties:
autoPoolMode:
deprecated: true
type: boolean
deleteJobsOnCompletion:
allOf:
- $ref: '#/components/schemas/JobCleanupPolicy'
nullable: true
readOnly: true
deleteJobsOnCompletionEnabled:
nullable: true
type: boolean
deletePoolsOnCompletion:
type: boolean
deleteTasksOnCompletion:
nullable: true
type: boolean
forge:
$ref: '#/components/schemas/AzBatchForgeConfig'
fusion2Enabled:
type: boolean
headJobCpus:
description: Number of CPU slots reserved on the head pool VM for the Nextflow head job. Defaults to 1 so multiple head jobs can share a head pool VM; increase to dedicate more CPU and memory to each head job.
example: 1
format: int32
nullable: true
type: integer
headJobMemoryMb:
description: Memory in MiB reserved for the Nextflow head job container. When omitted, the value is derived from the head pool VM size as the per-slot share (vmMemory / vmCpus) multiplied by the requested slot count.
example: 4096
format: int32
nullable: true
type: integer
headPool:
type: string
jobMaxWallClockTime:
description: 'Maximum wall clock time for Azure Batch jobs before automatic termination. Accepts human-readable duration syntax (e.g., ''7d'', ''1d1h1m''). Defaults to 7d when not specified. Maximum: 180 days.'
example: 7d
nullable: true
type: string
managedIdentityClientId:
nullable: true
type: string
managedIdentityHeadResourceId:
nullable: true
type: string
managedIdentityPoolClientId:
nullable: true
type: string
managedIdentityPoolResourceId:
nullable: true
type: string
region:
type: string
subnetId:
description: Azure VNet subnet resource ID for private network isolation. Requires Entra (service principal) credentials.
example: /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myRg/providers/Microsoft.Network/virtualNetworks/myVnet/subnets/mySubnet
nullable: true
type: string
terminateJobsOnCompletion:
nullable: true
type: boolean
tokenDuration:
type: string
waveEnabled:
type: boolean
workerPool:
type: string
type: object
title: Azure Batch configuration
type: object
Map.Entry_String.String_:
properties:
key:
type: string
value:
type: string
type: object
ForgeConfig:
properties:
allocStrategy:
enum:
- BEST_FIT
- BEST_FIT_PROGRESSIVE
- SPOT_CAPACITY_OPTIMIZED
- SPOT_PRICE_CAPACITY_OPTIMIZED
type: string
allowBuckets:
items:
type: string
type: array
arm64Enabled:
type: boolean
bidPercentage:
format: int32
type: integer
disposeOnDeletion:
type: boolean
dragenAmiId:
type: string
dragenEnabled:
type: boolean
dragenInstanceType:
type: string
ebsAutoScale:
type: boolean
ebsBlockSize:
format: int32
type: integer
ebsBootSize:
format: int32
type: integer
ec2KeyPair:
type: string
ecsConfig:
type: string
efsCreate:
type: boolean
efsId:
type: string
efsMount:
type: string
fargateHeadEnabled:
type: boolean
fsxMount:
type: string
fsxName:
type: string
fsxSize:
format: int32
type: integer
fusionEnabled:
type: boolean
gpuEnabled:
type: boolean
imageId:
type: string
instanceTypes:
items:
type: string
type: array
maxCpus:
format: int32
type: integer
minCpus:
format: int32
type: integer
securityGroups:
items:
type: string
type: array
subnets:
items:
type: string
type: array
type:
enum:
- SPOT
- EC2
type: string
vpcId:
type: string
type: object
ValidateComputeEnvResponse:
properties:
message:
description: 'Human-readable explanation of the outcome: the failure reason when the compute environment is INVALID, the provider-unreachable reason on a transient outcome, or null when the compute environment is AVAILABLE.'
nullable: true
type: string
status:
allOf:
- $ref: '#/components/schemas/ComputeEnv.Status'
description: 'The compute environment status after the run: AVAILABLE when every applicable check passed, INVALID when a check failed. On a transient outcome this is the unchanged prior status.'
transientError:
description: True when a provider could not be reached (timeout / throttle / 5xx). The persisted status is left unchanged; retry later.
type: boolean
type: object
LabelDbDto:
properties:
dateCreated:
format: date-time
type: string
id:
format: int64
type: integer
isDefault:
type: boolean
isDynamic:
type: boolean
isInterpolated:
type: boolean
name:
type: string
resource:
type: boolean
value:
type: string
type: object
ListComputeEnvsResponse.Entry:
properties:
credentialsId:
type: string
description:
nullable: true
type: string
fusion2Enabled:
nullable: true
type: boolean
id:
type: string
labels:
items:
$ref: '#/components/schemas/LabelDbDto'
nullable: true
type: array
lastUsed:
format: date-time
type: string
message:
type: string
name:
type: string
platform:
type: string
primary:
type: boolean
region:
type: string
resources:
allOf:
- $ref: '#/components/schemas/ComputeEnvResources'
nullable: true
schedEnabled:
nullable: true
type: boolean
status:
$ref: '#/components/schemas/ComputeEnv.Status'
visibility:
type: string
waveEnabled:
nullable: true
type: boolean
workDir:
type: string
workspaceName:
type: string
type: object
LocalComputeConfig:
allOf:
- $ref: '#/components/schemas/ComputeConfig'
- properties:
fusion2Enabled:
type: boolean
schedConfig:
$ref: '#/components/schemas/SchedConfig'
schedEnabled:
type: boolean
waveEnabled:
type: boolean
type: object
title: Local execution configuration
type: object
ConfigEnvVariable:
properties:
compute:
type: boolean
head:
type: boolean
name:
type: string
value:
type: string
type: object
PodCleanupPolicy:
enum:
- on_success
- always
- never
type: string
x-enum-varnames:
- on_success
- always
- never
LsfComputeConfig:
allOf:
- $ref: '#/components/schemas/AbstractGridConfig'
- properties:
perJobMemLimit:
type: boolean
perTaskReserve:
type: boolean
unitForLimits:
type: string
type: object
title: IBM LSF configuration
type: object
EksComputeConfig:
allOf:
- $ref: '#/components/schemas/K8sComputeConfig'
- properties:
clusterName:
description: The AWS EKS cluster name
type: string
fusion2Enabled:
type: boolean
region:
description: AWS region
type: string
waveEnabled:
type: boolean
type: object
title: Amazon EKS cluster configuration
type: object
SeqeraComputeCloudInstanceTypeSize:
enum:
- SMALL
- MEDIUM
- LARGE
type: string
ComputeEnvResources:
properties:
cpus:
format: int32
nullable: true
type: integer
diskSize:
format: int32
nullable: true
type: integer
estimatedPrice:
format: float
nullable: true
type: number
gpuEnabled:
nullable: true
type: boolean
gpus:
format: int32
nullable: true
type: integer
instanceType:
nullable: true
type: string
memory:
format: int32
nullable: true
type: integer
type: object
SchedConfig:
properties:
backendStrategy:
description: Backend used by Intelligent Compute to run tasks. 'ECS' (AWS only, default) delegates task execution to AWS ECS; 'EC2' (AWS only) runs tasks directly on AWS EC2 instances; 'VM' runs tasks on cloud VMs (provider-agnostic).
enum:
- ECS
- EC2
- VM
type: string
diskAllocation:
type: string
fusionSnapshots:
description: Enable Fusion snapshots so interrupted (e.g. spot-reclaimed) tasks can resume from a snapshot instead of restarting from scratch.
type: boolean
machineTypes:
description: EC2 instance types for compute nodes. Leave empty to automatically select the most cost-effective types for each task.
items:
type: string
type: array
nvmeEnabled:
description: When true, only use instance types providing local SSD (NVMe) storage. Maps to diskAllocation='nvme'.
type: boolean
pool:
allOf:
- $ref: '#/components/schemas/SchedConfig.Pool'
description: Warm-pool configuration. When present and enabled, the scheduler maintains a pool of idle VMs ready to absorb incoming tasks with sub-5s start latency.
predictionModel:
description: 'Resource-prediction model used by Intelligent Compute to size tasks. Suggested values: ''none'' (default), ''qr/v1'', ''qr/v2''. Any other string is accepted.'
type: string
provisioningModel:
enum:
- spot
- spotFirst
- ondemand
type: string
type: object
CreateComputeEnvRequest:
properties:
computeEnv:
$ref: '#/components/schemas/ComputeEnv_ComputeConfig_'
labelIds:
items:
format: int64
type: integer
type: array
type: object
ErrorResponse:
properties:
message:
type: string
required:
- message
type: object
ListComputeEnvsResponse:
properties:
computeEnvs:
items:
$ref: '#/components/schemas/ListComputeEnvsResponse.Entry'
type: array
type: object
CreateComputeEnvResponse:
properties:
computeEnvId:
type: string
type: object
GkeComputeConfig:
allOf:
- $ref: '#/components/schemas/K8sComputeConfig'
- properties:
clusterName:
description: The GKE cluster name
type: string
fusion2Enabled:
type: boolean
region:
description: The GKE cluster region - or - zone
type: string
waveEnabled:
type: boolean
type: object
title: Google GKE cluster configuration
type: object
GoogleBatchConfig:
allOf:
- $ref: '#/components/schemas/ComputeConfig'
- properties:
bootDiskImage:
type: string
bootDiskSizeGb:
format: int32
type: integer
computeJobsInstanceTemplate:
type: string
computeJobsMachineType:
items:
type: string
type: array
copyImage:
type: string
cpuPlatform:
type: string
debugMode:
format: int32
type: integer
fusion2Enabled:
type: boolean
fusionSnapshots:
type: boolean
headJobCpus:
format: int32
type: integer
headJobInstanceTemplate:
type: string
headJobMemoryMb:
format: int32
type: integer
labels:
additionalProperties:
type: string
type: object
location:
type: string
machineType:
type: string
network:
type: string
networkTags:
items:
type: string
type: array
nfsMount:
type: string
nfsTarget:
type: string
projectId:
type: string
serviceAccount:
type: string
spot:
type: boolean
sshDaemon:
type: boolean
sshImage:
type: string
subnetwork:
type: string
usePrivateAddress:
type: boolean
waveEnabled:
type: boolean
type: object
title: Google Batch service configuration
type: object
AzBatchPoolConfig:
description: Azure Batch pool configuration for head or worker pool
properties:
autoScale:
type: boolean
bootDiskSizeGB:
description: Boot disk size in GB for this pool's nodes. Overrides the forge-level bootDiskSizeGB. When omitted, falls back to the forge-level value or Azure's default.
example: 100
format: int32
maximum: 4095
minimum: 50
nullable: true
type: integer
vmCount:
format: int32
type: integer
vmType:
type: string
type: object
EmptyBodyRequest:
type: object
ComputeConfig:
discriminator:
mapping:
altair-platform: '#/components/schemas/AltairPbsComputeConfig'
aws-batch: '#/components/schemas/AwsBatchConfig'
aws-cloud: '#/components/schemas/AwsCloudConfig'
azure-batch: '#/components/schemas/AzBatchConfig'
azure-cloud: '#/components/schemas/AzCloudConfig'
eks-platform: '#/components/schemas/EksComputeConfig'
gke-platform: '#/components/schemas/GkeComputeConfig'
google-batch: '#/components/schemas/GoogleBatchConfig'
google-cloud: '#/components/schemas/GoogleCloudConfig'
google-lifesciences: '#/components/schemas/GoogleLifeSciencesConfig'
k8s-platform: '#/components/schemas/K8sComputeConfig'
local-platform: '#/components/schemas/LocalComputeConfig'
lsf-platform: '#/components/schemas/LsfComputeConfig'
moab-platform: '#/components/schemas/MoabComputeConfig'
seqeracompute-platform: '#/components/schemas/SeqeraComputeConfig'
slurm-platform: '#/components/schemas/SlurmComputeConfig'
uge-platform: '#/components/schemas/UnivaComputeConfig'
propertyName: discriminator
oneOf:
- $ref: '#/components/schemas/AwsBatchConfig'
- $ref: '#/components/schemas/AwsCloudConfig'
- $ref: '#/components/schemas/SeqeraComputeConfig'
- $ref: '#/components/schemas/GoogleBatchConfig'
- $ref: '#/components/schemas/GoogleCloudConfig'
- $ref: '#/components/schemas/AzBatchConfig'
- $ref: '#/components/schemas/AzCloudConfig'
- $ref: '#/components/schemas/LsfComputeConfig'
- $ref: '#/components/schemas/SlurmComputeConfig'
- $ref: '#/components/schemas/K8sComputeConfig'
- $ref: '#/components/schemas/EksComputeConfig'
- $ref: '#/components/schemas/GkeComputeConfig'
- $ref: '#/components/schemas/UnivaComputeConfig'
- $ref: '#/components/schemas/AltairPbsComputeConfig'
- $ref: '#/components/schemas/MoabComputeConfig'
- $ref: '#/components/schemas/LocalComputeConfig'
- $ref: '#/components/schemas/GoogleLifeSciencesConfig'
properties:
discriminator:
description: property to select the compute config platform
type: string
environment:
items:
$ref: '#/components/schemas/ConfigEnvVariable'
type: array
nextflowConfig:
type: string
postRunScript:
description: Add a script that executes after all Nextflow processes have completed. See [Pre and post-run scripts](https://docs.seqera.io/platform-cloud/launch/advanced#pre-and-post-run-scripts).
type: string
preRunScript:
description: Add a script that executes in the nf-launch script prior to invoking Nextflow processes. See [Pre and post-run scripts](https://docs.seqera.io/platform-cloud/launch/advanced#pre-and-post-run-sc
# --- truncated at 32 KB (48 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/seqera-labs/refs/heads/main/openapi/seqera-labs-compute-envs-api-openapi.yml