SDA GraphQL IDEaaS API Reference

🚀 Welcome to the SDA GraphQL IDEaaS API

The SDA GraphQL IDEaaS API Reference contains the Queries, Mutations and Types you can use to interact with the SDA IDEaaS API to manage IDEaaS sessions.

⚠️ This website only contains the Schema reference. For examples and more information, please visit the SDA GraphQL API Examples repository.

API Endpoints
# IDEaaS GraphQL API:
https://api.sdaconsole.io/ideaas/v1/graphql
Headers
# The token you received from the SDA Console or the API
Authorization: Bearer <YOUR_TOKEN_HERE>

Queries

readAllDesktops

Response

Returns [DesktopType!]!

Example

Query
query ReadAllDesktops {
  readAllDesktops {
    objectIdAttr
    keyAttrs
    aggregationKeyAttr
    parentObjectClass
    objectType
    objectVersion
    creationTimestamp
    updateTimestamp
    correlationId
    tenantId
    creationUserId
    updateUserId
    deleteUserId
    groupId
    desktopId
    status
    instanceId
    ec2InstanceId
    fleetType
    fleetKey
    region
    name
    statusChangedAt
    instanceType
    cpuCount
    memoryTotalGb
    diskTotalGb
    diskAvailableGb
    vmStatus
    websocketChannel
    agentUpdating
    agentVersion
  }
}
Response
{
  "data": {
    "readAllDesktops": [
      {
        "objectIdAttr": "abc123",
        "keyAttrs": ["abc123"],
        "aggregationKeyAttr": "abc123",
        "parentObjectClass": {},
        "objectType": "xyz789",
        "objectVersion": 987,
        "creationTimestamp": "2007-12-03T10:15:30Z",
        "updateTimestamp": "2007-12-03T10:15:30Z",
        "correlationId": "abc123",
        "tenantId": "abc123",
        "creationUserId": "abc123",
        "updateUserId": "abc123",
        "deleteUserId": "xyz789",
        "groupId": "abc123",
        "desktopId": "xyz789",
        "status": "PROVISIONING",
        "instanceId": "xyz789",
        "ec2InstanceId": "xyz789",
        "fleetType": "IDE",
        "fleetKey": "xyz789",
        "region": "abc123",
        "name": "abc123",
        "statusChangedAt": "abc123",
        "instanceType": "xyz789",
        "cpuCount": 123,
        "memoryTotalGb": 123.45,
        "diskTotalGb": 987.65,
        "diskAvailableGb": 987.65,
        "vmStatus": "RUNNING",
        "websocketChannel": "abc123",
        "agentUpdating": true,
        "agentVersion": "xyz789"
      }
    ]
  }
}

readAllSessionRecordings

Response

Returns [SessionRecordingType!]!

Example

Query
query ReadAllSessionRecordings {
  readAllSessionRecordings {
    sessionRecordingId
    sessionId
    sessionRecordingFile {
      fileName
      fileSize
      fileExtension
      fileKey
      fileDownloadUrl
      fileUploadUrl
    }
    status
    duration
    createdAtTimestampMs
    updatedAtTimestampMs
    creationUserId
    plcVendor
    ideConfigId
    failureReason
    lastGoodMs
    thumbnailKey
    thumbnailUrl
    playbackUrl
  }
}
Response
{
  "data": {
    "readAllSessionRecordings": [
      {
        "sessionRecordingId": "abc123",
        "sessionId": "xyz789",
        "sessionRecordingFile": SessionRecordingFileType,
        "status": "PENDING",
        "duration": 123,
        "createdAtTimestampMs": {},
        "updatedAtTimestampMs": {},
        "creationUserId": "abc123",
        "plcVendor": "abc123",
        "ideConfigId": "abc123",
        "failureReason": "abc123",
        "lastGoodMs": 123,
        "thumbnailKey": "abc123",
        "thumbnailUrl": "abc123",
        "playbackUrl": "xyz789"
      }
    ]
  }
}

readAllSessions

Response

Returns a PaginatedSessionResponseType!

Arguments
Name Description
pagination - PaginationInputType!
statuses - [SessionStatus!] Default = null
ownerIds - [String!] Default = null
projectIds - [String!] Default = null
hasRecording - Boolean Default = null
startTimestamp - String Default = null
endTimestamp - String Default = null

Example

Query
query ReadAllSessions(
  $pagination: PaginationInputType!,
  $statuses: [SessionStatus!],
  $ownerIds: [String!],
  $projectIds: [String!],
  $hasRecording: Boolean,
  $startTimestamp: String,
  $endTimestamp: String
) {
  readAllSessions(
    pagination: $pagination,
    statuses: $statuses,
    ownerIds: $ownerIds,
    projectIds: $projectIds,
    hasRecording: $hasRecording,
    startTimestamp: $startTimestamp,
    endTimestamp: $endTimestamp
  ) {
    items {
      objectVersion
      creationUserId
      updateUserId
      deleteUserId
      creationTimestamp
      updateTimestamp
      sessionId
      reservationId
      meteringReservationId
      instanceId
      status
      coldStartTriggered
      payloadSentAt
      fleetType
      windowsPermissionScope
      fleetKey
      region
      projectId
      versionId
      vendor
      ideConfigId
      ideVersion
      failureReason
      statusChangedAt
      sessionType
      sessionVisibility
      sessionStartTimestamp
      sessionEndTimestamp
      sessionStartTimestampMs
      sessionEndTimestampMs
      sessionDurationMs
      sessionMetadata
      supportedIdes
      language
      idleTime
      hasRecording
      readOnly
      tenantId
      websocketChannel
      streamingUrl
    }
    pages
    itemCount
  }
}
Variables
{
  "pagination": PaginationInputType,
  "statuses": ["ul"],
  "ownerIds": null,
  "projectIds": null,
  "hasRecording": null,
  "startTimestamp": null,
  "endTimestamp": null
}
Response
{
  "data": {
    "readAllSessions": {
      "items": [SessionResponseType],
      "pages": 987,
      "itemCount": 987
    }
  }
}

