Secure Service Hub GraphQL API Reference

Secure Service Hub GraphQL API Reference

Welcome to the Secure Service Hub GraphQL API Reference! This documentation provides detailed information about the GraphQL API endpoints, queries, mutations, and types available in our Secure Service Hub platform.

API Endpoints
# non-productive environments:
https://api-{environment}.secure-service-hub.com/
# Production server:
https://api.secure-service-hub.com/
Headers
# Your Auth token
Authorization: Bearer <YOUR_TOKEN_HERE>
# Your API key
api-key: s3cretAP1k3y

Overview

The Secure Service Hub GraphQL API empowers developers to interact with our services programmatically. With this API, you can perform various operations related to customers, machines, service cases, and more.

Getting Started

To get started with the Secure Service Hub GraphQL API, you will need API credentials and an understanding of GraphQL queries and mutations. Please refer to the Authentication section for details on obtaining API access tokens.

Documentation Structure

This documentation is organized as follows:

  • Queries: Describes read-only operations and how to retrieve information from the API.
  • Mutations: Covers write operations and how to make changes to the system.
  • Types: Lists the data types used in the API.

Example Usage

Here's a simple example of how to use the Secure Service Hub GraphQL API to retrieve your user information:

query {
  myUser {
    id
    username
    email
  }
}

Authentication

All Secure Service Hub API queries and mutations require dual authentication using a valid API Key and a valid Bearer Token. You need to include both in the HTTP headers of your requests.

Example Request Headers

POST /graphql HTTP/1.1
Host: api.secureservicehub.com
api-key: <Your API Key>
Authorization: Bearer <Your Bearer Token>
Content-Type: application/json

In the example above:

  • <Your API Key> should be replaced with your valid API Key.
  • <Your Bearer Token> should be replaced with your valid Bearer Token. Please ensure that you include both the API Key (api-key) and Bearer Token (Authorization) in the headers of your GraphQL requests to properly authenticate and access the Secure Service Hub API.

How to Obtain an API Key from Symmedia ?

To obtain an API key from Symmedia, follow these steps:

  1. Contact Symmedia: Reach out to Symmedia through their official website, support email, or support hotline to request an API key.

  2. Submit Your Request: Explain your purpose or the type of integration you plan to undertake with the API key. This helps Symmedia provide you with the appropriate key and instructions.

  3. Receive Documentation and Instructions: Symmedia will likely provide specific instructions on how to use the API key for authentication. Ensure that you carefully read and follow these instructions.

  4. Prioritize Security: Treat the API key with care and store it securely, as it grants access to systems and data. Adhere to best security practices to protect your API key.

  5. Integrate: Once you have the API key and have followed the provided instructions, you can proceed with integrating it into your systems and utilize the Symmedia API as needed.

How to Obtain an Bearertoken (Development)

To obtain a Bearertoken, follow these steps:

  1. Login to the Secure Service Hub: Got to the Portal and login with your credentials.

  2. Open the Developer Tools: Open the developer tools of your browser and go to the network tab.

  3. Search for a GraphQL Request: Search for the GraphQL request in the network tab. The request should look like this: graphql?myTenantUser

  4. Copy the Bearertoken: Copy the Bearertoken from the request and use it in the Header for the Api Request.

Queries

assetsPaginated

Response

Returns an AssetQueryResult!

Example

Query
query AssetsPaginated {
  assetsPaginated {
    data {
      id
      edgeDevice {
        id
        iotDeviceId
      }
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      serialNumber
      displayName
      avatar
      machineModel {
        id
        modelName
        technology
        brand
        externalId
      }
      facility {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
      }
      hasConnectedCustomerMachine
    }
  }
}
Response
{"data": {"assetsPaginated": {"data": [Asset]}}}

customer

Response

Returns a Customer

Arguments
Name Description
id - ID
externalId - String

Example

Query
query Customer(
  $id: ID,
  $externalId: String
) {
  customer(
    id: $id,
    externalId: $externalId
  ) {
    id
    name
    status
    externalId
    serviceOrganisation {
      id
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
    }
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
  }
}
Variables
{
  "id": "4",
  "externalId": "abc123"
}
Response
{
  "data": {
    "customer": {
      "id": 4,
      "name": "xyz789",
      "status": "NEW",
      "externalId": "xyz789",
      "serviceOrganisation": ServiceOrganisation,
      "address": {
        "street": "Metadata example of `street`",
        "city": "Metadata example of `city`",
        "state": "Metadata example of `state`",
        "zip": "Metadata example of `zip`"
      }
    }
  }
}

