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.
Terms of Service
https://www.softwaredefinedautomation.io/terms-and-conditions/
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!
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
Response
Returns a ConnectSessionDeviceResponseType!
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
detachSessionLicense
Response
Returns a DetachSessionLicenseResponseType!
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
Response
Returns a DisconnectSessionDeviceResponseType!
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
AttachSessionLicenseResponseType
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
ConnectSessionDeviceResponseType
ConnectSessionInput
Fields
| Input Field | Description |
|---|---|
sessionId - String!
|
Example
{"sessionId": "abc123"}
CreateDesktopInput
DateTime
Description
Date with time (isoformat)
Example
"2007-12-03T10:15:30Z"
DesktopStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
DesktopVmStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"RUNNING"
DetachSessionLicenseInput
DetachSessionLicenseResponseType
DisconnectSessionDeviceInput
DisconnectSessionDeviceResponseType
FleetType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"IDE"
Float
Description
The Float scalar type represents signed double-precision fractional values as specified by IEEE 754.
Example
987.65
HubConfigType
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
PlaybackUrlResponseType
ProjectLockStatusType
Example
{
"isLocked": false,
"lockedSince": "xyz789",
"existingSessionId": "abc123"
}
RecordingStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"PENDING"
SessionFailureReason
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"INSTANCE_OFFLINE"
SessionRecordingFileType
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"PROVISIONING"
SessionType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"DEFAULT"
SessionVisibility
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
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
WindowsPermissionScope
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"STANDARD"