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

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
    instanceId
    status
    projectId
    versionId
    ownerId
    tenantId
    sessionOwner {
      userId
      userName
      userEmail {
        ...EmailTypeFragment
      }
      tenantId
      tenantName
    }
    sessionType
    sessionVisibility
    sessionStartTimestampMs
    sessionEndTimestampMs
    sessionDurationMs
    sessionMetadata
    streamingUrl
    sessionRecordingId
    supportedIdes
    language
    websocketChannel
  }
}
Variables
{"sessionId": "abc123"}
Response
{
  "data": {
    "readSession": {
      "objectVersion": 123,
      "creationUserId": "abc123",
      "updateUserId": "abc123",
      "deleteUserId": "xyz789",
      "creationTimestamp": "2007-12-03T10:15:30Z",
      "updateTimestamp": "2007-12-03T10:15:30Z",
      "sessionId": "xyz789",
      "reservationId": "xyz789",
      "instanceId": "xyz789",
      "status": "PENDING",
      "projectId": "xyz789",
      "versionId": "xyz789",
      "ownerId": "abc123",
      "tenantId": "abc123",
      "sessionOwner": SessionOwnerType,
      "sessionType": "DEFAULT",
      "sessionVisibility": "DEFAULT",
      "sessionStartTimestampMs": 123,
      "sessionEndTimestampMs": 123,
      "sessionDurationMs": 123,
      "sessionMetadata": {},
      "streamingUrl": "xyz789",
      "sessionRecordingId": "abc123",
      "supportedIdes": ["abc123"],
      "language": "abc123",
      "websocketChannel": "abc123"
    }
  }
}

Mutations

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": "abc123",
      "sessionId": "abc123",
      "websocketChannel": "abc123"
    }
  }
}

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"}

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
123

JSON

Description

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

Example
{}

SessionOwnerType

Fields
Field Name Description
userId - String!
userName - String!
userEmail - EmailType!
tenantId - String!
tenantName - String
Example
{
  "userId": "abc123",
  "userName": "abc123",
  "userEmail": EmailType,
  "tenantId": "xyz789",
  "tenantName": "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
instanceId - String!
status - SessionStatus!
projectId - String
versionId - String
ownerId - String
tenantId - String
sessionOwner - SessionOwnerType
sessionType - SessionType!
sessionVisibility - SessionVisibility!
sessionStartTimestampMs - Int
sessionEndTimestampMs - Int
sessionDurationMs - Int
sessionMetadata - JSON
streamingUrl - String
sessionRecordingId - String
supportedIdes - [String!]
language - String IDE language code, use the standard IETF language tag format.
websocketChannel - String
Example
{
  "objectVersion": 987,
  "creationUserId": "xyz789",
  "updateUserId": "abc123",
  "deleteUserId": "xyz789",
  "creationTimestamp": "2007-12-03T10:15:30Z",
  "updateTimestamp": "2007-12-03T10:15:30Z",
  "sessionId": "xyz789",
  "reservationId": "xyz789",
  "instanceId": "abc123",
  "status": "PENDING",
  "projectId": "abc123",
  "versionId": "abc123",
  "ownerId": "abc123",
  "tenantId": "abc123",
  "sessionOwner": SessionOwnerType,
  "sessionType": "DEFAULT",
  "sessionVisibility": "DEFAULT",
  "sessionStartTimestampMs": 123,
  "sessionEndTimestampMs": 123,
  "sessionDurationMs": 123,
  "sessionMetadata": {},
  "streamingUrl": "abc123",
  "sessionRecordingId": "abc123",
  "supportedIdes": ["abc123"],
  "language": "abc123",
  "websocketChannel": "abc123"
}

SessionStatus

Values
Enum Value Description

PENDING

READY

ACTIVE

INACTIVE

FAILED

ENDED

WARM_POOL

Example
"PENDING"

SessionType

Values
Enum Value Description

DEFAULT

CUSTOM

Example
"DEFAULT"

SessionVisibility

Values
Enum Value Description

DEFAULT

PUBLIC

PRIVATE

Example
"DEFAULT"

StartSessionInput

Fields
Input Field Description
sessionId - String
projectId - String!
versionId - String!
language - String IDE language code, use the standard IETF language tag format. Default = "en-US"
Example
{
  "sessionId": "xyz789",
  "projectId": "xyz789",
  "versionId": "xyz789",
  "language": "abc123"
}

StartSessionResponseType

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

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"