customerMachine

Response

Returns a CustomerMachine

Arguments
Name Description
customerMachineId - ID
externalId - String

Example

Query
query CustomerMachine(
  $customerMachineId: ID,
  $externalId: String
) {
  customerMachine(
    customerMachineId: $customerMachineId,
    externalId: $externalId
  ) {
    id
    serialNumber
    machineModel {
      id
      modelName
      technology
      brand
      externalId
    }
    displayName
    externalId
    avatar
    status
    customer {
      id
      name
      status
      externalId
      serviceOrganisation {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
      }
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
    }
    isSp1Migration
    edgeDeviceSerialNumber
  }
}
Variables
{
  "customerMachineId": 4,
  "externalId": "xyz789"
}
Response
{
  "data": {
    "customerMachine": {
      "id": 4,
      "serialNumber": "xyz789",
      "machineModel": MachineModel,
      "displayName": "abc123",
      "externalId": "abc123",
      "avatar": "xyz789",
      "status": "NEW",
      "customer": Customer,
      "isSp1Migration": true,
      "edgeDeviceSerialNumber": "xyz789"
    }
  }
}

customerMachinesPaginated

Response

Returns a CustomerMachineQueryResult!

Example

Query
query CustomerMachinesPaginated {
  customerMachinesPaginated {
    data {
      id
      serialNumber
      machineModel {
        id
        modelName
        technology
        brand
        externalId
      }
      displayName
      externalId
      avatar
      status
      customer {
        id
        name
        status
        externalId
        serviceOrganisation {
          ...ServiceOrganisationFragment
        }
        address {
          ...AddressFragment
        }
      }
      isSp1Migration
      edgeDeviceSerialNumber
    }
  }
}
Response
{
  "data": {
    "customerMachinesPaginated": {
      "data": [CustomerMachine]
    }
  }
}

customersPaginated

Response

Returns a CustomerQueryResult!

Arguments
Name Description
options - CustomerOptions

Example

Query
query CustomersPaginated($options: CustomerOptions) {
  customersPaginated(options: $options) {
    data {
      id
      name
      status
      externalId
      serviceOrganisation {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
      }
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
    }
    pageInfo {
      totalElements
      totalPages
      currentPage
      fromElement
      untilElement
    }
  }
}
Variables
{"options": CustomerOptions}
Response
{
  "data": {
    "customersPaginated": {
      "data": [Customer],
      "pageInfo": PageInfo
    }
  }
}

facilitiesPaginated

Response

Returns a FacilityQueryResult!

Example

Query
query FacilitiesPaginated {
  facilitiesPaginated {
    data {
      id
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
    }
  }
}
Response
{"data": {"facilitiesPaginated": {"data": [Facility]}}}

machineModel

Response

Returns a MachineModel

Arguments
Name Description
machineModelId - ID
externalId - String
tenantLinkType - TenantLinkType Default = ALL

Example

Query
query MachineModel(
  $machineModelId: ID,
  $externalId: String,
  $tenantLinkType: TenantLinkType
) {
  machineModel(
    machineModelId: $machineModelId,
    externalId: $externalId,
    tenantLinkType: $tenantLinkType
  ) {
    id
    modelName
    technology
    brand
    externalId
  }
}
Variables
{
  "machineModelId": 4,
  "externalId": "abc123",
  "tenantLinkType": "ALL"
}
Response
{
  "data": {
    "machineModel": {
      "id": "4",
      "modelName": "abc123",
      "technology": "abc123",
      "brand": "abc123",
      "externalId": "abc123"
    }
  }
}

machineModelsPaginated

Response

Returns a MachineModelQueryResult!

Arguments
Name Description
options - MachineModelOptions

Example

Query
query MachineModelsPaginated($options: MachineModelOptions) {
  machineModelsPaginated(options: $options) {
    data {
      id
      modelName
      technology
      brand
      externalId
    }
  }
}
Variables
{"options": MachineModelOptions}
Response
{
  "data": {
    "machineModelsPaginated": {"data": [MachineModel]}
  }
}

myUser

Response

Returns a User!

Example

