OpenAPI Specification
openapi: 3.0.1
info:
contact:
email: info@seqera.io
url: https://seqera.io
description: Seqera Platform services API
title: Seqera actions studios API
version: 1.181.0
tags:
- description: Studios and Studio sessions
name: studios
paths:
/studios:
get:
description: Lists all available Studios in a user context. Append `?workspaceId` to list Studios in a workspace context.
operationId: ListDataStudios
parameters:
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: 'Optional search criteria, allowing free text search on name and templateUrl and keywords: `userId`, `computeEnvId` and `status`.'
in: query
name: search
schema:
type: string
- description: Pagination max results
in: query
name: max
schema:
format: int32
type: integer
- description: Pagination offset
in: query
name: offset
schema:
format: int32
type: integer
- description: 'Optional attribute values to be included in the response (`labels`). Returns an empty value (`labels: null`) if omitted.'
in: query
name: attributes
schema:
items:
$ref: '#/components/schemas/DataStudioQueryAttribute'
type: array
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioListResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: BadRequest
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the workspace is not found or when the API is disabled for the workspace.
security:
- BearerAuth: []
summary: List Studios
tags:
- studios
post:
description: Creates a new Studio environment, starting it by default. Default behavior can be changed using the query parameter `autoStart=false`.
operationId: CreateDataStudio
parameters:
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: Optionally disable the Studio's automatic launch when it is created.
in: query
name: autoStart
schema:
type: boolean
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioCreateRequest'
description: Create Studio request
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioCreateResponse'
description: CreateDataStudio 200 response
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioCreateResponse'
description: Created
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: BadRequest
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the workspace or compute environment is not found or when the API is disabled.
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Conflict - duplicated name
security:
- BearerAuth: []
summary: Create Studio
tags:
- studios
/studios/data-links:
get:
description: Lists the IDs of all available data-links mounted in existing Studios. Append `orgId` or `?workspaceId` to list mounted data-links in an organization or workspace context, respectively.
operationId: ListMountedDataLinkIds
parameters:
- description: Organization numeric identifier
in: query
name: orgId
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: Optional Studio status
in: query
name: status
schema:
type: string
- description: Optional Studio session ID to exclude in the request.
in: query
name: exclude
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioMountedLinksResponse'
description: OK
'403':
description: Operation not allowed.
security:
- BearerAuth: []
summary: List mounted data-links
tags:
- studios
/studios/templates:
get:
description: Returns the list of available, configured Studio templates.
operationId: ListDataStudioTemplates
parameters:
- description: Workspace identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: Pagination max results
in: query
name: max
schema:
format: int32
type: integer
- description: Pagination offset
in: query
name: offset
schema:
format: int32
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioTemplatesListResponse'
description: Ok - paginated list of available Studio templates.
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: BadRequest
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the API is disabled for the workspace.
security:
- BearerAuth: []
summary: List available Studio templates
tags:
- studios
/studios/validate:
get:
description: Confirms the availability of the given name for a Studio in the user context. Append `?workspaceId=` to validate the name in a workspace context.
operationId: ValidateDataStudioName
parameters:
- description: Workspace identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: Studio name to validate
in: query
name: name
schema:
type: string
responses:
'204':
description: Ok - No content, if the name is valid and available.
'400':
description: Bad request, if the name is not valid.
'403':
description: Operation not allowed.
'409':
description: Conflict, name duplicated in the given context.
security:
- BearerAuth: []
summary: Validate Studio name
tags:
- studios
/studios/{sessionId}:
delete:
description: Deletes the Studio associated with the given Studio session ID.
operationId: DeleteDataStudio
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
responses:
'204':
description: OK - No content
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the Studio is not found or when the API is disabled for the workspace.
security:
- BearerAuth: []
summary: Delete Studio
tags:
- studios
get:
description: Retrieves the details of the Studio session identified by the given `sessionId`.
operationId: DescribeDataStudio
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioDto'
description: OK
'202':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioDto'
description: Accepted, when the Studio is fetching mounted data links in the background.
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the Studio is not found or when the API is disabled for the workspace.
security:
- BearerAuth: []
summary: Describe Studio
tags:
- studios
put:
description: Updates the given Studio session ID. Can only update non-running Studios. The compute environment can be changed by setting `computeEnvId` to a CE compatible with the Studio's current one; see `GET /studios/{sessionId}/compatible-ce`.
operationId: UpdateDataStudio
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
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/DataStudioUpdateRequest'
description: Fields to update on the studio.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioDto'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: BadRequest
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the Studio is not found or when the API is disabled for the workspace.
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Conflict - duplicated name
security:
- BearerAuth: []
summary: Update a Studio
tags:
- studios
/studios/{sessionId}/checkpoints:
get:
description: Retrieves the list of checkpoints for the given Studio session ID, sorted by creation date in descending order.
operationId: ListDataStudioCheckpoints
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
- description: 'Optional search criteria, allowing free text search on name and keywords: `status`, `before` and `after` for saved date'
in: query
name: search
schema:
type: string
- description: Pagination max results
in: query
name: max
schema:
format: int32
type: integer
- description: Pagination offset
in: query
name: offset
schema:
format: int32
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioListCheckpointsResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: BadRequest
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the Studio is not found or when the API is disabled for the workspace.
security:
- BearerAuth: []
summary: List Studio checkpoints
tags:
- studios
/studios/{sessionId}/checkpoints/{checkpointId}:
get:
description: Retrieves the details of the given Studio checkpoint ID.
operationId: GetDataStudioCheckpoint
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
required: true
schema:
type: string
- description: Numeric identifier of the checkpoint.
in: path
name: checkpointId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioCheckpointDto'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: BadRequest
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the studio or the checkpoint is not found or when the API is disabled for the workspace
security:
- BearerAuth: []
summary: Get Studio checkpoint
tags:
- studios
put:
description: Updates the name of the given Studio checkpoint ID.
operationId: UpdateDataStudioCheckpoint
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
required: true
schema:
type: string
- description: Numeric identifier of the checkpoint.
in: path
name: checkpointId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioCheckpointUpdateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioCheckpointDto'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: BadRequest
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the studio or the checkpoint is not found or when the API is disabled for the workspace
'409':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Conflict, when the checkpoint name conflicts with an existing checkpoint for the same Studio.
security:
- BearerAuth: []
summary: Update Studio checkpoint name
tags:
- studios
/studios/{sessionId}/compatible-ce:
get:
description: Lists the compute environments in the same workspace as the given Studio that are compatible with its compute environment.
operationId: ListDataStudioCompatibleComputeEnvs
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
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`, `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
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the Studio is not found, has no compute environment, or when the API is disabled for the workspace.
security:
- BearerAuth: []
summary: List compute environments compatible with a Studio
tags:
- studios
/studios/{sessionId}/lifespan:
post:
description: Extends the lifespan of the given Studio session ID.
operationId: ExtendDataStudioLifespan
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioDto'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: BadRequest
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the Studio is not found or when the API is disabled for the workspace.
security:
- BearerAuth: []
tags:
- studios
/studios/{sessionId}/start:
put:
description: Starts the given Studio session ID.
operationId: StartDataStudio
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
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/DataStudioStartRequest'
description: An optional overriding configuration for the studio to be started.
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioStartResponse'
description: OK
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the Studio is not found or when the API is disabled for the workspace.
security:
- BearerAuth: []
summary: Starts a Studio
tags:
- studios
/studios/{sessionId}/stop:
put:
description: Stops the given Studio session ID.
operationId: StopDataStudio
parameters:
- description: Studio session numeric identifier
in: path
name: sessionId
required: true
schema:
type: string
- description: Workspace numeric identifier
in: query
name: workspaceId
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioStopResponse'
description: OK
'403':
description: Operation not allowed.
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: NotFound, when the Studio is not found or when the API is disabled for the workspace.
security:
- BearerAuth: []
summary: Stop Studio
tags:
- studios
components:
schemas:
UserInfo:
properties:
avatar:
type: string
email:
type: string
id:
format: int64
type: integer
userName:
type: string
type: object
ComputeEnv.Status:
enum:
- CREATING
- AVAILABLE
- DISABLED
- DELETING
- ERRORED
- INVALID
- DELETED
type: string
DataStudioProgressStep:
properties:
message:
type: string
status:
$ref: '#/components/schemas/DataStudioProgressStep.Status'
warnings:
items:
type: string
type: array
type: object
DataStudioStatus:
enum:
- starting
- running
- stopping
- stopped
- errored
- building
- buildFailed
type: string
x-enum-varnames:
- starting
- running
- stopping
- stopped
- errored
- building
- buildFailed
DataStudioListResponse:
properties:
studios:
items:
$ref: '#/components/schemas/DataStudioDto'
type: array
totalSize:
format: int64
type: integer
required:
- studios
- totalSize
type: object
DataStudioVersionStatus:
enum:
- recommended
- deprecated
- experimental
- unsupported
type: string
x-enum-varnames:
- recommended
- deprecated
- experimental
- unsupported
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
DataStudioTemplate:
properties:
icon:
type: string
repository:
type: string
status:
$ref: '#/components/schemas/DataStudioVersionStatus'
tool:
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
DataStudioCreateRequest:
properties:
computeEnvId:
minLength: 1
type: string
configuration:
$ref: '#/components/schemas/DataStudioConfiguration'
dataStudioToolUrl:
type: string
description:
maxLength: 2048
type: string
initialCheckpointId:
format: int64
type: integer
isPrivate:
type: boolean
labelIds:
items:
format: int64
type: integer
nullable: true
type: array
name:
maxLength: 80
minLength: 1
type: string
remoteConfig:
allOf:
- $ref: '#/components/schemas/StudioRemoteConfiguration'
nullable: true
spot:
nullable: true
type: boolean
required:
- computeEnvId
- name
type: object
StudioRemoteConfiguration:
properties:
commitId:
nullable: true
type: string
repository:
type: string
revision:
nullable: true
type: string
required:
- repository
type: object
DataStudioStopReason:
enum:
- CREDITS_RUN_OUT
- LIFESPAN_EXPIRED
- SPOT_RECLAMATION
- NO_STATS_AVAIL
type: string
DataStudioQueryAttribute:
enum:
- labels
type: string
x-enum-varnames:
- labels
DataStudioCheckpointDto:
properties:
author:
$ref: '#/components/schemas/UserInfo'
dateCreated:
format: date-time
type: string
dateSaved:
format: date-time
type: string
id:
format: int64
type: integer
name:
type: string
path:
type: string
status:
$ref: '#/components/schemas/StudioCheckpointStatus'
required:
- author
- dateCreated
- dateSaved
- id
- name
- path
- status
type: object
DataLinkType:
enum:
- bucket
type: string
x-enum-varnames:
- bucket
DataStudioTemplatesListResponse:
properties:
templates:
items:
$ref: '#/components/schemas/DataStudioTemplate'
type: array
totalSize:
format: int64
type: integer
required:
- templates
- totalSize
type: object
DataStudioListCheckpointsResponse:
properties:
checkpoints:
items:
$ref: '#/components/schemas/DataStudioCheckpointDto'
type: array
totalSize:
format: int64
type: integer
required:
- checkpoints
- totalSize
type: object
DataStudioStopResponse:
properties:
jobSubmitted:
type: boolean
sessionId:
type: string
statusInfo:
$ref: '#/components/schemas/DataStudioStatusInfo'
required:
- jobSubmitted
- sessionId
- statusInfo
type: object
DataLinkCredentials:
properties:
id:
type: string
name:
type: string
provider:
$ref: '#/components/schemas/DataLinkProvider'
required:
- id
- name
- provider
type: object
DataStudioStatusInfo:
properties:
lastUpdate:
format: date-time
type: string
message:
type: string
status:
$ref: '#/components/schemas/DataStudioStatus'
stopReason:
$ref: '#/components/schemas/DataStudioStopReason'
type: object
DataStudioCheckpointUpdateRequest:
properties:
name:
type: string
type: object
DataStudioStartRequest:
properties:
configuration:
allOf:
- $ref: '#/components/schemas/DataStudioConfiguration'
nullable: true
description:
nullable: true
type: string
labelIds:
items:
format: int64
type: integer
nullable: true
type: array
name:
maxLength: 80
minLength: 1
nullable: true
type: string
spot:
nullable: true
type: boolean
type: object
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
DataLinkDto:
properties:
credentials:
items:
$ref: '#/components/schemas/DataLinkCredentials'
type: array
description:
type: string
hidden:
type: boolean
id:
type: string
message:
type: string
name:
type: string
provider:
$ref: '#/components/schemas/DataLinkProvider'
publicAccessible:
type: boolean
region:
type: string
resourceRef:
type: string
status:
allOf:
- $ref: '#/components/schemas/DataLink.Status'
readOnly: true
type:
$ref: '#/components/schemas/DataLinkType'
type: object
ErrorResponse:
properties:
message:
type: string
required:
- message
type: object
ListComputeEnvsResponse:
properties:
computeEnvs:
items:
$ref: '#/components/schemas/ListComputeEnvsResponse.Entry'
type: array
type: object
DataStudioMountedLinksResponse:
properties:
dataLinkIds:
items:
type: string
type: array
type: object
DataStudioDto.ParentCheckpoint:
properties:
checkpointId:
format: int64
type: integer
checkpointName:
type: string
sessionId:
type: string
studioName:
type: string
type: object
DataStudioStartResponse:
properties:
jobSubmitted:
type: boolean
sessionId:
type: string
statusInfo:
$ref: '#/components/schemas/DataStudioStatusInfo'
required:
- jobSubmitted
- sessionId
- sta
# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/seqera-labs/refs/heads/main/openapi/seqera-labs-studios-api-openapi.yml