readAllSessionsByTenantId

Response

Returns a PaginatedSessionResponseType!

Arguments
Name Description
tenantId - String!
pagination - PaginationInputType!
statuses - [SessionStatus!] Default = null

Example

Query
query ReadAllSessionsByTenantId(
  $tenantId: String!,
  $pagination: PaginationInputType!,
  $statuses: [SessionStatus!]
) {
  readAllSessionsByTenantId(
    tenantId: $tenantId,
    pagination: $pagination,
    statuses: $statuses
  ) {
    items {
      objectVersion
      creationUserId
      updateUserId
      deleteUserId
      creationTimestamp
      updateTimestamp
      sessionId
      reservationId
      meteringReservationId
      instanceId
      status
      coldStartTriggered
      payloadSentAt
      fleetType
      windowsPermissionScope
      fleetKey
      region
      projectId
      versionId
      vendor
      ideConfigId
      ideVersion
      failureReason
      statusChangedAt
      sessionType
      sessionVisibility
      sessionStartTimestamp
      sessionEndTimestamp
      sessionStartTimestampMs
      sessionEndTimestampMs
      sessionDurationMs
      sessionMetadata
      supportedIdes
      language
      idleTime
      hasRecording
      readOnly
      tenantId
      websocketChannel
      streamingUrl
    }
    pages
    itemCount
  }
}
Variables
{
  "tenantId": "abc123",
  "pagination": PaginationInputType,
  "statuses": ["ul"]
}
Response
{
  "data": {
    "readAllSessionsByTenantId": {
      "items": [SessionResponseType],
      "pages": 123,
      "itemCount": 123
    }
  }
}

readDesktop

Response

Returns a DesktopType!

Arguments
Name Description
desktopId - String!

Example

Query
query ReadDesktop($desktopId: String!) {
  readDesktop(desktopId: $desktopId) {
    objectIdAttr
    keyAttrs
    aggregationKeyAttr
    parentObjectClass
    objectType
    objectVersion
    creationTimestamp
    updateTimestamp
    correlationId
    tenantId
    creationUserId
    updateUserId
    deleteUserId
    groupId
    desktopId
    status
    instanceId
    ec2InstanceId
    fleetType
    fleetKey
    region
    name
    statusChangedAt
    instanceType
    cpuCount
    memoryTotalGb
    diskTotalGb
    diskAvailableGb
    vmStatus
    websocketChannel
    agentUpdating
    agentVersion
  }
}
Variables
{"desktopId": "abc123"}
Response
{
  "data": {
    "readDesktop": {
      "objectIdAttr": "abc123",
      "keyAttrs": ["abc123"],
      "aggregationKeyAttr": "abc123",
      "parentObjectClass": {},
      "objectType": "abc123",
      "objectVersion": 987,
      "creationTimestamp": "2007-12-03T10:15:30Z",
      "updateTimestamp": "2007-12-03T10:15:30Z",
      "correlationId": "xyz789",
      "tenantId": "abc123",
      "creationUserId": "xyz789",
      "updateUserId": "abc123",
      "deleteUserId": "xyz789",
      "groupId": "xyz789",
      "desktopId": "abc123",
      "status": "PROVISIONING",
      "instanceId": "abc123",
      "ec2InstanceId": "xyz789",
      "fleetType": "IDE",
      "fleetKey": "abc123",
      "region": "xyz789",
      "name": "xyz789",
      "statusChangedAt": "xyz789",
      "instanceType": "abc123",
      "cpuCount": 123,
      "memoryTotalGb": 987.65,
      "diskTotalGb": 987.65,
      "diskAvailableGb": 987.65,
      "vmStatus": "RUNNING",
      "websocketChannel": "xyz789",
      "agentUpdating": true,
      "agentVersion": "xyz789"
    }
  }
}

readDesktopUsage

Response

Returns [DesktopUsageDayType!]!

Arguments
Name Description
desktopId - String!

Example

Query
query ReadDesktopUsage($desktopId: String!) {
  readDesktopUsage(desktopId: $desktopId) {
    date
    durationMs
  }
}
Variables
{"desktopId": "abc123"}
Response
{
  "data": {
    "readDesktopUsage": [
      {"date": "xyz789", "durationMs": 987}
    ]
  }
}

readHubConfig

Response

Returns a HubConfigType!

Example

Query
query ReadHubConfig {
  readHubConfig {
    hubConfigId
    recordingEnabled
    retentionDays
  }
}
Response
{
  "data": {
    "readHubConfig": {
      "hubConfigId": "xyz789",
      "recordingEnabled": true,
      "retentionDays": 987
    }
  }
}

readProjectLockStatus

Response

Returns a ProjectLockStatusType!

Arguments
Name Description
projectId - String!
versionId - String!

Example

Query
query ReadProjectLockStatus(
  $projectId: String!,
  $versionId: String!
) {
  readProjectLockStatus(
    projectId: $projectId,
    versionId: $versionId
  ) {
    isLocked
    lockedSince
    existingSessionId
  }
}
Variables
{
  "projectId": "abc123",
  "versionId": "abc123"
}
Response
{
  "data": {
    "readProjectLockStatus": {
      "isLocked": false,
      "lockedSince": "xyz789",
      "existingSessionId": "xyz789"
    }
  }
}

readSession

Response

Returns a SessionResponseType!

Arguments
Name Description
sessionId - String!

Example