Query
query MyUser {
  myUser {
    id
    name
    email
    tenant {
      id
      name
      shortname
      avatar
      status
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
      helpLink
    }
    identityId
    isTechnicalUser
  }
}
Response
{
  "data": {
    "myUser": {
      "id": 4,
      "name": "xyz789",
      "email": "abc123",
      "tenant": Tenant,
      "identityId": 4,
      "isTechnicalUser": false
    }
  }
}

permissionsOfCurrentUserPaginated

Example

Query
query PermissionsOfCurrentUserPaginated {
  permissionsOfCurrentUserPaginated {
    data {
      key
      displayName
      description
      applicationId
    }
  }
}
Response
{
  "data": {
    "permissionsOfCurrentUserPaginated": {
      "data": [Permission]
    }
  }
}

serviceCasesPaginated

Response

Returns a ServiceCaseQueryResult!

Arguments
Name Description
options - ServiceCaseOptions!

Example

Query
query ServiceCasesPaginated($options: ServiceCaseOptions!) {
  serviceCasesPaginated(options: $options) {
    data {
      id
      displayId
      state {
        id
        index
        name
        isClosed
      }
      title
      description
      createdAt
      updatedAt
      closedAt
      firstTimeAssignedAt
      firstTimeInProgressAt
      creator {
        id
        name
        email
        tenant {
          ...TenantFragment
        }
        identityId
        isTechnicalUser
      }
      assignee {
        id
        name
        email
        tenant {
          ...TenantFragment
        }
        identityId
        isTechnicalUser
      }
      customerMachine {
        id
        serialNumber
        machineModel {
          ...MachineModelFragment
        }
        displayName
        externalId
        avatar
        status
        customer {
          ...CustomerFragment
        }
        isSp1Migration
        edgeDeviceSerialNumber
      }
      priority
      severity
      externalId
      customFields {
        key
        value
      }
      closingReport {
        id
        isSolved
        notes
      }
    }
  }
}
Variables
{"options": "Metadata example of `nonReqQueryArg`"}
Response
{
  "data": {
    "serviceCasesPaginated": {"data": [ServiceCase]}
  }
}

serviceContractsPaginated

Response

Returns a ServiceContractQueryResult!

Example

Query
query ServiceContractsPaginated {
  serviceContractsPaginated {
    data {
      id
      contractName
      shortDescription
      isAssignable
      followTheSun
      serviceContractAssignments {
        id
        serviceContract {
          ...ServiceContractFragment
        }
        customerMachine {
          ...CustomerMachineFragment
        }
        startDate
        endDate
        createdAt
        updatedAt
      }
    }
  }
}
Response
{
  "data": {
    "serviceContractsPaginated": {
      "data": [ServiceContract]
    }
  }
}

serviceOrganisationsPaginated

Response

Returns a ServiceOrganisationQueryResult!

Example

Query
query ServiceOrganisationsPaginated {
  serviceOrganisationsPaginated {
    data {
      id
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
    }
  }
}
Response
{
  "data": {
    "serviceOrganisationsPaginated": {
      "data": [ServiceOrganisation]
    }
  }
}

tenant

Response

Returns a Tenant!

Arguments
Name Description
id - ID!

Example

Query
query Tenant($id: ID!) {
  tenant(id: $id) {
    id
    name
    shortname
    avatar
    status
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
    helpLink
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "tenant": {
      "id": 4,
      "name": "abc123",
      "shortname": "xyz789",
      "avatar": "xyz789",
      "status": "INCOMPLETE",
      "address": {
        "street": "Metadata example of `street`",
        "city": "Metadata example of `city`",
        "state": "Metadata example of `state`",
        "zip": "Metadata example of `zip`"
      },
      "helpLink": "abc123"
    }
  }
}

tenantsPaginated

Response

Returns a TenantQueryResult!

Arguments
Name Description
options - TenantOptions

Example

Query
query TenantsPaginated($options: TenantOptions) {
  tenantsPaginated(options: $options) {
    data {
      id
      name
      shortname
      avatar
      status
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
      helpLink
    }
  }
}
Variables
{"options": TenantOptions}
Response
{"data": {"tenantsPaginated": {"data": [Tenant]}}}

Mutations

createCustomer

Response

Returns a Customer

Arguments
Name Description
customer - CreateCustomerInput!

Example

