Seqera Labs workspaces API
Workspaces in an organization context
Workspaces in an organization context
openapi: 3.0.1
info:
contact:
email: info@seqera.io
url: https://seqera.io
description: Seqera Platform services API
title: Seqera actions workspaces API
version: 1.181.0
tags:
- description: Workspaces in an organization context
name: workspaces
paths:
/orgs/{orgId}/workspaces:
get:
description: Lists the organization workspaces in `orgId` to which the requesting user belongs.
operationId: ListWorkspaces
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListWorkspacesResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: List organization workspaces
tags:
- workspaces
post:
description: Creates a new organization workspace.
operationId: CreateWorkspace
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWorkspaceRequest'
description: Workspace create request
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWorkspaceResponse'
description: OK
'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: Create workspace
tags:
- workspaces
/orgs/{orgId}/workspaces/validate:
get:
description: Confirms the validity of the given workspace name. Append `?name=<your_workspace_name>`.
operationId: ValidateWorkspaceName
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace 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 workspace name
tags:
- workspaces
/orgs/{orgId}/workspaces/{workspaceId}:
delete:
description: Deletes the workspace identified by the given `workspaceId`.
operationId: DeleteWorkspace
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
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: Delete workspace
tags:
- workspaces
get:
description: Retrieves the details of the workspace identified by the given `workspaceId`.
operationId: DescribeWorkspace
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DescribeWorkspaceResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: Describe workspace
tags:
- workspaces
put:
description: Updates the details of the workspace identified by the given `workspaceId`.
operationId: UpdateWorkspace
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWorkspaceRequest'
description: Workspace update request
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DescribeWorkspaceResponse'
description: OK
'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 name
security:
- BearerAuth: []
summary: Update workspace
tags:
- workspaces
/orgs/{orgId}/workspaces/{workspaceId}/participants:
delete:
description: Removes the requesting user from the given workspace.
operationId: LeaveWorkspaceParticipant
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
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: Leave workspace
tags:
- workspaces
get:
description: Lists the participants of the workspace identified by the given `workspaceId`.
operationId: ListWorkspaceParticipants
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
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
- description: Filter search parameter
in: query
name: search
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListParticipantsResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: List workspace participants
tags:
- workspaces
/orgs/{orgId}/workspaces/{workspaceId}/participants/add:
put:
description: Adds a new participant to the workspace identified by the given `workspaceId`.
operationId: CreateWorkspaceParticipant
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AddParticipantRequest'
description: Participant addition request
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AddParticipantResponse'
description: OK
'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 or collaborator not permitted for organization with active SSO
security:
- BearerAuth: []
summary: Create workspace participant
tags:
- workspaces
/orgs/{orgId}/workspaces/{workspaceId}/participants/{participantId}:
delete:
description: Deletes the given participant from the given workspace.
operationId: DeleteWorkspaceParticipant
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
- description: Participant numeric identifier
in: path
name: participantId
required: true
schema:
format: int64
type: integer
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: Delete workspace participant
tags:
- workspaces
/orgs/{orgId}/workspaces/{workspaceId}/participants/{participantId}/role:
put:
description: Updates the role of the given participant in the given workspace.
operationId: UpdateWorkspaceParticipantRole
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
- description: Participant numeric identifier
in: path
name: participantId
required: true
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateParticipantRoleRequest'
description: Participant role 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
security:
- BearerAuth: []
summary: Update participant role
tags:
- workspaces
/orgs/{orgId}/workspaces/{workspaceId}/settings/studios:
get:
description: Retrieves the Studios settings of the workspace identified by the given `workspaceId`.
operationId: FindDataStudiosWorkspaceSettings
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWorkspaceRequest'
description: Workspace update request
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioWorkspaceSettingsResponse'
description: OK
'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: List workspace Studios settings
tags:
- workspaces
put:
description: Updates the Studios settings of the workspace identified by the given `workspaceId`.
operationId: UpdateDataStudiosWorkspaceSettings
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DataStudioWorkspaceSettingsRequest'
description: Workspace 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 workspace Studios settings
tags:
- workspaces
/orgs/{orgId}/workspaces/{workspaceId}/users/{userId}:
delete:
description: Deletes the given user (member or collaborator) from the given workspace.
operationId: DeleteWorkspaceUser
parameters:
- description: Organization numeric identifier
in: path
name: orgId
required: true
schema:
format: int64
type: integer
- description: Workspace numeric identifier
in: path
name: workspaceId
required: true
schema:
format: int64
type: integer
- description: User numeric identifier
in: path
name: userId
required: true
schema:
format: int64
type: integer
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: Delete workspace user
tags:
- workspaces
/user/{userId}/workspaces:
get:
description: Lists the workspaces and organizations to which the user identified by the given `userId` belongs.
operationId: ListWorkspacesUser
parameters:
- description: User numeric identifier
in: path
name: userId
required: true
schema:
format: int64
type: integer
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ListWorkspacesAndOrgResponse'
description: OK
'400':
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
description: Bad request
'403':
description: Operation not allowed
security:
- BearerAuth: []
summary: List user workspaces and organizations
tags:
- workspaces
components:
schemas:
OrgAndWorkspaceDto:
properties:
orgId:
format: int64
type: integer
orgLogoUrl:
type: string
orgName:
type: string
orgType:
$ref: '#/components/schemas/OrgType'
roles:
items:
type: string
type: array
visibility:
$ref: '#/components/schemas/Visibility'
workspaceFullName:
type: string
workspaceId:
format: int64
type: integer
workspaceName:
type: string
type: object
CreateWorkspaceResponse:
properties:
workspace:
$ref: '#/components/schemas/Workspace'
type: object
Workspace:
properties:
dateCreated:
format: date-time
type: string
description:
maxLength: 1000
type: string
fullName:
maxLength: 100
type: string
id:
format: int64
nullable: true
type: integer
lastUpdated:
format: date-time
type: string
name:
maxLength: 40
pattern: ^[a-zA-Z\d](?:[a-zA-Z\d]|[-_](?=[a-zA-Z\d])){1,38}$
type: string
visibility:
$ref: '#/components/schemas/Visibility'
required:
- fullName
- name
- visibility
type: object
DataStudioWorkspaceSettingsResponse:
properties:
containerRepository:
nullable: true
type: string
lifespanHours:
format: int32
type: integer
nameStrategy:
nullable: true
type: string
orgId:
format: int64
type: integer
privateStudioByDefault:
type: boolean
wspId:
format: int64
type: integer
type: object
ParticipantResponseDto:
properties:
email:
type: string
firstName:
type: string
lastName:
type: string
memberId:
format: int64
type: integer
orgRole:
$ref: '#/components/schemas/OrgRole'
participantId:
format: int64
type: integer
teamAvatarUrl:
type: string
teamId:
format: int64
type: integer
teamName:
type: string
type:
$ref: '#/components/schemas/ParticipantType'
userAvatarUrl:
type: string
userName:
type: string
wspRole:
type: string
type: object
AddParticipantResponse:
properties:
participant:
$ref: '#/components/schemas/ParticipantResponseDto'
type: object
ListWorkspacesResponse:
properties:
workspaces:
items:
$ref: '#/components/schemas/WorkspaceDbDto'
type: array
type: object
UpdateParticipantRoleRequest:
properties:
role:
type: string
type: object
ErrorResponse:
properties:
message:
type: string
required:
- message
type: object
ParticipantType:
enum:
- MEMBER
- TEAM
- COLLABORATOR
type: string
Visibility:
enum:
- PRIVATE
- SHARED
type: string
OrgRole:
enum:
- owner
- member
- collaborator
type: string
x-enum-varnames:
- owner
- member
- collaborator
ListParticipantsResponse:
properties:
participants:
items:
$ref: '#/components/schemas/ParticipantResponseDto'
type: array
totalSize:
format: int64
type: integer
type: object
AddParticipantRequest:
properties:
memberId:
format: int64
type: integer
teamId:
format: int64
type: integer
userNameOrEmail:
type: string
type: object
ListWorkspacesAndOrgResponse:
properties:
orgsAndWorkspaces:
items:
$ref: '#/components/schemas/OrgAndWorkspaceDto'
type: array
type: object
CreateWorkspaceRequest:
properties:
workspace:
$ref: '#/components/schemas/Workspace'
type: object
OrgType:
enum:
- academic
- evaluating
- pro
- basic
- internal
type: string
x-enum-varnames:
- academic
- evaluating
- pro
- basic
- internal
DescribeWorkspaceResponse:
properties:
workspace:
$ref: '#/components/schemas/Workspace'
type: object
WorkspaceDbDto:
properties:
description:
type: string
fullName:
type: string
id:
format: int64
type: integer
name:
type: string
visibility:
$ref: '#/components/schemas/Visibility'
type: object
DataStudioWorkspaceSettingsRequest:
properties:
containerRepository:
description: Container repository where Wave pushes images built for Studios in this workspace (e.g. 'cr.seqera.io/my-org/studios'). When null, the platform default is used.
nullable: true
type: string
lifespanHours:
description: Maximum number of hours a Studio session may run before it is automatically stopped. Use 0 for unlimited lifespan.
format: int32
type: integer
nameStrategy:
description: Wave image naming strategy applied to container images built for Studios in this workspace. When null, the platform default strategy is used.
enum:
- none
- tagPrefix
- imageSuffix
nullable: true
type: string
privateStudioByDefault:
description: When true, newly created Studio sessions are private by default and only accessible to their creator.
type: boolean
type: object
UpdateWorkspaceRequest:
properties:
description:
type: string
fullName:
type: string
name:
type: string
visibility:
$ref: '#/components/schemas/Visibility'
type: object
securitySchemes:
BearerAuth:
bearerFormat: jwt
scheme: bearer
type: http