Query
query ReadSession($sessionId: String!) {
  readSession(sessionId: $sessionId) {
    objectVersion
    creationUserId
    updateUserId
    deleteUserId
    creationTimestamp
    updateTimestamp
    sessionId
    reservationId
    meteringReservationId
    instanceId
    status
    coldStartTriggered
    payloadSentAt
    fleetType
    windowsPermissionScope
    fleetKey
    region
    projectId
    versionId
    vendor
    ideConfigId
    ideVersion
    failureReason
    statusChangedAt
    sessionType
    sessionVisibility
    sessionStartTimestamp
    sessionEndTimestamp
    sessionStartTimestampMs
    sessionEndTimestampMs
    sessionDurationMs
    sessionMetadata
    supportedIdes
    language
    idleTime
    hasRecording
    readOnly
    tenantId
    websocketChannel
    streamingUrl
  }
}
Variables
{"sessionId": "xyz789"}
Response
{
  "data": {
    "readSession": {
      "objectVersion": 987,
      "creationUserId": "abc123",
      "updateUserId": "abc123",
      "deleteUserId": "abc123",
      "creationTimestamp": "2007-12-03T10:15:30Z",
      "updateTimestamp": "2007-12-03T10:15:30Z",
      "sessionId": "xyz789",
      "reservationId": "abc123",
      "meteringReservationId": "xyz789",
      "instanceId": "abc123",
      "status": "PROVISIONING",
      "coldStartTriggered": false,
      "payloadSentAt": "abc123",
      "fleetType": "IDE",
      "windowsPermissionScope": "STANDARD",
      "fleetKey": "xyz789",
      "region": "abc123",
      "projectId": "abc123",
      "versionId": "abc123",
      "vendor": "xyz789",
      "ideConfigId": "abc123",
      "ideVersion": "abc123",
      "failureReason": "INSTANCE_OFFLINE",
      "statusChangedAt": "xyz789",
      "sessionType": "DEFAULT",
      "sessionVisibility": "DEFAULT",
      "sessionStartTimestamp": "abc123",
      "sessionEndTimestamp": "abc123",
      "sessionStartTimestampMs": {},
      "sessionEndTimestampMs": {},
      "sessionDurationMs": 987,
      "sessionMetadata": {},
      "supportedIdes": ["abc123"],
      "language": "abc123",
      "idleTime": 123,
      "hasRecording": true,
      "readOnly": true,
      "tenantId": "abc123",
      "websocketChannel": "xyz789",
      "streamingUrl": "abc123"
    }
  }
}

readSessionDevices

Response

Returns [String!]!

Arguments
Name Description
sessionId - String!

Example

Query
query ReadSessionDevices($sessionId: String!) {
  readSessionDevices(sessionId: $sessionId)
}
Variables
{"sessionId": "xyz789"}
Response
{"data": {"readSessionDevices": ["xyz789"]}}

readSessionLicenses

Response

Returns [String!]!

Arguments
Name Description
sessionId - String!

Example

Query
query ReadSessionLicenses($sessionId: String!) {
  readSessionLicenses(sessionId: $sessionId)
}
Variables
{"sessionId": "abc123"}
Response
{
  "data": {
    "readSessionLicenses": ["abc123"]
  }
}

readSessionRecording

Response

Returns a SessionRecordingType!

Arguments
Name Description
recordingId - String!

Example

Query
query ReadSessionRecording($recordingId: String!) {
  readSessionRecording(recordingId: $recordingId) {
    sessionRecordingId
    sessionId
    sessionRecordingFile {
      fileName
      fileSize
      fileExtension
      fileKey
      fileDownloadUrl
      fileUploadUrl
    }
    status
    duration
    createdAtTimestampMs
    updatedAtTimestampMs
    creationUserId
    plcVendor
    ideConfigId
    failureReason
    lastGoodMs
    thumbnailKey
    thumbnailUrl
    playbackUrl
  }
}
Variables
{"recordingId": "xyz789"}
Response
{
  "data": {
    "readSessionRecording": {
      "sessionRecordingId": "xyz789",
      "sessionId": "abc123",
      "sessionRecordingFile": SessionRecordingFileType,
      "status": "PENDING",
      "duration": 987,
      "createdAtTimestampMs": {},
      "updatedAtTimestampMs": {},
      "creationUserId": "abc123",
      "plcVendor": "xyz789",
      "ideConfigId": "xyz789",
      "failureReason": "xyz789",
      "lastGoodMs": 987,
      "thumbnailKey": "xyz789",
      "thumbnailUrl": "abc123",
      "playbackUrl": "abc123"
    }
  }
}

readSessionRecordingsBySession

Response

Returns [SessionRecordingType!]!

Arguments
Name Description
sessionId - String!
statuses - [RecordingStatus!] Default = null

Example

Query
query ReadSessionRecordingsBySession(
  $sessionId: String!,
  $statuses: [RecordingStatus!]
) {
  readSessionRecordingsBySession(
    sessionId: $sessionId,
    statuses: $statuses
  ) {
    sessionRecordingId
    sessionId
    sessionRecordingFile {
      fileName
      fileSize
      fileExtension
      fileKey
      fileDownloadUrl
      fileUploadUrl
    }
    status
    duration
    createdAtTimestampMs
    updatedAtTimestampMs
    creationUserId
    plcVendor
    ideConfigId
    failureReason
    lastGoodMs
    thumbnailKey
    thumbnailUrl
    playbackUrl
  }
}
Variables
{"sessionId": "abc123", "statuses": ["ul"]}
Response
{
  "data": {
    "readSessionRecordingsBySession": [
      {
        "sessionRecordingId": "abc123",
        "sessionId": "xyz789",
        "sessionRecordingFile": SessionRecordingFileType,
        "status": "PENDING",
        "duration": 123,
        "createdAtTimestampMs": {},
        "updatedAtTimestampMs": {},
        "creationUserId": "xyz789",
        "plcVendor": "abc123",
        "ideConfigId": "xyz789",
        "failureReason": "abc123",
        "lastGoodMs": 987,
        "thumbnailKey": "xyz789",
        "thumbnailUrl": "xyz789",
        "playbackUrl": "abc123"
      }
    ]
  }
}