Query
mutation CreateCustomer($customer: CreateCustomerInput!) {
  createCustomer(customer: $customer) {
    id
    name
    status
    externalId
    serviceOrganisation {
      id
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
    }
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
  }
}
Variables
{"customer": CreateCustomerInput}
Response
{
  "data": {
    "createCustomer": {
      "id": "4",
      "name": "xyz789",
      "status": "NEW",
      "externalId": "abc123",
      "serviceOrganisation": ServiceOrganisation,
      "address": {
        "street": "Metadata example of `street`",
        "city": "Metadata example of `city`",
        "state": "Metadata example of `state`",
        "zip": "Metadata example of `zip`"
      }
    }
  }
}

createCustomerMachine

Response

Returns a CustomerMachine

Arguments
Name Description
customerMachine - CreateCustomerMachineInput!

Example

Query
mutation CreateCustomerMachine($customerMachine: CreateCustomerMachineInput!) {
  createCustomerMachine(customerMachine: $customerMachine) {
    id
    serialNumber
    machineModel {
      id
      modelName
      technology
      brand
      externalId
    }
    displayName
    externalId
    avatar
    status
    customer {
      id
      name
      status
      externalId
      serviceOrganisation {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
      }
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
    }
    isSp1Migration
    edgeDeviceSerialNumber
  }
}
Variables
{"customerMachine": CreateCustomerMachineInput}
Response
{
  "data": {
    "createCustomerMachine": {
      "id": "4",
      "serialNumber": "abc123",
      "machineModel": MachineModel,
      "displayName": "abc123",
      "externalId": "xyz789",
      "avatar": "abc123",
      "status": "NEW",
      "customer": Customer,
      "isSp1Migration": false,
      "edgeDeviceSerialNumber": "abc123"
    }
  }
}

createMachineModel

Response

Returns a MachineModel

Arguments
Name Description
machineModel - CreateMachineModelInput!

Example

Query
mutation CreateMachineModel($machineModel: CreateMachineModelInput!) {
  createMachineModel(machineModel: $machineModel) {
    id
    modelName
    technology
    brand
    externalId
  }
}
Variables
{"machineModel": CreateMachineModelInput}
Response
{
  "data": {
    "createMachineModel": {
      "id": "4",
      "modelName": "xyz789",
      "technology": "abc123",
      "brand": "xyz789",
      "externalId": "xyz789"
    }
  }
}

updateCustomer

Response

Returns a Customer

Arguments
Name Description
id - ID!
customer - UpdateCustomerInput!

Example

Query
mutation UpdateCustomer(
  $id: ID!,
  $customer: UpdateCustomerInput!
) {
  updateCustomer(
    id: $id,
    customer: $customer
  ) {
    id
    name
    status
    externalId
    serviceOrganisation {
      id
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
    }
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
  }
}
Variables
{"id": 4, "customer": UpdateCustomerInput}
Response
{
  "data": {
    "updateCustomer": {
      "id": 4,
      "name": "abc123",
      "status": "NEW",
      "externalId": "xyz789",
      "serviceOrganisation": ServiceOrganisation,
      "address": {
        "street": "Metadata example of `street`",
        "city": "Metadata example of `city`",
        "state": "Metadata example of `state`",
        "zip": "Metadata example of `zip`"
      }
    }
  }
}

updateCustomerByExternalId

Response

Returns a Customer

Arguments
Name Description
externalId - ID!
customer - UpdateCustomerInput!

Example

Query
mutation UpdateCustomerByExternalId(
  $externalId: ID!,
  $customer: UpdateCustomerInput!
) {
  updateCustomerByExternalId(
    externalId: $externalId,
    customer: $customer
  ) {
    id
    name
    status
    externalId
    serviceOrganisation {
      id
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
    }
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
  }
}
Variables
{"externalId": 4, "customer": UpdateCustomerInput}
Response
{
  "data": {
    "updateCustomerByExternalId": {
      "id": "4",
      "name": "xyz789",
      "status": "NEW",
      "externalId": "xyz789",
      "serviceOrganisation": ServiceOrganisation,
      "address": {
        "street": "Metadata example of `street`",
        "city": "Metadata example of `city`",
        "state": "Metadata example of `state`",
        "zip": "Metadata example of `zip`"
      }
    }
  }
}

updateServiceCase

Response

Returns a ServiceCase

Arguments
Name Description
serviceCase - UpdateServiceCaseInput!

Example

