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
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
thumbnailKey
thumbnailUrl
playbackUrl
}
}
Response
{
"data": {
"readAllSessionRecordings": [
{
"sessionRecordingId": "xyz789",
"sessionId": "xyz789",
"sessionRecordingFile": SessionRecordingFileType,
"status": "PENDING",
"duration": 123,
"createdAtTimestampMs": {},
"updatedAtTimestampMs": {},
"creationUserId": "abc123",
"plcVendor": "abc123",
"ideConfigId": "xyz789",
"failureReason": "abc123",
"thumbnailKey": "xyz789",
"thumbnailUrl": "abc123",
"playbackUrl": "abc123"
}
]
}
}
readAllSessions
Response
Returns a PaginatedSessionResponseType!
Arguments
| Name | Description |
|---|---|
pagination - PaginationInputType!
|
|
statuses - [SessionStatus!]
|
Default = null |
Example
Query
query ReadAllSessions(
$pagination: PaginationInputType!,
$statuses: [SessionStatus!]
) {
readAllSessions(
pagination: $pagination,
statuses: $statuses
) {
items {
objectVersion
creationUserId
updateUserId
deleteUserId
creationTimestamp
updateTimestamp
sessionId
reservationId
meteringReservationId
instanceId
status
projectId
versionId
ownerId
tenantId
sessionOwner {
...SessionOwnerTypeFragment
}
sessionType
sessionVisibility
sessionStartTimestamp
sessionEndTimestamp
sessionStartTimestampMs
sessionEndTimestampMs
sessionDurationMs
sessionMetadata
streamingUrl
supportedIdes
language
idleTime
websocketChannel
}
pages
itemCount
}
}
Variables
{"pagination": PaginationInputType, "statuses": ["ul"]}
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
projectId
versionId
ownerId
tenantId
sessionOwner {
...SessionOwnerTypeFragment
}
sessionType
sessionVisibility
sessionStartTimestamp
sessionEndTimestamp
sessionStartTimestampMs
sessionEndTimestampMs
sessionDurationMs
sessionMetadata
streamingUrl
supportedIdes
language
idleTime
websocketChannel
}
pages
itemCount
}
}
Variables
{
"tenantId": "abc123",
"pagination": PaginationInputType,
"statuses": ["ul"]
}
Response
{
"data": {
"readAllSessionsByTenantId": {
"items": [SessionResponseType],
"pages": 987,
"itemCount": 123
}
}
}
readHubConfig
Response
Returns a HubConfigType!
Example
Query
query ReadHubConfig {
readHubConfig {
hubConfigId
recordingEnabled
retentionDays
}
}
Response
{
"data": {
"readHubConfig": {
"hubConfigId": "xyz789",
"recordingEnabled": false,
"retentionDays": 987
}
}
}
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
projectId
versionId
ownerId
tenantId
sessionOwner {
userId
userName
userEmail {
...EmailTypeFragment
}
tenantId
tenantName
}
sessionType
sessionVisibility
sessionStartTimestamp
sessionEndTimestamp
sessionStartTimestampMs
sessionEndTimestampMs
sessionDurationMs
sessionMetadata
streamingUrl
supportedIdes
language
idleTime
websocketChannel
}
}
Variables
{"sessionId": "abc123"}
Response
{
"data": {
"readSession": {
"objectVersion": 123,
"creationUserId": "abc123",
"updateUserId": "xyz789",
"deleteUserId": "xyz789",
"creationTimestamp": "2007-12-03T10:15:30Z",
"updateTimestamp": "2007-12-03T10:15:30Z",
"sessionId": "xyz789",
"reservationId": "xyz789",
"meteringReservationId": "abc123",
"instanceId": "xyz789",
"status": "PENDING",
"projectId": "abc123",
"versionId": "abc123",
"ownerId": "abc123",
"tenantId": "abc123",
"sessionOwner": SessionOwnerType,
"sessionType": "DEFAULT",
"sessionVisibility": "DEFAULT",
"sessionStartTimestamp": "abc123",
"sessionEndTimestamp": "xyz789",
"sessionStartTimestampMs": {},
"sessionEndTimestampMs": {},
"sessionDurationMs": 123,
"sessionMetadata": {},
"streamingUrl": "xyz789",
"supportedIdes": ["xyz789"],
"language": "xyz789",
"idleTime": 123,
"websocketChannel": "xyz789"
}
}
}
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
thumbnailKey
thumbnailUrl
playbackUrl
}
}
Variables
{"recordingId": "abc123"}
Response
{
"data": {
"readSessionRecording": {
"sessionRecordingId": "abc123",
"sessionId": "xyz789",
"sessionRecordingFile": SessionRecordingFileType,
"status": "PENDING",
"duration": 123,
"createdAtTimestampMs": {},
"updatedAtTimestampMs": {},
"creationUserId": "abc123",
"plcVendor": "abc123",
"ideConfigId": "abc123",
"failureReason": "abc123",
"thumbnailKey": "abc123",
"thumbnailUrl": "xyz789",
"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
thumbnailKey
thumbnailUrl
playbackUrl
}
}
Variables
{"sessionId": "xyz789", "statuses": ["ul"]}
Response
{
"data": {
"readSessionRecordingsBySession": [
{
"sessionRecordingId": "xyz789",
"sessionId": "abc123",
"sessionRecordingFile": SessionRecordingFileType,
"status": "PENDING",
"duration": 123,
"createdAtTimestampMs": {},
"updatedAtTimestampMs": {},
"creationUserId": "abc123",
"plcVendor": "xyz789",
"ideConfigId": "abc123",
"failureReason": "xyz789",
"thumbnailKey": "xyz789",
"thumbnailUrl": "xyz789",
"playbackUrl": "xyz789"
}
]
}
}
Mutations
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"
}
}
}
startSession
Response
Returns a StartSessionResponseType!
Arguments
| Name | Description |
|---|---|
input - StartSessionInput!
|
Example
Query
mutation StartSession($input: StartSessionInput!) {
startSession(input: $input) {
streamingUrl
sessionId
websocketChannel
}
}
Variables
{"input": StartSessionInput}
Response
{
"data": {
"startSession": {
"streamingUrl": "xyz789",
"sessionId": "abc123",
"websocketChannel": "abc123"
}
}
}
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": false,
"retentionDays": 123
}
}
}
Types
Boolean
Description
The Boolean scalar type represents true or false.
DateTime
Description
Date with time (isoformat)
Example
"2007-12-03T10:15:30Z"
EmailType
Fields
| Field Name | Description |
|---|---|
value - String!
|
Example
{"value": "abc123"}
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": 987,
"itemCount": 123
}
PaginationInputType
PlaybackUrlResponseType
RecordingStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"PENDING"
SessionOwnerType
Fields
| Field Name | Description |
|---|---|
userId - String!
|
|
userName - String!
|
|
userEmail - EmailType!
|
|
tenantId - String!
|
|
tenantName - String
|
Example
{
"userId": "xyz789",
"userName": "abc123",
"userEmail": EmailType,
"tenantId": "abc123",
"tenantName": "xyz789"
}
SessionRecordingFileType
Example
{
"fileName": "abc123",
"fileSize": 123,
"fileExtension": "abc123",
"fileKey": "xyz789",
"fileDownloadUrl": "abc123",
"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
|
|
thumbnailKey - String
|
|
thumbnailUrl - String
|
|
playbackUrl - String
|
Example
{
"sessionRecordingId": "xyz789",
"sessionId": "xyz789",
"sessionRecordingFile": SessionRecordingFileType,
"status": "PENDING",
"duration": 987,
"createdAtTimestampMs": {},
"updatedAtTimestampMs": {},
"creationUserId": "abc123",
"plcVendor": "abc123",
"ideConfigId": "xyz789",
"failureReason": "abc123",
"thumbnailKey": "abc123",
"thumbnailUrl": "abc123",
"playbackUrl": "abc123"
}
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!
|
|
projectId - String
|
|
versionId - String
|
|
ownerId - String
|
|
tenantId - String
|
|
sessionOwner - SessionOwnerType
|
|
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
|
|
streamingUrl - String
|
|
supportedIdes - [String!]
|
|
language - String
|
IDE language code, use the standard IETF language tag format. |
idleTime - Int!
|
Idle time in seconds before timeout. |
websocketChannel - String
|
Example
{
"objectVersion": 123,
"creationUserId": "abc123",
"updateUserId": "abc123",
"deleteUserId": "abc123",
"creationTimestamp": "2007-12-03T10:15:30Z",
"updateTimestamp": "2007-12-03T10:15:30Z",
"sessionId": "abc123",
"reservationId": "xyz789",
"meteringReservationId": "abc123",
"instanceId": "xyz789",
"status": "PENDING",
"projectId": "abc123",
"versionId": "abc123",
"ownerId": "abc123",
"tenantId": "xyz789",
"sessionOwner": SessionOwnerType,
"sessionType": "DEFAULT",
"sessionVisibility": "DEFAULT",
"sessionStartTimestamp": "xyz789",
"sessionEndTimestamp": "abc123",
"sessionStartTimestampMs": {},
"sessionEndTimestampMs": {},
"sessionDurationMs": 123,
"sessionMetadata": {},
"streamingUrl": "xyz789",
"supportedIdes": ["xyz789"],
"language": "xyz789",
"idleTime": 987,
"websocketChannel": "abc123"
}
SessionStatus
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Example
"PENDING"
SessionType
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
Example
"DEFAULT"
SessionVisibility
Values
| Enum Value | Description |
|---|---|
|
|
|
|
|
|
|
|
Example
"DEFAULT"
StartSessionInput
StartSessionResponseType
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
"abc123"