Mutations

attachSessionLicense

Response

Returns an AttachSessionLicenseResponseType!

Arguments
Name Description
input - AttachSessionLicenseInput!

Example

Query
mutation AttachSessionLicense($input: AttachSessionLicenseInput!) {
  attachSessionLicense(input: $input) {
    sessionId
    licenseId
  }
}
Variables
{"input": AttachSessionLicenseInput}
Response
{
  "data": {
    "attachSessionLicense": {
      "sessionId": "xyz789",
      "licenseId": "abc123"
    }
  }
}

cancelSession

Response

Returns a CancelSessionResponseType!

Arguments
Name Description
input - CancelSessionInput!

Example

Query
mutation CancelSession($input: CancelSessionInput!) {
  cancelSession(input: $input) {
    sessionId
  }
}
Variables
{"input": CancelSessionInput}
Response
{
  "data": {
    "cancelSession": {"sessionId": "abc123"}
  }
}

connectSession

Response

Returns a StartSessionResponseType!

Arguments
Name Description
input - ConnectSessionInput!

Example

Query
mutation ConnectSession($input: ConnectSessionInput!) {
  connectSession(input: $input) {
    sessionId
    websocketChannel
    status
    streamingUrl
  }
}
Variables
{"input": ConnectSessionInput}
Response
{
  "data": {
    "connectSession": {
      "sessionId": "abc123",
      "websocketChannel": "abc123",
      "status": "PROVISIONING",
      "streamingUrl": "xyz789"
    }
  }
}

connectSessionDevice

Arguments
Name Description
input - ConnectSessionDeviceInput!

Example

Query
mutation ConnectSessionDevice($input: ConnectSessionDeviceInput!) {
  connectSessionDevice(input: $input) {
    sessionId
    deviceId
  }
}
Variables
{"input": ConnectSessionDeviceInput}
Response
{
  "data": {
    "connectSessionDevice": {
      "sessionId": "xyz789",
      "deviceId": "abc123"
    }
  }
}

createDesktop

Response

Returns a DesktopType!

Arguments
Name Description
input - CreateDesktopInput!

Example

Query
mutation CreateDesktop($input: CreateDesktopInput!) {
  createDesktop(input: $input) {
    objectIdAttr
    keyAttrs
    aggregationKeyAttr
    parentObjectClass
    objectType
    objectVersion
    creationTimestamp
    updateTimestamp
    correlationId
    tenantId
    creationUserId
    updateUserId
    deleteUserId
    groupId
    desktopId
    status
    instanceId
    ec2InstanceId
    fleetType
    fleetKey
    region
    name
    statusChangedAt
    instanceType
    cpuCount
    memoryTotalGb
    diskTotalGb
    diskAvailableGb
    vmStatus
    websocketChannel
    agentUpdating
    agentVersion
  }
}
Variables
{"input": CreateDesktopInput}
Response
{
  "data": {
    "createDesktop": {
      "objectIdAttr": "abc123",
      "keyAttrs": ["xyz789"],
      "aggregationKeyAttr": "xyz789",
      "parentObjectClass": {},
      "objectType": "abc123",
      "objectVersion": 123,
      "creationTimestamp": "2007-12-03T10:15:30Z",
      "updateTimestamp": "2007-12-03T10:15:30Z",
      "correlationId": "xyz789",
      "tenantId": "abc123",
      "creationUserId": "xyz789",
      "updateUserId": "abc123",
      "deleteUserId": "abc123",
      "groupId": "abc123",
      "desktopId": "abc123",
      "status": "PROVISIONING",
      "instanceId": "abc123",
      "ec2InstanceId": "abc123",
      "fleetType": "IDE",
      "fleetKey": "abc123",
      "region": "abc123",
      "name": "xyz789",
      "statusChangedAt": "xyz789",
      "instanceType": "xyz789",
      "cpuCount": 123,
      "memoryTotalGb": 987.65,
      "diskTotalGb": 123.45,
      "diskAvailableGb": 987.65,
      "vmStatus": "RUNNING",
      "websocketChannel": "xyz789",
      "agentUpdating": false,
      "agentVersion": "xyz789"
    }
  }
}

deleteDesktop

Response

Returns a Boolean!

Arguments
Name Description
desktopId - String!

Example

Query
mutation DeleteDesktop($desktopId: String!) {
  deleteDesktop(desktopId: $desktopId)
}
Variables
{"desktopId": "abc123"}
Response
{"data": {"deleteDesktop": false}}

detachSessionLicense

Arguments
Name Description
input - DetachSessionLicenseInput!

Example

Query
mutation DetachSessionLicense($input: DetachSessionLicenseInput!) {
  detachSessionLicense(input: $input) {
    sessionId
    licenseId
  }
}
Variables
{"input": DetachSessionLicenseInput}
Response
{
  "data": {
    "detachSessionLicense": {
      "sessionId": "xyz789",
      "licenseId": "abc123"
    }
  }
}

disconnectSessionDevice

Arguments
Name Description
input - DisconnectSessionDeviceInput!

Example

Query
mutation DisconnectSessionDevice($input: DisconnectSessionDeviceInput!) {
  disconnectSessionDevice(input: $input) {
    sessionId
    deviceId
  }
}
Variables
{"input": DisconnectSessionDeviceInput}
Response
{
  "data": {
    "disconnectSessionDevice": {
      "sessionId": "xyz789",
      "deviceId": "xyz789"
    }
  }
}

getRecordingPlaybackUrl

Response

Returns a PlaybackUrlResponseType!

Arguments
Name Description
recordingId - String!

Example