Query
mutation UpdateServiceCase($serviceCase: UpdateServiceCaseInput!) {
  updateServiceCase(serviceCase: $serviceCase) {
    id
    displayId
    state {
      id
      index
      name
      isClosed
    }
    title
    description
    createdAt
    updatedAt
    closedAt
    firstTimeAssignedAt
    firstTimeInProgressAt
    creator {
      id
      name
      email
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      identityId
      isTechnicalUser
    }
    assignee {
      id
      name
      email
      tenant {
        id
        name
        shortname
        avatar
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      identityId
      isTechnicalUser
    }
    customerMachine {
      id
      serialNumber
      machineModel {
        id
        modelName
        technology
        brand
        externalId
      }
      displayName
      externalId
      avatar
      status
      customer {
        id
        name
        status
        externalId
        serviceOrganisation {
          ...ServiceOrganisationFragment
        }
        address {
          ...AddressFragment
        }
      }
      isSp1Migration
      edgeDeviceSerialNumber
    }
    priority
    severity
    externalId
    customFields {
      key
      value
    }
    closingReport {
      id
      isSolved
      notes
    }
  }
}
Variables
{"serviceCase": UpdateServiceCaseInput}
Response
{
  "data": {
    "updateServiceCase": {
      "id": 4,
      "displayId": "xyz789",
      "state": ServiceCaseState,
      "title": "xyz789",
      "description": "abc123",
      "createdAt": "2007-12-03T10:15:30Z",
      "updatedAt": "2007-12-03T10:15:30Z",
      "closedAt": "2007-12-03T10:15:30Z",
      "firstTimeAssignedAt": "2007-12-03T10:15:30Z",
      "firstTimeInProgressAt": "2007-12-03T10:15:30Z",
      "creator": User,
      "assignee": User,
      "customerMachine": CustomerMachine,
      "priority": 123,
      "severity": "MACHINE_BREAKDOWN",
      "externalId": "abc123",
      "customFields": [CustomFieldValue],
      "closingReport": ClosingReport
    }
  }
}

Types

Address

Fields
Field Name Description
country - String!
state - String
city - String
postalCode - String
street - String
street2 - String
Example
{
  "street": "Metadata example of `street`",
  "city": "Metadata example of `city`",
  "state": "Metadata example of `state`",
  "zip": "Metadata example of `zip`"
}

AddressFilter

Fields
Input Field Description
country - StringExpression
postalCode - StringExpression
city - StringExpression
street - StringExpression
street2 - StringExpression
state - StringExpression
and - [AddressFilter!]
or - [AddressFilter!]
not - AddressFilter
Example
{
  "country": StringExpression,
  "postalCode": StringExpression,
  "city": StringExpression,
  "street": StringExpression,
  "street2": StringExpression,
  "state": StringExpression,
  "and": [AddressFilter],
  "or": [AddressFilter],
  "not": AddressFilter
}

Asset

Fields
Field Name Description
id - ID!
edgeDevice - EdgeDevice
tenant - Tenant
serialNumber - String!
displayName - String
avatar - String
machineModel - MachineModel
facility - Facility
hasConnectedCustomerMachine - Boolean
Example
{
  "id": 4,
  "edgeDevice": EdgeDevice,
  "tenant": Tenant,
  "serialNumber": "xyz789",
  "displayName": "xyz789",
  "avatar": "xyz789",
  "machineModel": MachineModel,
  "facility": Facility,
  "hasConnectedCustomerMachine": true
}

AssetQueryResult

Fields
Field Name Description
data - [Asset!]!
Example
{"data": [Asset]}

Boolean

Description

The 'Boolean' scalar type represents 'true' or 'false' .

Example
{}

ClosingReport

Fields
Field Name Description
id - ID!
isSolved - Boolean!
notes - String
Example
{
  "id": 4,
  "isSolved": true,
  "notes": "abc123"
}

CreateCustomerAddressInput

Fields
Input Field Description
country - String!
postalCode - String
city - String
street - String
street2 - String
state - String
Example
{
  "country": "abc123",
  "postalCode": "abc123",
  "city": "xyz789",
  "street": "xyz789",
  "street2": "abc123",
  "state": "xyz789"
}

CreateCustomerInput

Fields
Input Field Description
name - String!
externalId - String
serviceOrganisation - ID!
address - CreateCustomerAddressInput!
Example
{
  "name": "xyz789",
  "externalId": "xyz789",
  "serviceOrganisation": "4",
  "address": CreateCustomerAddressInput
}

CreateCustomerMachineInput

Fields
Input Field Description
customer - CustomerInput!
serialNumber - String!
machineModel - MachineModelInput!
externalId - String
edgeDeviceSerialNumber - String
isSp1Migration - Boolean
Example
{
  "customer": CustomerInput,
  "serialNumber": "abc123",
  "machineModel": MachineModelInput,
  "externalId": "abc123",
  "edgeDeviceSerialNumber": "abc123",
  "isSp1Migration": false
}

CreateMachineModelInput

Fields
Input Field Description
modelName - String!
technology - String!
brand - String
externalId - String
Example
{
  "modelName": "xyz789",
  "technology": "abc123",
  "brand": "abc123",
  "externalId": "xyz789"
}

CustomFieldValue

Fields
Field Name Description
key - String!
value - String
Example
{
  "key": "abc123",
  "value": "xyz789"
}

Customer

Fields
Field Name Description
id - ID!
name - String!
status - CustomerStatus!
externalId - String
serviceOrganisation - ServiceOrganisation
address - Address
Example
{
  "id": "4",
  "name": "xyz789",
  "status": "NEW",
  "externalId": "xyz789",
  "serviceOrganisation": ServiceOrganisation,
  "address": {
    "street": "Metadata example of `street`",
    "city": "Metadata example of `city`",
    "state": "Metadata example of `state`",
    "zip": "Metadata example of `zip`"
  }
}

CustomerFilter

Fields
Input Field Description
id - IDExpression
name - StringExpression
status - CustomerStatusExpression
linkedTenantId - StringExpression
externalId - StringExpression
websiteUrl - StringExpression
address - AddressFilter
and - [CustomerFilter!]
or - [CustomerFilter!]
not - CustomerFilter
Example
{
  "id": IDExpression,
  "name": StringExpression,
  "status": CustomerStatusExpression,
  "linkedTenantId": StringExpression,
  "externalId": StringExpression,
  "websiteUrl": StringExpression,
  "address": AddressFilter,
  "and": [CustomerFilter],
  "or": [CustomerFilter],
  "not": CustomerFilter
}

CustomerInput

Fields
Input Field Description
customerId - ID
customerExternalId - String
Example
{
  "customerId": "4",
  "customerExternalId": "xyz789"
}

CustomerMachine

Fields
Field Name Description
id - ID!
serialNumber - String!
machineModel - MachineModel
displayName - String
externalId - String
avatar - String
status - CustomerMachineStatus
customer - Customer
isSp1Migration - Boolean
edgeDeviceSerialNumber - String
Example
{
  "id": 4,
  "serialNumber": "xyz789",
  "machineModel": MachineModel,
  "displayName": "xyz789",
  "externalId": "abc123",
  "avatar": "xyz789",
  "status": "NEW",
  "customer": Customer,
  "isSp1Migration": false,
  "edgeDeviceSerialNumber": "abc123"
}

CustomerMachineQueryResult

Fields
Field Name Description
data - [CustomerMachine!]!
Example
{"data": [CustomerMachine]}

CustomerMachineStatus

Values
Enum Value Description

NEW

PROPOSED

UNCONNECTED

CONNECTED

Example
{}

CustomerOptions

Fields
Input Field Description
filter - CustomerFilter
pagination - PaginationInput
sortBy - [CustomerSorter!]
Example
{
  "filter": CustomerFilter,
  "pagination": PaginationInput,
  "sortBy": [CustomerSorter]
}

CustomerQueryResult

Fields
Field Name Description
data - [Customer]!
pageInfo - PageInfo
Example
{
  "data": [Customer],
  "pageInfo": PageInfo
}

CustomerSorter

Fields
Input Field Description
name - SortDirection
status - SortDirection
linkedTenantId - SortDirection
externalId - SortDirection
websiteUrl - SortDirection
Example
{
  "name": "ASC",
  "status": "ASC",
  "linkedTenantId": "ASC",
  "externalId": "ASC",
  "websiteUrl": "ASC"
}

CustomerStatus

Values
Enum Value Description

NEW

INVITED

ONBOARDED

DEMO

CONVERTED

Example
{}

CustomerStatusExpression

Fields
Input Field Description
is - CustomerStatus
Example
{"is": "NEW"}

DateTime

Example
{}

EdgeDevice

Fields
Field Name Description
id - ID!
iotDeviceId - String!
Example
{
  "id": "4",
  "iotDeviceId": "abc123"
}

Facility

Fields
Field Name Description
id - ID!
tenant - Tenant!
name - String!
description - String
Example
{
  "id": 4,
  "tenant": Tenant,
  "name": "xyz789",
  "description": "xyz789"
}

FacilityQueryResult

Fields
Field Name Description
data - [Facility!]!
Example
{"data": [Facility]}

ID

Description

The 'ID' scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as '4') or integer (such as 4) input value will be accepted as an ID.

Example
{}

IDExpression

Fields
Input Field Description
is - ID
Example
{"is": "4"}

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

MachineModel

Fields
Field Name Description
id - ID!
modelName - String!
technology - String!
brand - String
externalId - String
Example
{
  "id": "4",
  "modelName": "abc123",
  "technology": "xyz789",
  "brand": "xyz789",
  "externalId": "xyz789"
}

MachineModelFilter

Fields
Input Field Description
tenantLinkType - TenantLinkType
Example
{"tenantLinkType": "ALL"}

MachineModelInput

Fields
Input Field Description
machineModelId - ID
machineModelExternalId - String
Example
{
  "machineModelId": 4,
  "machineModelExternalId": "abc123"
}

MachineModelOptions

Fields
Input Field Description
filter - MachineModelFilter
Example
{"filter": MachineModelFilter}

MachineModelQueryResult

Fields
Field Name Description
data - [MachineModel!]!
Example
{"data": [MachineModel]}

PageInfo

Fields
Field Name Description
totalElements - Int
totalPages - Int
currentPage - Int
fromElement - Int
untilElement - Int
Example
{
  "totalElements": 987,
  "totalPages": 123,
  "currentPage": 123,
  "fromElement": 123,
  "untilElement": 987
}

PaginationInput

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

Permission