Query
mutation GetRecordingPlaybackUrl($recordingId: String!) {
  getRecordingPlaybackUrl(recordingId: $recordingId) {
    recordingId
    playbackUrl
    thumbnailUrl
  }
}
Variables
{"recordingId": "xyz789"}
Response
{
  "data": {
    "getRecordingPlaybackUrl": {
      "recordingId": "xyz789",
      "playbackUrl": "abc123",
      "thumbnailUrl": "abc123"
    }
  }
}

hibernateDesktop

Response

Returns a DesktopType!

Arguments
Name Description
desktopId - String!

Example

Query
mutation HibernateDesktop($desktopId: String!) {
  hibernateDesktop(desktopId: $desktopId) {
    objectIdAttr
    keyAttrs
    aggregationKeyAttr
    parentObjectClass
    objectType
    objectVersion
    creationTimestamp
    updateTimestamp
    correlationId
    tenantId
    creationUserId
    updateUserId
    deleteUserId
    groupId
    desktopId
    status
    instanceId
    ec2InstanceId
    fleetType
    fleetKey
    region
    name
    statusChangedAt
    instanceType
    cpuCount
    memoryTotalGb
    diskTotalGb
    diskAvailableGb
    vmStatus
    websocketChannel
    agentUpdating
    agentVersion
  }
}
Variables
{"desktopId": "xyz789"}
Response
{
  "data": {
    "hibernateDesktop": {
      "objectIdAttr": "abc123",
      "keyAttrs": ["abc123"],
      "aggregationKeyAttr": "abc123",
      "parentObjectClass": {},
      "objectType": "abc123",
      "objectVersion": 123,
      "creationTimestamp": "2007-12-03T10:15:30Z",
      "updateTimestamp": "2007-12-03T10:15:30Z",
      "correlationId": "abc123",
      "tenantId": "xyz789",
      "creationUserId": "abc123",
      "updateUserId": "xyz789",
      "deleteUserId": "abc123",
      "groupId": "xyz789",
      "desktopId": "xyz789",
      "status": "PROVISIONING",
      "instanceId": "abc123",
      "ec2InstanceId": "abc123",
      "fleetType": "IDE",
      "fleetKey": "abc123",
      "region": "xyz789",
      "name": "abc123",
      "statusChangedAt": "xyz789",
      "instanceType": "abc123",
      "cpuCount": 123,
      "memoryTotalGb": 987.65,
      "diskTotalGb": 123.45,
      "diskAvailableGb": 987.65,
      "vmStatus": "RUNNING",
      "websocketChannel": "xyz789",
      "agentUpdating": true,
      "agentVersion": "abc123"
    }
  }
}

startDesktopSession

Response

Returns a StartSessionResponseType!

Arguments
Name Description
input - StartDesktopSessionInput!

Example

Query
mutation StartDesktopSession($input: StartDesktopSessionInput!) {
  startDesktopSession(input: $input) {
    sessionId
    websocketChannel
    status
    streamingUrl
  }
}
Variables
{"input": StartDesktopSessionInput}
Response
{
  "data": {
    "startDesktopSession": {
      "sessionId": "abc123",
      "websocketChannel": "abc123",
      "status": "PROVISIONING",
      "streamingUrl": "abc123"
    }
  }
}

startSession

Response

Returns a StartSessionResponseType!

Arguments
Name Description
input - StartSessionInput!

Example

Query
mutation StartSession($input: StartSessionInput!) {
  startSession(input: $input) {
    sessionId
    websocketChannel
    status
    streamingUrl
  }
}
Variables
{"input": StartSessionInput}
Response
{
  "data": {
    "startSession": {
      "sessionId": "abc123",
      "websocketChannel": "abc123",
      "status": "PROVISIONING",
      "streamingUrl": "abc123"
    }
  }
}

stopDesktop

Response

Returns a DesktopType!

Arguments
Name Description
desktopId - String!

Example

Query
mutation StopDesktop($desktopId: String!) {
  stopDesktop(desktopId: $desktopId) {
    objectIdAttr
    keyAttrs
    aggregationKeyAttr
    parentObjectClass
    objectType
    objectVersion
    creationTimestamp
    updateTimestamp
    correlationId
    tenantId
    creationUserId
    updateUserId
    deleteUserId
    groupId
    desktopId
    status
    instanceId
    ec2InstanceId
    fleetType
    fleetKey
    region
    name
    statusChangedAt
    instanceType
    cpuCount
    memoryTotalGb
    diskTotalGb
    diskAvailableGb
    vmStatus
    websocketChannel
    agentUpdating
    agentVersion
  }
}
Variables
{"desktopId": "abc123"}
Response
{
  "data": {
    "stopDesktop": {
      "objectIdAttr": "abc123",
      "keyAttrs": ["abc123"],
      "aggregationKeyAttr": "xyz789",
      "parentObjectClass": {},
      "objectType": "abc123",
      "objectVersion": 123,
      "creationTimestamp": "2007-12-03T10:15:30Z",
      "updateTimestamp": "2007-12-03T10:15:30Z",
      "correlationId": "abc123",
      "tenantId": "abc123",
      "creationUserId": "xyz789",
      "updateUserId": "xyz789",
      "deleteUserId": "abc123",
      "groupId": "xyz789",
      "desktopId": "abc123",
      "status": "PROVISIONING",
      "instanceId": "abc123",
      "ec2InstanceId": "xyz789",
      "fleetType": "IDE",
      "fleetKey": "xyz789",
      "region": "abc123",
      "name": "xyz789",
      "statusChangedAt": "abc123",
      "instanceType": "xyz789",
      "cpuCount": 123,
      "memoryTotalGb": 123.45,
      "diskTotalGb": 123.45,
      "diskAvailableGb": 123.45,
      "vmStatus": "RUNNING",
      "websocketChannel": "xyz789",
      "agentUpdating": false,
      "agentVersion": "xyz789"
    }
  }
}

unhibernateDesktop

Response

Returns a DesktopType!

Arguments
Name Description
desktopId - String!