Fields
Field Name Description
key - String!
displayName - String!
description - String!
applicationId - ID!
Example
{
  "key": "abc123",
  "displayName": "xyz789",
  "description": "abc123",
  "applicationId": 4
}

PermissionsOfCurrentUserQueryResult

Fields
Field Name Description
data - [Permission!]!
Example
{"data": [Permission]}

ServiceCase

Fields
Field Name Description
id - ID!
displayId - String!
state - ServiceCaseState
title - String!
description - String
createdAt - DateTime!
updatedAt - DateTime
closedAt - DateTime
firstTimeAssignedAt - DateTime The first time when the service case was assigned to a service provider user.
firstTimeInProgressAt - DateTime The first time when the service case state was changed to IN_PROGRESS.
creator - User
assignee - User
customerMachine - CustomerMachine
priority - Int
severity - Severity
externalId - String
customFields - [CustomFieldValue]
closingReport - ClosingReport
Example
{
  "id": 4,
  "displayId": "xyz789",
  "state": ServiceCaseState,
  "title": "abc123",
  "description": "xyz789",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "closedAt": "2007-12-03T10:15:30Z",
  "firstTimeAssignedAt": "2007-12-03T10:15:30Z",
  "firstTimeInProgressAt": "2007-12-03T10:15:30Z",
  "creator": User,
  "assignee": User,
  "customerMachine": CustomerMachine,
  "priority": 123,
  "severity": "MACHINE_BREAKDOWN",
  "externalId": "xyz789",
  "customFields": [CustomFieldValue],
  "closingReport": ClosingReport
}

ServiceCaseFilter

Fields
Input Field Description
isClosed - Boolean
Example
{"isClosed": true}

ServiceCaseOptions

Fields
Input Field Description
view - ServiceCaseView!
filter - ServiceCaseFilter
Example
{"view": "OPERATOR", "filter": ServiceCaseFilter}

ServiceCaseQueryResult

Fields
Field Name Description
data - [ServiceCase!]!
Example
{"data": [ServiceCase]}

ServiceCaseState

Fields
Field Name Description
id - ID!
index - Int!
name - String!
isClosed - Boolean!
Example
{
  "id": 4,
  "index": 123,
  "name": "xyz789",
  "isClosed": true
}

ServiceCaseView

Values
Enum Value Description

OPERATOR

SERVICE_PROVIDER

Example
{}

ServiceContract

Fields
Field Name Description
id - ID!
contractName - String!
shortDescription - String
isAssignable - Boolean!
followTheSun - Boolean!
serviceContractAssignments - [ServiceContractAssignment!]!
Example
{
  "id": 4,
  "contractName": "xyz789",
  "shortDescription": "xyz789",
  "isAssignable": false,
  "followTheSun": false,
  "serviceContractAssignments": [
    ServiceContractAssignment
  ]
}

ServiceContractAssignment

Fields
Field Name Description
id - ID!
serviceContract - ServiceContract!
customerMachine - CustomerMachine
startDate - DateTime!
endDate - DateTime!
createdAt - DateTime!
updatedAt - DateTime
Example
{
  "id": 4,
  "serviceContract": ServiceContract,
  "customerMachine": CustomerMachine,
  "startDate": "2007-12-03T10:15:30Z",
  "endDate": "2007-12-03T10:15:30Z",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z"
}

ServiceContractQueryResult

Fields
Field Name Description
data - [ServiceContract!]!
Example
{"data": [ServiceContract]}

ServiceOrganisation

Fields
Field Name Description
id - ID!
tenant - Tenant!
name - String!
description - String
Example
{
  "id": 4,
  "tenant": Tenant,
  "name": "xyz789",
  "description": "xyz789"
}

ServiceOrganisationQueryResult

Fields
Field Name Description
data - [ServiceOrganisation!]!
Example
{"data": [ServiceOrganisation]}

Severity

Values
Enum Value Description

MACHINE_BREAKDOWN

PRODUCTION_IMPAIRED

NO_IMPAIRMENT

Example
{}

SortDirection

Values
Enum Value Description

ASC

DESC

Example
{}

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

StringExpression

Fields
Input Field Description
equals - String
contains - String
starts - String
ends - String
Example
{
  "equals": "abc123",
  "contains": "abc123",
  "starts": "xyz789",
  "ends": "xyz789"
}

Tenant

Fields
Field Name Description
id - ID!
name - String!
shortname - String
avatar - String
status - TenantStatus
address - Address
helpLink - String
Example
{
  "id": "4",
  "name": "abc123",
  "shortname": "abc123",
  "avatar": "abc123",
  "status": "INCOMPLETE",
  "address": {
    "street": "Metadata example of `street`",
    "city": "Metadata example of `city`",
    "state": "Metadata example of `state`",
    "zip": "Metadata example of `zip`"
  },
  "helpLink": "xyz789"
}

TenantFilter

Fields
Input Field Description
status - [TenantStatus]
Example
{"status": ["INCOMPLETE"]}

TenantLinkType

Values
Enum Value Description

ALL

SERVICE_PROVIDER

OPERATOR

NONE

Example
{}

TenantOptions

Fields
Input Field Description
filter - TenantFilter
Example
{"filter": TenantFilter}

TenantQueryResult

Fields
Field Name Description
data - [Tenant!]!
Example
{"data": [Tenant]}

TenantStatus

Values
Enum Value Description

INCOMPLETE

ACTIVE

DEACTIVATED

Example
{}

UpdateCustomerAddressInput

Fields
Input Field Description
country - String
postalCode - String
city - String
street - String
street2 - String
state - String
Example
{
  "country": "xyz789",
  "postalCode": "abc123",
  "city": "abc123",
  "street": "abc123",
  "street2": "abc123",
  "state": "xyz789"
}

UpdateCustomerInput

Fields
Input Field Description
name - String
externalId - String
websiteUrl - String
serviceOrganisation - ID
address - UpdateCustomerAddressInput
Example
{
  "name": "abc123",
  "externalId": "xyz789",
  "websiteUrl": "abc123",
  "serviceOrganisation": "4",
  "address": UpdateCustomerAddressInput
}

UpdateServiceCaseInput

Fields
Input Field Description
serviceCaseId - ID!
externalId - String
priority - Int
Example
{
  "serviceCaseId": "4",
  "externalId": "xyz789",
  "priority": 123
}

User

Fields
Field Name Description
id - ID!
name - String!
email - String
tenant - Tenant!
identityId - ID
isTechnicalUser - Boolean!
Example
{
  "id": 4,
  "name": "abc123",
  "email": "abc123",
  "tenant": Tenant,
  "identityId": 4,
  "isTechnicalUser": false
}