Example

Query
mutation UnhibernateDesktop($desktopId: String!) {
  unhibernateDesktop(desktopId: $desktopId) {
    objectIdAttr
    keyAttrs
    aggregationKeyAttr
    parentObjectClass
    objectType
    objectVersion
    creationTimestamp
    updateTimestamp
    correlationId
    tenantId
    creationUserId
    updateUserId
    deleteUserId
    groupId
    desktopId
    status
    instanceId
    ec2InstanceId
    fleetType
    fleetKey
    region
    name
    statusChangedAt
    instanceType
    cpuCount
    memoryTotalGb
    diskTotalGb
    diskAvailableGb
    vmStatus
    websocketChannel
    agentUpdating
    agentVersion
  }
}
Variables
{"desktopId": "xyz789"}
Response
{
  "data": {
    "unhibernateDesktop": {
      "objectIdAttr": "abc123",
      "keyAttrs": ["xyz789"],
      "aggregationKeyAttr": "xyz789",
      "parentObjectClass": {},
      "objectType": "abc123",
      "objectVersion": 987,
      "creationTimestamp": "2007-12-03T10:15:30Z",
      "updateTimestamp": "2007-12-03T10:15:30Z",
      "correlationId": "xyz789",
      "tenantId": "xyz789",
      "creationUserId": "abc123",
      "updateUserId": "abc123",
      "deleteUserId": "xyz789",
      "groupId": "xyz789",
      "desktopId": "xyz789",
      "status": "PROVISIONING",
      "instanceId": "abc123",
      "ec2InstanceId": "xyz789",
      "fleetType": "IDE",
      "fleetKey": "abc123",
      "region": "abc123",
      "name": "xyz789",
      "statusChangedAt": "abc123",
      "instanceType": "abc123",
      "cpuCount": 123,
      "memoryTotalGb": 123.45,
      "diskTotalGb": 123.45,
      "diskAvailableGb": 123.45,
      "vmStatus": "RUNNING",
      "websocketChannel": "abc123",
      "agentUpdating": false,
      "agentVersion": "xyz789"
    }
  }
}

updateHubConfig

Response

Returns a HubConfigType!

Arguments
Name Description
input - UpdateHubConfigInput!

Example

Query
mutation UpdateHubConfig($input: UpdateHubConfigInput!) {
  updateHubConfig(input: $input) {
    hubConfigId
    recordingEnabled
    retentionDays
  }
}
Variables
{"input": UpdateHubConfigInput}
Response
{
  "data": {
    "updateHubConfig": {
      "hubConfigId": "xyz789",
      "recordingEnabled": true,
      "retentionDays": 123
    }
  }
}

Types

AttachSessionLicenseInput

Fields
Input Field Description
sessionId - String!
product - String!
ideVersion - String
Example
{
  "sessionId": "abc123",
  "product": "xyz789",
  "ideVersion": "xyz789"
}

AttachSessionLicenseResponseType

Fields
Field Name Description
sessionId - String!
licenseId - String!
Example
{
  "sessionId": "abc123",
  "licenseId": "abc123"
}

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

CancelSessionInput

Fields
Input Field Description
sessionId - String!
Example
{"sessionId": "abc123"}

CancelSessionResponseType

Fields
Field Name Description
sessionId - String!
Example
{"sessionId": "xyz789"}

ConnectSessionDeviceInput

Fields
Input Field Description
sessionId - String!
deviceId - String!
Example
{
  "sessionId": "abc123",
  "deviceId": "xyz789"
}

ConnectSessionDeviceResponseType

Fields
Field Name Description
sessionId - String!
deviceId - String!
Example
{
  "sessionId": "abc123",
  "deviceId": "abc123"
}

ConnectSessionInput

Fields
Input Field Description
sessionId - String!
Example
{"sessionId": "abc123"}

CreateDesktopInput

Fields
Input Field Description
name - String!
groupId - String
Example
{
  "name": "abc123",
  "groupId": "abc123"
}

DateTime

Description

Date with time (isoformat)

Example
"2007-12-03T10:15:30Z"

DesktopStatus

Values
Enum Value Description

PROVISIONING

ACTIVE

FAILED

DELETING

DELETED

Example
"PROVISIONING"

DesktopType

Fields
Field Name Description
objectIdAttr - String!
keyAttrs - [String!]!
aggregationKeyAttr - String!
parentObjectClass - JSON
objectType - String!
objectVersion - Int
creationTimestamp - DateTime
updateTimestamp - DateTime
correlationId - String
tenantId - String!
creationUserId - String
updateUserId - String
deleteUserId - String
groupId - String
desktopId - String!
status - DesktopStatus!
instanceId - String The bound Instance's own instance_id, once provisioning completes.
ec2InstanceId - String Denormalized from the bound Instance -- lets desktop lifecycle use cases (stop/hibernate/unhibernate/delete) call HostClient directly without a repository join back to ec2_instance.
fleetType - FleetType!
fleetKey - String!
region - String
name - String User-facing label for this desktop.
statusChangedAt - String
instanceType - String The bound EC2 instance's type (e.g. 'm5.xlarge').
cpuCount - Int
memoryTotalGb - Float
diskTotalGb - Float
diskAvailableGb - Float
vmStatus - DesktopVmStatus
websocketChannel - String
agentUpdating - Boolean!
agentVersion - String
Example
{
  "objectIdAttr": "abc123",
  "keyAttrs": ["xyz789"],
  "aggregationKeyAttr": "xyz789",
  "parentObjectClass": {},
  "objectType": "abc123",
  "objectVersion": 987,
  "creationTimestamp": "2007-12-03T10:15:30Z",
  "updateTimestamp": "2007-12-03T10:15:30Z",
  "correlationId": "abc123",
  "tenantId": "xyz789",
  "creationUserId": "xyz789",
  "updateUserId": "xyz789",
  "deleteUserId": "abc123",
  "groupId": "xyz789",
  "desktopId": "xyz789",
  "status": "PROVISIONING",
  "instanceId": "abc123",
  "ec2InstanceId": "abc123",
  "fleetType": "IDE",
  "fleetKey": "xyz789",
  "region": "abc123",
  "name": "abc123",
  "statusChangedAt": "abc123",
  "instanceType": "xyz789",
  "cpuCount": 987,
  "memoryTotalGb": 123.45,
  "diskTotalGb": 123.45,
  "diskAvailableGb": 987.65,
  "vmStatus": "RUNNING",
  "websocketChannel": "xyz789",
  "agentUpdating": true,
  "agentVersion": "xyz789"
}

DesktopUsageDayType

Fields
Field Name Description
date - String!
durationMs - Int!
Example
{"date": "xyz789", "durationMs": 987}

DesktopVmStatus

Values
Enum Value Description

RUNNING

STOPPED

HIBERNATED

TERMINATED

UNKNOWN

Example
"RUNNING"

DetachSessionLicenseInput

Fields
Input Field Description
sessionId - String!
licenseId - String!
ideVersion - String
Example
{
  "sessionId": "abc123",
  "licenseId": "abc123",
  "ideVersion": "abc123"
}

DetachSessionLicenseResponseType

Fields
Field Name Description
sessionId - String!
licenseId - String!
Example
{
  "sessionId": "xyz789",
  "licenseId": "abc123"
}

DisconnectSessionDeviceInput

Fields
Input Field Description
sessionId - String!
deviceId - String!
Example
{
  "sessionId": "xyz789",
  "deviceId": "xyz789"
}

DisconnectSessionDeviceResponseType

Fields
Field Name Description
sessionId - String!
deviceId - String!
Example
{
  "sessionId": "abc123",
  "deviceId": "xyz789"
}

FleetType

Values
Enum Value Description

IDE

DESKTOP

Example
"IDE"

Float

Description

The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.

Example
987.65

HubConfigType

Fields
Field Name Description
hubConfigId - String! Fixed singleton identifier — always 'default' for a given tenant.
recordingEnabled - Boolean!
retentionDays - Int!
Example
{
  "hubConfigId": "abc123",
  "recordingEnabled": true,
  "retentionDays": 987
}

Int

Description

The Int scalar type represents non-fractional signed whole numeric values. Int can represent values between -(2^31) and 2^31 - 1.

Example
987

JSON

Description

The JSON scalar type represents JSON values as specified by ECMA-404.

Example
{}

Long

Description

64-bit signed integer.

Example
{}

PaginatedSessionResponseType

Fields
Field Name Description
items - [SessionResponseType!]!
pages - Int!
itemCount - Int!
Example
{
  "items": [SessionResponseType],
  "pages": 123,
  "itemCount": 987
}

PaginationInputType

Fields
Input Field Description
page - Int!
pageSize - Int!
Example
{"page": 987, "pageSize": 987}

PlaybackUrlResponseType

Fields
Field Name Description
recordingId - String!
playbackUrl - String!
thumbnailUrl - String
Example
{
  "recordingId": "abc123",
  "playbackUrl": "xyz789",
  "thumbnailUrl": "xyz789"
}

ProjectLockStatusType

Fields
Field Name Description
isLocked - Boolean!
lockedSince - String
existingSessionId - String Set when the requesting user already has an active (non-terminal) session for this exact project -- lets the frontend offer to reconnect to it instead of opening a second one.
Example
{
  "isLocked": false,
  "lockedSince": "xyz789",
  "existingSessionId": "abc123"
}

RecordingStatus

Values
Enum Value Description

PENDING

UPLOADING

PROCESSING

READY

CORRUPTED

FAILED

EXPIRED

Example
"PENDING"

SessionFailureReason

Values
Enum Value Description

INSTANCE_OFFLINE

LICENSE

LICENSE_PERMISSION

PROJECT_PERMISSION

PROJECT_LOCKED

PROVISIONING

INSTANCE_ALLOCATION

BILLING

USER_CANCELLED

OTHER

Example
"INSTANCE_OFFLINE"

SessionRecordingFileType

Fields
Field Name Description
fileName - String!
fileSize - Int!
fileExtension - String!
fileKey - String!
fileDownloadUrl - String!
fileUploadUrl - String!
Example
{
  "fileName": "abc123",
  "fileSize": 123,
  "fileExtension": "abc123",
  "fileKey": "xyz789",
  "fileDownloadUrl": "xyz789",
  "fileUploadUrl": "abc123"
}

SessionRecordingType

Fields
Field Name Description
sessionRecordingId - String!
sessionId - String!
sessionRecordingFile - SessionRecordingFileType
status - RecordingStatus!
duration - Int
createdAtTimestampMs - Long
updatedAtTimestampMs - Long
creationUserId - String
plcVendor - String
ideConfigId - String
failureReason - String
lastGoodMs - Int
thumbnailKey - String
thumbnailUrl - String
playbackUrl - String
Example
{
  "sessionRecordingId": "abc123",
  "sessionId": "abc123",
  "sessionRecordingFile": SessionRecordingFileType,
  "status": "PENDING",
  "duration": 987,
  "createdAtTimestampMs": {},
  "updatedAtTimestampMs": {},
  "creationUserId": "xyz789",
  "plcVendor": "abc123",
  "ideConfigId": "abc123",
  "failureReason": "xyz789",
  "lastGoodMs": 123,
  "thumbnailKey": "xyz789",
  "thumbnailUrl": "xyz789",
  "playbackUrl": "xyz789"
}

SessionResponseType

Fields
Field Name Description
objectVersion - Int Version number of the object, used for optimistic locking and change tracking
creationUserId - String Unique identifier of the user who created this object
updateUserId - String Unique identifier of the user who last updated this object
deleteUserId - String Unique identifier of the user who deleted this object
creationTimestamp - DateTime Date and time when this object was first created (ISO 8601 format)
updateTimestamp - DateTime Date and time when this object was last modified (ISO 8601 format)
sessionId - String!
reservationId - String
meteringReservationId - String
instanceId - String
status - SessionStatus!
coldStartTriggered - Boolean! True only for a session whose instance exists solely because of our own cold-start desired_capacity bump -- decides ShouldDecrementDesiredCapacity at termination. Cleared once a failed, instance-less session's bump has been reversed.
payloadSentAt - String Marks the agent payload as sent, so finalize knows not to resend.
fleetType - FleetType!
windowsPermissionScope - WindowsPermissionScope!
fleetKey - String Opaque identifier used for GSI matching and ASG-name derivation. For IDE sessions this is vendor_id/ide_config_id (e.g. 'siemens/tia-17-0'), same value as ide_version.
region - String AWS region this session's instance lives (or will live) in.
projectId - String
versionId - String
vendor - String Vendor ID resolved from the project at session start.
ideConfigId - String IDE config ID resolved from the project at session start.
ideVersion - String Combined vendor/ide_config_id resolved from the project at session start.
failureReason - SessionFailureReason
statusChangedAt - String ISO timestamp of this session's own last status transition -- stamped by transition_to(). Backs previous_status_changed_at, which the session metrics emitter reads to compute status durations.
sessionType - SessionType!
sessionVisibility - SessionVisibility!
sessionStartTimestamp - String
sessionEndTimestamp - String
sessionStartTimestampMs - Long Deprecated: use session_start_timestamp
sessionEndTimestampMs - Long Deprecated: use session_end_timestamp
sessionDurationMs - Int
sessionMetadata - JSON
supportedIdes - [String!]
language - String IDE language code, use the standard IETF language tag format.
idleTime - Int! Idle time in seconds before timeout.
hasRecording - Boolean!
readOnly - Boolean! Requested at session creation when the caller already knows an OPTIONAL resource (e.g. the project lock) is unavailable and chose to proceed in degraded mode rather than cancel. Threaded into SessionInstanceMatcher's resource allocation step, possibly minutes later -- see SessionResourceLock.should_skip().
tenantId - String!
websocketChannel - String
streamingUrl - String
Example
{
  "objectVersion": 123,
  "creationUserId": "abc123",
  "updateUserId": "xyz789",
  "deleteUserId": "abc123",
  "creationTimestamp": "2007-12-03T10:15:30Z",
  "updateTimestamp": "2007-12-03T10:15:30Z",
  "sessionId": "xyz789",
  "reservationId": "abc123",
  "meteringReservationId": "abc123",
  "instanceId": "xyz789",
  "status": "PROVISIONING",
  "coldStartTriggered": true,
  "payloadSentAt": "abc123",
  "fleetType": "IDE",
  "windowsPermissionScope": "STANDARD",
  "fleetKey": "xyz789",
  "region": "abc123",
  "projectId": "xyz789",
  "versionId": "xyz789",
  "vendor": "abc123",
  "ideConfigId": "xyz789",
  "ideVersion": "abc123",
  "failureReason": "INSTANCE_OFFLINE",
  "statusChangedAt": "xyz789",
  "sessionType": "DEFAULT",
  "sessionVisibility": "DEFAULT",
  "sessionStartTimestamp": "xyz789",
  "sessionEndTimestamp": "abc123",
  "sessionStartTimestampMs": {},
  "sessionEndTimestampMs": {},
  "sessionDurationMs": 123,
  "sessionMetadata": {},
  "supportedIdes": ["abc123"],
  "language": "abc123",
  "idleTime": 123,
  "hasRecording": false,
  "readOnly": true,
  "tenantId": "abc123",
  "websocketChannel": "abc123",
  "streamingUrl": "xyz789"
}

SessionStatus

Values
Enum Value Description

PROVISIONING

READY_TO_CONNECT

READY

FAILED

ENDED

Example
"PROVISIONING"

SessionType

Values
Enum Value Description

DEFAULT

CUSTOM

Example
"DEFAULT"

SessionVisibility

Values
Enum Value Description

DEFAULT

PUBLIC

PRIVATE

Example
"DEFAULT"

StartDesktopSessionInput

Fields
Input Field Description
desktopId - String!
language - String IDE language code, use the standard IETF language tag format. Default = "en-US"
readOnly - Boolean!
windowsPermissionScope - WindowsPermissionScope! Requesting ADMIN does not grant it -- WindowsAdminPermissionDecorator authorizes it server-side before StartDesktopSessionUseCase ever sees this value. Default = STANDARD
Example
{
  "desktopId": "abc123",
  "language": "abc123",
  "readOnly": true,
  "windowsPermissionScope": "STANDARD"
}

StartSessionInput

Fields
Input Field Description
projectId - String
versionId - String
language - String IDE language code, use the standard IETF language tag format. Default = "en-US"
readOnly - Boolean! See SessionBase.read_only -- carried separately here since StartSessionRequest isn't a SessionBase subclass. Default = false
Example
{
  "projectId": "abc123",
  "versionId": "xyz789",
  "language": "xyz789",
  "readOnly": false
}

StartSessionResponseType

Fields
Field Name Description
sessionId - String!
websocketChannel - String!
status - SessionStatus!
streamingUrl - String
Example
{
  "sessionId": "xyz789",
  "websocketChannel": "xyz789",
  "status": "PROVISIONING",
  "streamingUrl": "abc123"
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

UpdateHubConfigInput

Fields
Input Field Description
recordingEnabled - Boolean
retentionDays - Int
Example
{"recordingEnabled": true, "retentionDays": 123}

WindowsPermissionScope

Values
Enum Value Description

STANDARD

ADMIN

Example
"STANDARD"