symmedia Hub GraphQL API Reference

symmedia Hub GraphQL API Reference

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

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

Overview

The symmedia Hub GraphQL API allows 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 symmedia 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

Below is a simple example of how to use the symmedia Hub GraphQL API to retrieve your user information:

query {
  myUser {
    id
    username
    email
  }
}

Authentication

All symmedia 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.symmedia-hub.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. To properly authenticate and access the symmedia Hub API, 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 symmedia Hub API.

How do you obtain an API key from symmedia?

Follow these steps to obtain an API key from symmedia:

  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 the purpose of your request or the type of integration you plan to undertake with the API key. This will help 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. Make sure 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 the best security practices to protect your API key.

  5. Integrate: Once you have the API key and have followed the provided instructions, you can integrate it into your systems and utilize the symmedia API as needed.

How to Obtain an Bearer Token (Development)

Follow these steps to obtain a Bearer Token:

  1. Log in to the symmedia Hub: Go to the portal and log in with your credentials.
  2. Open the developer tools: Open your browser's developer tools 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 Bearer Token: Copy the Bearer Token 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
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      serialNumber
      displayName
      avatar
      machineModel {
        id
        modelName
        technology
        brand
        externalId
      }
      facility {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
      }
      dataSourceConfigs {
        id
        tenantId
        name
        adapterType
        payload {
          ...DataSourceConfigPayloadFragment
        }
      }
      machine {
        id
        owner {
          ...OwnerFragment
        }
        technology
        modelName
        brand
        avatar
        serialNumber
        edgeDevice {
          ...EdgeDeviceFragment
        }
        collaborationStatus
      }
    }
  }
}
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
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
      followTheSun {
        providesFollowTheSunSupport
        zoneId
        schedule {
          ...ServiceScheduleFragment
        }
      }
    }
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
  }
}
Variables
{"id": "cus_3f9a2b7c", "externalId": "ERP-10293"}
Response
{
  "data": {
    "customer": {
      "id": "cus_3f9a2b7c",
      "name": "Acme Manufacturing GmbH",
      "status": "ONBOARDED",
      "externalId": "ERP-10293",
      "serviceOrganisation": ServiceOrganisation,
      "address": {
        "country": "Germany",
        "state": "North Rhine-Westphalia",
        "city": "Bielefeld",
        "postalCode": "33602",
        "street": "Turnerstraße 27"
      }
    }
  }
}

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
    warrantyBegin
    warrantyEnd
    status
    customer {
      id
      name
      status
      externalId
      serviceOrganisation {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
        followTheSun {
          ...FollowTheSunFragment
        }
      }
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
    }
    isSp1Migration
    edgeDeviceSerialNumber
    machine {
      id
      owner {
        tenant {
          ...TenantFragment
        }
        ownerType
        owner {
          ... on CustomerMachine {
            ...CustomerMachineFragment
          }
          ... on Asset {
            ...AssetFragment
          }
        }
      }
      technology
      modelName
      brand
      avatar
      serialNumber
      edgeDevice {
        id
        iotDeviceId
      }
      collaborationStatus
    }
  }
}
Variables
{"customerMachineId": "cm_6f7a8b9c", "externalId": "ASSET-00931"}
Response
{
  "data": {
    "customerMachine": {
      "id": "cm_6f7a8b9c",
      "serialNumber": "SN-2024-00931",
      "machineModel": MachineModel,
      "displayName": "Example string",
      "externalId": "ASSET-00931",
      "avatar": "Example string",
      "warrantyBegin": "2024-06-01",
      "warrantyEnd": "2024-06-01",
      "status": "CONNECTED",
      "customer": Customer,
      "isSp1Migration": true,
      "edgeDeviceSerialNumber": "EDGE-00931",
      "machine": Machine
    }
  }
}

customerMachinesPaginated

Response

Returns a CustomerMachineQueryResult!

Arguments
Name Description
options - CustomerMachineOptions

Example

Query
query CustomerMachinesPaginated($options: CustomerMachineOptions) {
  customerMachinesPaginated(options: $options) {
    data {
      id
      serialNumber
      machineModel {
        id
        modelName
        technology
        brand
        externalId
      }
      displayName
      externalId
      avatar
      warrantyBegin
      warrantyEnd
      status
      customer {
        id
        name
        status
        externalId
        serviceOrganisation {
          ...ServiceOrganisationFragment
        }
        address {
          ...AddressFragment
        }
      }
      isSp1Migration
      edgeDeviceSerialNumber
      machine {
        id
        owner {
          ...OwnerFragment
        }
        technology
        modelName
        brand
        avatar
        serialNumber
        edgeDevice {
          ...EdgeDeviceFragment
        }
        collaborationStatus
      }
    }
  }
}
Variables
{
  "options": {
    "filter": {"serialNumber": {"equals": "SN-2024-00931"}},
    "pagination": {"page": 1, "pageSize": 25}
  }
}
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
        followTheSun {
          ...FollowTheSunFragment
        }
      }
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
    }
    pageInfo {
      totalElements
      totalPages
      currentPage
      fromElement
      untilElement
    }
  }
}
Variables
{
  "options": {
    "filter": {"status": {"is": "ONBOARDED"}},
    "pagination": {"page": 1, "pageSize": 25},
    "sortBy": [{"name": "ASC"}]
  }
}
Response
{
  "data": {
    "customersPaginated": {
      "data": [Customer],
      "pageInfo": {
        "totalElements": 132,
        "totalPages": 6,
        "currentPage": 1,
        "fromElement": 1,
        "untilElement": 25
      }
    }
  }
}

dataPoints

Response

Returns a DataPointsResult

Arguments
Name Description
options - DataPointsOptions!

Example

Query
query DataPoints($options: DataPointsOptions!) {
  dataPoints(options: $options) {
    machineDataPoints {
      assetId
      dataPoints {
        timestampUtc
        dataPointName
        value
      }
    }
  }
}
Variables
{
  "options": {
    "assetIds": ["ast_3e4f5a6b"],
    "timeRange": {
      "from": "2024-06-01T00:00:00.000Z",
      "to": "2024-06-01T23:59:59.000Z"
    },
    "dataPointNames": ["temperature", "pressure"],
    "take": 100,
    "dataPointQueryRange": "IN_RANGE",
    "sortOrder": "ASCENDING"
  }
}
Response
{
  "data": {
    "dataPoints": {
      "machineDataPoints": [MachineDataPoints]
    }
  }
}

facilitiesPaginated

Response

Returns a FacilityQueryResult!

Example

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

machineInvoiceEnclosuresPaginated

Arguments
Name Description
input - MachineInvoiceEnclosuresInput!
options - MachineInvoiceEnclosureOptions!

Example

Query
query MachineInvoiceEnclosuresPaginated(
  $input: MachineInvoiceEnclosuresInput!,
  $options: MachineInvoiceEnclosureOptions!
) {
  machineInvoiceEnclosuresPaginated(
    input: $input,
    options: $options
  ) {
    pageInfo {
      totalElements
      totalPages
      currentPage
      fromElement
      untilElement
    }
    data {
      machine {
        id
        owner {
          ...OwnerFragment
        }
        technology
        modelName
        brand
        avatar
        serialNumber
        edgeDevice {
          ...EdgeDeviceFragment
        }
        collaborationStatus
      }
      billedOwnerTenant {
        id
        name
        shortname
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      serialNumber
      validFor {
        year
        month
      }
      ownerType
      customer {
        id
        name
        status
        externalId
        serviceOrganisation {
          ...ServiceOrganisationFragment
        }
        address {
          ...AddressFragment
        }
      }
      licenseType
    }
  }
}
Variables
{
  "input": {"yearMonthInput": {"year": 2024, "month": 6}},
  "options": {
    "filter": {"ownerType": {"is": "CUSTOMER_MACHINE"}},
    "pagination": {"page": 1, "pageSize": 25}
  }
}
Response
{
  "data": {
    "machineInvoiceEnclosuresPaginated": {
      "pageInfo": {
        "totalElements": 132,
        "totalPages": 6,
        "currentPage": 1,
        "fromElement": 1,
        "untilElement": 25
      },
      "data": [MachineInvoiceEnclosure]
    }
  }
}

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": "cus_3f9a2b7c",
  "externalId": "Example string",
  "tenantLinkType": "ALL"
}
Response
{
  "data": {
    "machineModel": {
      "id": "mm_4d5e6f7a",
      "modelName": "SX-500",
      "technology": "Injection Molding",
      "brand": "Acme",
      "externalId": "MODEL-500"
    }
  }
}

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": {"filter": {"tenantLinkType": "ALL"}}}
Response
{
  "data": {
    "machineModelsPaginated": {"data": [MachineModel]}
  }
}

myUser

Response

Returns a User!

Example

Query
query MyUser {
  myUser {
    id
    name
    email
    tenant {
      id
      name
      shortname
      status
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
      helpLink
    }
    identityId
    isTechnicalUser
  }
}
Response
{
  "data": {
    "myUser": {
      "id": "usr_9d8e7f6a",
      "name": "Jane Doe",
      "email": "jane.doe@example.com",
      "tenant": Tenant,
      "identityId": "idp_5c6d7e8f",
      "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
        warrantyBegin
        warrantyEnd
        status
        customer {
          ...CustomerFragment
        }
        isSp1Migration
        edgeDeviceSerialNumber
        machine {
          ...MachineFragment
        }
      }
      priority
      severity
      externalId
      customFields {
        key
        value
      }
      closingReport {
        id
        isSolved
        notes
      }
      remoteAccess {
        totalDurationInMinutes
      }
    }
  }
}
Variables
{"options": {"view": "SERVICE_PROVIDER", "filter": {"isClosed": false}}}
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
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
      followTheSun {
        providesFollowTheSunSupport
        zoneId
        schedule {
          ...ServiceScheduleFragment
        }
      }
    }
  }
}
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
    status
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
    helpLink
  }
}
Variables
{"id": "ten_1a2b3c4d"}
Response
{
  "data": {
    "tenant": {
      "id": "ten_1a2b3c4d",
      "name": "symmedia Service GmbH",
      "shortname": "symmedia",
      "status": "ACTIVE",
      "address": {
        "country": "Germany",
        "state": "North Rhine-Westphalia",
        "city": "Bielefeld",
        "postalCode": "33602",
        "street": "Turnerstraße 27"
      },
      "helpLink": "https://help.symmedia-hub.com"
    }
  }
}

tenantsPaginated

Response

Returns a TenantQueryResult!

Arguments
Name Description
options - TenantOptions

Example

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

timeSeries

Response

Returns a TimeSeriesResult

Arguments
Name Description
options - TimeSeriesOptions!

Example

Query
query TimeSeries($options: TimeSeriesOptions!) {
  timeSeries(options: $options) {
    timestamps
    assetSeries {
      assetId
      dataPointSeries {
        dataPointName
        values {
          ...FloatWithTimestampFragment
        }
      }
    }
  }
}
Variables
{
  "options": {
    "assetIds": ["ast_3e4f5a6b"],
    "timeRange": {
      "from": "2024-06-01T00:00:00.000Z",
      "to": "2024-06-01T23:59:59.000Z"
    },
    "dataPointNames": ["temperature"],
    "aggregation": "AVG",
    "binSize": "PT1H",
    "dataSource": "PRE_AGGREGATED"
  }
}
Response
{
  "data": {
    "timeSeries": {
      "timestamps": [
        "2024-06-01T14:30:00.000Z"
      ],
      "assetSeries": [AssetTimeSeries]
    }
  }
}

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
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
      followTheSun {
        providesFollowTheSunSupport
        zoneId
        schedule {
          ...ServiceScheduleFragment
        }
      }
    }
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
  }
}
Variables
{
  "customer": {
    "name": "Acme Manufacturing GmbH",
    "externalId": "ERP-10293",
    "serviceOrganisation": "so_2b3c4d5e",
    "address": {
      "country": "Germany",
      "state": "North Rhine-Westphalia",
      "postalCode": "33602",
      "city": "Bielefeld",
      "street": "Turnerstraße 27"
    }
  }
}
Response
{
  "data": {
    "createCustomer": {
      "id": "cus_3f9a2b7c",
      "name": "Acme Manufacturing GmbH",
      "status": "ONBOARDED",
      "externalId": "ERP-10293",
      "serviceOrganisation": ServiceOrganisation,
      "address": {
        "country": "Germany",
        "state": "North Rhine-Westphalia",
        "city": "Bielefeld",
        "postalCode": "33602",
        "street": "Turnerstraße 27"
      }
    }
  }
}

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
    warrantyBegin
    warrantyEnd
    status
    customer {
      id
      name
      status
      externalId
      serviceOrganisation {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
        followTheSun {
          ...FollowTheSunFragment
        }
      }
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
    }
    isSp1Migration
    edgeDeviceSerialNumber
    machine {
      id
      owner {
        tenant {
          ...TenantFragment
        }
        ownerType
        owner {
          ... on CustomerMachine {
            ...CustomerMachineFragment
          }
          ... on Asset {
            ...AssetFragment
          }
        }
      }
      technology
      modelName
      brand
      avatar
      serialNumber
      edgeDevice {
        id
        iotDeviceId
      }
      collaborationStatus
    }
  }
}
Variables
{
  "customerMachine": {
    "customer": {"customerId": "cus_3f9a2b7c"},
    "serialNumber": "SN-2024-00931",
    "machineModel": {"machineModelId": "mm_4d5e6f7a"},
    "externalId": "ASSET-00931",
    "warrantyBegin": "2024-01-01",
    "warrantyEnd": "2026-01-01"
  }
}
Response
{
  "data": {
    "createCustomerMachine": {
      "id": "cm_6f7a8b9c",
      "serialNumber": "SN-2024-00931",
      "machineModel": MachineModel,
      "displayName": "Example string",
      "externalId": "ASSET-00931",
      "avatar": "Example string",
      "warrantyBegin": "2024-06-01",
      "warrantyEnd": "2024-06-01",
      "status": "CONNECTED",
      "customer": Customer,
      "isSp1Migration": true,
      "edgeDeviceSerialNumber": "EDGE-00931",
      "machine": Machine
    }
  }
}

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": {
    "modelName": "SX-500",
    "technology": "Injection Molding",
    "brand": "Acme",
    "externalId": "MODEL-500"
  }
}
Response
{
  "data": {
    "createMachineModel": {
      "id": "mm_4d5e6f7a",
      "modelName": "SX-500",
      "technology": "Injection Molding",
      "brand": "Acme",
      "externalId": "MODEL-500"
    }
  }
}

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
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
      followTheSun {
        providesFollowTheSunSupport
        zoneId
        schedule {
          ...ServiceScheduleFragment
        }
      }
    }
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
  }
}
Variables
{
  "id": "cus_3f9a2b7c",
  "customer": {
    "name": "Acme Manufacturing GmbH",
    "externalId": "ERP-10293",
    "websiteUrl": "https://acme.example.com"
  }
}
Response
{
  "data": {
    "updateCustomer": {
      "id": "cus_3f9a2b7c",
      "name": "Acme Manufacturing GmbH",
      "status": "ONBOARDED",
      "externalId": "ERP-10293",
      "serviceOrganisation": ServiceOrganisation,
      "address": {
        "country": "Germany",
        "state": "North Rhine-Westphalia",
        "city": "Bielefeld",
        "postalCode": "33602",
        "street": "Turnerstraße 27"
      }
    }
  }
}

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
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      name
      description
      followTheSun {
        providesFollowTheSunSupport
        zoneId
        schedule {
          ...ServiceScheduleFragment
        }
      }
    }
    address {
      country
      state
      city
      postalCode
      street
      street2
    }
  }
}
Variables
{
  "externalId": "cus_3f9a2b7c",
  "customer": {
    "name": "Acme Manufacturing GmbH",
    "externalId": "ERP-10293",
    "websiteUrl": "https://acme.example.com"
  }
}
Response
{
  "data": {
    "updateCustomerByExternalId": {
      "id": "cus_3f9a2b7c",
      "name": "Acme Manufacturing GmbH",
      "status": "ONBOARDED",
      "externalId": "ERP-10293",
      "serviceOrganisation": ServiceOrganisation,
      "address": {
        "country": "Germany",
        "state": "North Rhine-Westphalia",
        "city": "Bielefeld",
        "postalCode": "33602",
        "street": "Turnerstraße 27"
      }
    }
  }
}

updateCustomerMachine

Response

Returns a CustomerMachine

Arguments
Name Description
id - ID!
customerMachine - UpdateCustomerMachineInput!

Example

Query
mutation UpdateCustomerMachine(
  $id: ID!,
  $customerMachine: UpdateCustomerMachineInput!
) {
  updateCustomerMachine(
    id: $id,
    customerMachine: $customerMachine
  ) {
    id
    serialNumber
    machineModel {
      id
      modelName
      technology
      brand
      externalId
    }
    displayName
    externalId
    avatar
    warrantyBegin
    warrantyEnd
    status
    customer {
      id
      name
      status
      externalId
      serviceOrganisation {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
        followTheSun {
          ...FollowTheSunFragment
        }
      }
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
    }
    isSp1Migration
    edgeDeviceSerialNumber
    machine {
      id
      owner {
        tenant {
          ...TenantFragment
        }
        ownerType
        owner {
          ... on CustomerMachine {
            ...CustomerMachineFragment
          }
          ... on Asset {
            ...AssetFragment
          }
        }
      }
      technology
      modelName
      brand
      avatar
      serialNumber
      edgeDevice {
        id
        iotDeviceId
      }
      collaborationStatus
    }
  }
}
Variables
{
  "id": "cus_3f9a2b7c",
  "customerMachine": {
    "serialNumber": "SN-2024-00931",
    "warrantyBegin": "2024-01-01",
    "warrantyEnd": "2026-01-01"
  }
}
Response
{
  "data": {
    "updateCustomerMachine": {
      "id": "cm_6f7a8b9c",
      "serialNumber": "SN-2024-00931",
      "machineModel": MachineModel,
      "displayName": "Example string",
      "externalId": "ASSET-00931",
      "avatar": "Example string",
      "warrantyBegin": "2024-06-01",
      "warrantyEnd": "2024-06-01",
      "status": "CONNECTED",
      "customer": Customer,
      "isSp1Migration": true,
      "edgeDeviceSerialNumber": "EDGE-00931",
      "machine": Machine
    }
  }
}

updateCustomerMachineByExternalId

Response

Returns a CustomerMachine

Arguments
Name Description
externalId - ID!
customerMachine - UpdateCustomerMachineInput!

Example

Query
mutation UpdateCustomerMachineByExternalId(
  $externalId: ID!,
  $customerMachine: UpdateCustomerMachineInput!
) {
  updateCustomerMachineByExternalId(
    externalId: $externalId,
    customerMachine: $customerMachine
  ) {
    id
    serialNumber
    machineModel {
      id
      modelName
      technology
      brand
      externalId
    }
    displayName
    externalId
    avatar
    warrantyBegin
    warrantyEnd
    status
    customer {
      id
      name
      status
      externalId
      serviceOrganisation {
        id
        tenant {
          ...TenantFragment
        }
        name
        description
        followTheSun {
          ...FollowTheSunFragment
        }
      }
      address {
        country
        state
        city
        postalCode
        street
        street2
      }
    }
    isSp1Migration
    edgeDeviceSerialNumber
    machine {
      id
      owner {
        tenant {
          ...TenantFragment
        }
        ownerType
        owner {
          ... on CustomerMachine {
            ...CustomerMachineFragment
          }
          ... on Asset {
            ...AssetFragment
          }
        }
      }
      technology
      modelName
      brand
      avatar
      serialNumber
      edgeDevice {
        id
        iotDeviceId
      }
      collaborationStatus
    }
  }
}
Variables
{
  "externalId": "cus_3f9a2b7c",
  "customerMachine": {
    "serialNumber": "SN-2024-00931",
    "warrantyBegin": "2024-01-01",
    "warrantyEnd": "2026-01-01"
  }
}
Response
{
  "data": {
    "updateCustomerMachineByExternalId": {
      "id": "cm_6f7a8b9c",
      "serialNumber": "SN-2024-00931",
      "machineModel": MachineModel,
      "displayName": "Example string",
      "externalId": "ASSET-00931",
      "avatar": "Example string",
      "warrantyBegin": "2024-06-01",
      "warrantyEnd": "2024-06-01",
      "status": "CONNECTED",
      "customer": Customer,
      "isSp1Migration": true,
      "edgeDeviceSerialNumber": "EDGE-00931",
      "machine": Machine
    }
  }
}

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
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      identityId
      isTechnicalUser
    }
    assignee {
      id
      name
      email
      tenant {
        id
        name
        shortname
        status
        address {
          ...AddressFragment
        }
        helpLink
      }
      identityId
      isTechnicalUser
    }
    customerMachine {
      id
      serialNumber
      machineModel {
        id
        modelName
        technology
        brand
        externalId
      }
      displayName
      externalId
      avatar
      warrantyBegin
      warrantyEnd
      status
      customer {
        id
        name
        status
        externalId
        serviceOrganisation {
          ...ServiceOrganisationFragment
        }
        address {
          ...AddressFragment
        }
      }
      isSp1Migration
      edgeDeviceSerialNumber
      machine {
        id
        owner {
          ...OwnerFragment
        }
        technology
        modelName
        brand
        avatar
        serialNumber
        edgeDevice {
          ...EdgeDeviceFragment
        }
        collaborationStatus
      }
    }
    priority
    severity
    externalId
    customFields {
      key
      value
    }
    closingReport {
      id
      isSolved
      notes
    }
    remoteAccess {
      totalDurationInMinutes
    }
  }
}
Variables
{
  "serviceCase": {
    "serviceCaseId": "sc_8b9c0d1e",
    "externalId": "TICKET-10492",
    "priority": 1
  }
}
Response
{
  "data": {
    "updateServiceCase": {
      "id": "sc_8b9c0d1e",
      "displayId": "SC-10492",
      "state": ServiceCaseState,
      "title": "Machine not starting after firmware update",
      "description": "Customer reports the machine fails to boot after the latest firmware rollout.",
      "createdAt": "2024-06-01T14:30:00.000Z",
      "updatedAt": "2024-06-01T14:30:00.000Z",
      "closedAt": "2024-06-01T14:30:00.000Z",
      "firstTimeAssignedAt": "2024-06-01T14:30:00.000Z",
      "firstTimeInProgressAt": "2024-06-01T14:30:00.000Z",
      "creator": User,
      "assignee": User,
      "customerMachine": CustomerMachine,
      "priority": 2,
      "severity": "MACHINE_BREAKDOWN",
      "externalId": "TICKET-10492",
      "customFields": [CustomFieldValue],
      "closingReport": ClosingReport,
      "remoteAccess": RemoteAccess
    }
  }
}

Types

AdapterType

Values
Enum Value Description

OPCUA

Example
OPCUA

Address

Fields
Field Name Description
country - String!
state - String
city - String
postalCode - String
street - String
street2 - String
Example
{
  "country": "Germany",
  "state": "North Rhine-Westphalia",
  "city": "Bielefeld",
  "postalCode": "33602",
  "street": "Turnerstraße 27"
}

AddressFilter

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

AggregationFunction

Values
Enum Value Description

MIN

MAX

DELTA

AVG

COUNT

Example
AVG

Asset

Fields
Field Name Description
id - ID!
edgeDevice - EdgeDevice Substituted by 'machine.edgeDevice'.
tenant - Tenant
serialNumber - String! Substituted by 'machine.serialNumber'.
displayName - String
avatar - String
machineModel - MachineModel Substituted by respective fields in 'machine'.
facility - Facility
dataSourceConfigs - [DataSourceConfigDetails]
machine - Machine
Example
{
  "id": "ast_3e4f5a6b",
  "edgeDevice": EdgeDevice,
  "tenant": Tenant,
  "serialNumber": "SN-2024-00931",
  "displayName": "CNC Mill #3",
  "avatar": "Example string",
  "machineModel": MachineModel,
  "facility": Facility,
  "dataSourceConfigs": [DataSourceConfigDetails],
  "machine": Machine
}

AssetQueryResult

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

AssetTimeSeries

Fields
Field Name Description
assetId - ID!
dataPointSeries - [DataPointTimeSeries!]!
Example
{
  "assetId": "cus_3f9a2b7c",
  "dataPointSeries": [DataPointTimeSeries]
}

Boolean

Description

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

Example
true

ClosingReport

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

CreateCustomerAddressInput

Fields
Input Field Description
country - String!
postalCode - String
city - String
street - String
street2 - String
state - String
Example
{
  "country": "Germany",
  "state": "North Rhine-Westphalia",
  "postalCode": "33602",
  "city": "Bielefeld",
  "street": "Turnerstraße 27"
}

CreateCustomerInput

Fields
Input Field Description
name - String!
externalId - String
serviceOrganisation - ID!
address - CreateCustomerAddressInput!
Example
{
  "name": "Acme Manufacturing GmbH",
  "externalId": "ERP-10293",
  "serviceOrganisation": "so_2b3c4d5e",
  "address": {
    "country": "Germany",
    "state": "North Rhine-Westphalia",
    "postalCode": "33602",
    "city": "Bielefeld",
    "street": "Turnerstraße 27"
  }
}

CreateCustomerMachineInput

Fields
Input Field Description
customer - CustomerInput!
serialNumber - String!
machineModel - MachineModelInput!
externalId - String
edgeDeviceSerialNumber - String
warrantyBegin - Date
warrantyEnd - Date
isSp1Migration - Boolean
Example
{
  "customer": {"customerId": "cus_3f9a2b7c"},
  "serialNumber": "SN-2024-00931",
  "machineModel": {"machineModelId": "mm_4d5e6f7a"},
  "externalId": "ASSET-00931",
  "warrantyBegin": "2024-01-01",
  "warrantyEnd": "2026-01-01"
}

CreateMachineModelInput

Fields
Input Field Description
modelName - String!
technology - String!
brand - String
externalId - String
Example
{
  "modelName": "SX-500",
  "technology": "Injection Molding",
  "brand": "Acme",
  "externalId": "MODEL-500"
}

CustomFieldValue

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

Customer

Fields
Field Name Description
id - ID!
name - String!
status - CustomerStatus!
externalId - String
serviceOrganisation - ServiceOrganisation
address - Address
Example
{
  "id": "cus_3f9a2b7c",
  "name": "Acme Manufacturing GmbH",
  "status": "ONBOARDED",
  "externalId": "ERP-10293",
  "serviceOrganisation": ServiceOrganisation,
  "address": {
    "country": "Germany",
    "state": "North Rhine-Westphalia",
    "city": "Bielefeld",
    "postalCode": "33602",
    "street": "Turnerstraße 27"
  }
}

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
{"status": {"is": "ONBOARDED"}, "name": {"contains": "Acme"}}

CustomerInput

Fields
Input Field Description
customerId - ID
customerExternalId - String
Example
{"customerId": "cus_3f9a2b7c"}

CustomerMachine

Fields
Field Name Description
id - ID!
serialNumber - String! Substituted by 'machine.serialNumber'.
machineModel - MachineModel
displayName - String Discontinued. To be removed.
externalId - String
avatar - String
warrantyBegin - Date
warrantyEnd - Date
status - CustomerMachineStatus Substituted by 'machine.collaborationStatus'.
customer - Customer
isSp1Migration - Boolean
edgeDeviceSerialNumber - String
machine - Machine
Example
{
  "id": "cm_6f7a8b9c",
  "serialNumber": "SN-2024-00931",
  "machineModel": MachineModel,
  "displayName": "Example string",
  "externalId": "ASSET-00931",
  "avatar": "Example string",
  "warrantyBegin": "2024-06-01",
  "warrantyEnd": "2024-06-01",
  "status": "CONNECTED",
  "customer": Customer,
  "isSp1Migration": true,
  "edgeDeviceSerialNumber": "EDGE-00931",
  "machine": Machine
}

CustomerMachineFilter

Fields
Input Field Description
externalId - StringExpression
customerId - IDExpression
customerName - StringExpression
status - CustomerMachineStatusExpression
serialNumber - StringExpression
machineModelName - StringExpression
brand - StringExpression
technology - StringExpression
id - StringExpression
serviceContracts - StringExpression
Example
{"serialNumber": {"equals": "SN-2024-00931"}, "status": {"is": "CONNECTED"}}

CustomerMachineOptions

Fields
Input Field Description
filter - CustomerMachineFilter
pagination - PaginationInput
sortBy - [CustomerMachineSorter!]
Example
{
  "filter": {"serialNumber": {"equals": "SN-2024-00931"}},
  "pagination": {"page": 1, "pageSize": 25}
}

CustomerMachineQueryResult

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

CustomerMachineSorter

Fields
Input Field Description
id - SortDirection
status - SortDirection
brand - SortDirection
technology - SortDirection
model - SortDirection
externalId - SortDirection
serialNumber - SortDirection
customerName - SortDirection
Example
{"serialNumber": "ASC"}

CustomerMachineStatus

Values
Enum Value Description

NEW

PROPOSED

UNCONNECTED

CONNECTED

Example
CONNECTED

CustomerMachineStatusExpression

Fields
Input Field Description
is - CustomerMachineStatus
Example
{"is": "CONNECTED"}

CustomerOptions

Fields
Input Field Description
filter - CustomerFilter
pagination - PaginationInput
sortBy - [CustomerSorter!]
Example
{
  "filter": {"status": {"is": "ONBOARDED"}},
  "pagination": {"page": 1, "pageSize": 25},
  "sortBy": [{"name": "ASC"}]
}

CustomerQueryResult

Fields
Field Name Description
data - [Customer]!
pageInfo - PageInfo
Example
{
  "data": [Customer],
  "pageInfo": {
    "totalElements": 132,
    "totalPages": 6,
    "currentPage": 1,
    "fromElement": 1,
    "untilElement": 25
  }
}

CustomerSorter

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

CustomerStatus

Values
Enum Value Description

NEW

INVITED

ONBOARDED

DEMO

CONVERTED

Example
ONBOARDED

CustomerStatusExpression

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

DataPoint

Fields
Field Name Description
timestampUtc - Int!
dataPointName - String!
value - String!
Example
{
  "timestampUtc": 33602,
  "dataPointName": "Example string",
  "value": "Example string"
}

DataPointQueryRange

Values
Enum Value Description

IN_RANGE

INCLUDE_LAST_BEFORE

INCLUDE_FIRST_AFTER

INCLUDE_LAST_BEFORE_AND_FIRST_AFTER

Example
IN_RANGE

DataPointSortOrder

Values
Enum Value Description

ASCENDING

DESCENDING

Example
ASCENDING

DataPointTimeSeries

Fields
Field Name Description
dataPointName - String!
values - [FloatWithTimestamp]!
Example
{
  "dataPointName": "Example string",
  "values": [FloatWithTimestamp]
}

DataPointsOptions

Fields
Input Field Description
assetIds - [ID!]!
timeRange - TimeRange!
dataPointNames - [String!]!
take - Int!
dataPointQueryRange - DataPointQueryRange!
sortOrder - DataPointSortOrder!
Example
{
  "assetIds": ["ast_3e4f5a6b"],
  "timeRange": {
    "from": "2024-06-01T00:00:00.000Z",
    "to": "2024-06-01T23:59:59.000Z"
  },
  "dataPointNames": ["temperature", "pressure"],
  "take": 100,
  "dataPointQueryRange": "IN_RANGE",
  "sortOrder": "ASCENDING"
}

DataPointsResult

Fields
Field Name Description
machineDataPoints - [MachineDataPoints!]!
Example
{"machineDataPoints": [MachineDataPoints]}

DataSourceConfigDetails

Fields
Field Name Description
id - ID!
tenantId - ID!
name - String!
adapterType - AdapterType!
payload - [DataSourceConfigPayload]!
Example
{
  "id": "cus_3f9a2b7c",
  "tenantId": "cus_3f9a2b7c",
  "name": "Example string",
  "adapterType": "OPCUA",
  "payload": [DataSourceConfigPayload]
}

DataSourceConfigPayload

Fields
Field Name Description
measurementName - String!
heartbeatInterval - Int!
opcSamplingInterval - Int!
opcPublishingInterval - Int!
hotNode - Boolean
isNumeric - Boolean
Example
{
  "measurementName": "Example string",
  "heartbeatInterval": 33602,
  "opcSamplingInterval": 33602,
  "opcPublishingInterval": 33602,
  "hotNode": true,
  "isNumeric": true
}

Date

Example
"2024-06-01"

DateTime

Example
"2024-06-01T14:30:00.000Z"

Duration

Example
"PT1H30M"

EdgeDevice

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

Facility

Fields
Field Name Description
id - ID!
tenant - Tenant!
name - String!
description - String
Example
{
  "id": "fac_7a8b9c0d",
  "tenant": Tenant,
  "name": "Plant 1 - Bielefeld",
  "description": "Main production facility"
}

FacilityQueryResult

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

Float

Description

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

Example
23.5

FloatWithTimestamp

Fields
Field Name Description
timestamp - DateTime!
value - Float
Example
{
  "timestamp": "2024-06-01T14:30:00.000Z",
  "value": 23.5
}

FollowTheSun

Fields
Field Name Description
providesFollowTheSunSupport - Boolean!
zoneId - String
schedule - [ServiceSchedule!]!
Example
{
  "providesFollowTheSunSupport": true,
  "zoneId": "Example string",
  "schedule": [ServiceSchedule]
}

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

IDExpression

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

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
33602

LocalTime

Example
"14:30:00"

Machine

Fields
Field Name Description
id - ID!
owner - Owner
technology - String
modelName - String
brand - String
avatar - String
serialNumber - String!
edgeDevice - EdgeDevice
collaborationStatus - MachineCollaborationStatus
Example
{
  "id": "mch_5a6b7c8d",
  "owner": Owner,
  "technology": "Injection Molding",
  "modelName": "SX-500",
  "brand": "Acme",
  "avatar": "Example string",
  "serialNumber": "SN-2024-00931",
  "edgeDevice": EdgeDevice,
  "collaborationStatus": "SHARED"
}

MachineCollaborationStatus

Values
Enum Value Description

INTERNAL

PROPOSED

SHARED

DEACTIVATED

REJECTED

Example
SHARED

MachineDataPoints

Fields
Field Name Description
assetId - ID!
dataPoints - [DataPoint!]!
Example
{
  "assetId": "cus_3f9a2b7c",
  "dataPoints": [DataPoint]
}

MachineInvoiceEnclosure

Fields
Field Name Description
machine - Machine!
billedOwnerTenant - Tenant!
serialNumber - String
validFor - YearMonth!
ownerType - OwnerType!
customer - Customer
licenseType - MachineLicenseType!
Example
{
  "machine": Machine,
  "billedOwnerTenant": Tenant,
  "serialNumber": "Example string",
  "validFor": YearMonth,
  "ownerType": "CUSTOMER_MACHINE",
  "customer": Customer,
  "licenseType": "CONNECTED"
}

MachineInvoiceEnclosureFilter

Fields
Input Field Description
machineId - StringExpression
ownerType - OwnerTypeFilter
customerId - StringExpression
licenseType - MachineLicenseTypeFilter
serialNumber - StringExpression
and - [MachineInvoiceEnclosureFilter!]
or - [MachineInvoiceEnclosureFilter!]
not - MachineInvoiceEnclosureFilter Not can only be used if there are no other filters defined on this level
Example
{"ownerType": {"is": "CUSTOMER_MACHINE"}, "licenseType": {"is": "CONNECTED"}}

MachineInvoiceEnclosureOptions

Fields
Input Field Description
filter - MachineInvoiceEnclosureFilter
pagination - PaginationInput!
sortBy - [MachineInvoiceEnclosureSorter!]
Example
{
  "filter": {"ownerType": {"is": "CUSTOMER_MACHINE"}},
  "pagination": {"page": 1, "pageSize": 25}
}

MachineInvoiceEnclosureQueryResult

Fields
Field Name Description
pageInfo - PageInfo!
data - [MachineInvoiceEnclosure!]!
Example
{
  "pageInfo": {
    "totalElements": 132,
    "totalPages": 6,
    "currentPage": 1,
    "fromElement": 1,
    "untilElement": 25
  },
  "data": [MachineInvoiceEnclosure]
}

MachineInvoiceEnclosureSorter

Fields
Input Field Description
machineId - SortDirection
ownerType - SortDirection
customerId - SortDirection
licenseType - SortDirection
serialNumber - SortDirection
Example
{"serialNumber": "ASC"}

MachineInvoiceEnclosuresInput

Fields
Input Field Description
yearMonthInput - YearMonthInput!
Example
{"yearMonthInput": {"year": 2024, "month": 6}}

MachineLicenseType

Values
Enum Value Description

UNCONNECTED

CONNECTED

Example
CONNECTED

MachineLicenseTypeFilter

Fields
Input Field Description
is - MachineLicenseType
Example
{"is": "CONNECTED"}

MachineModel

Fields
Field Name Description
id - ID!
modelName - String!
technology - String!
brand - String
externalId - String
Example
{
  "id": "mm_4d5e6f7a",
  "modelName": "SX-500",
  "technology": "Injection Molding",
  "brand": "Acme",
  "externalId": "MODEL-500"
}

MachineModelFilter

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

MachineModelInput

Fields
Input Field Description
machineModelId - ID
machineModelExternalId - String
Example
{"machineModelId": "mm_4d5e6f7a"}

MachineModelOptions

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

MachineModelQueryResult

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

MachineOwner

Types
Union Types

CustomerMachine

Asset

Example
{
  "id": "cm_6f7a8b9c",
  "serialNumber": "SN-2024-00931",
  "externalId": "ASSET-00931"
}

Owner

Fields
Field Name Description
tenant - Tenant
ownerType - OwnerType
owner - MachineOwner
Example
{
  "tenant": Tenant,
  "ownerType": "CUSTOMER_MACHINE",
  "owner": {
    "id": "cm_6f7a8b9c",
    "serialNumber": "SN-2024-00931",
    "externalId": "ASSET-00931"
  }
}

OwnerType

Values
Enum Value Description

ASSET

CUSTOMER_MACHINE

Example
CUSTOMER_MACHINE

OwnerTypeFilter

Fields
Input Field Description
is - OwnerType
Example
{"is": "CUSTOMER_MACHINE"}

PageInfo

Fields
Field Name Description
totalElements - Int
totalPages - Int
currentPage - Int
fromElement - Int
untilElement - Int
Example
{
  "totalElements": 132,
  "totalPages": 6,
  "currentPage": 1,
  "fromElement": 1,
  "untilElement": 25
}

PaginationInput

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

Permission

Fields
Field Name Description
key - String!
displayName - String!
description - String!
applicationId - ID!
Example
{
  "key": "Example string",
  "displayName": "Example string",
  "description": "Example string",
  "applicationId": "cus_3f9a2b7c"
}

PermissionsOfCurrentUserQueryResult

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

RemoteAccess

Fields
Field Name Description
totalDurationInMinutes - Int!
Example
{"totalDurationInMinutes": 33602}

SeriesDataSource

Values
Enum Value Description

PRE_AGGREGATED

ORIGINAL

Example
PRE_AGGREGATED

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
remoteAccess - RemoteAccess
Example
{
  "id": "sc_8b9c0d1e",
  "displayId": "SC-10492",
  "state": ServiceCaseState,
  "title": "Machine not starting after firmware update",
  "description": "Customer reports the machine fails to boot after the latest firmware rollout.",
  "createdAt": "2024-06-01T14:30:00.000Z",
  "updatedAt": "2024-06-01T14:30:00.000Z",
  "closedAt": "2024-06-01T14:30:00.000Z",
  "firstTimeAssignedAt": "2024-06-01T14:30:00.000Z",
  "firstTimeInProgressAt": "2024-06-01T14:30:00.000Z",
  "creator": User,
  "assignee": User,
  "customerMachine": CustomerMachine,
  "priority": 2,
  "severity": "MACHINE_BREAKDOWN",
  "externalId": "TICKET-10492",
  "customFields": [CustomFieldValue],
  "closingReport": ClosingReport,
  "remoteAccess": RemoteAccess
}

ServiceCaseFilter

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

ServiceCaseOptions

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

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": "cus_3f9a2b7c",
  "index": 33602,
  "name": "Example string",
  "isClosed": true
}

ServiceCaseView

Values
Enum Value Description

OPERATOR

SERVICE_PROVIDER

Example
SERVICE_PROVIDER

ServiceContract

Fields
Field Name Description
id - ID!
contractName - String!
shortDescription - String
isAssignable - Boolean!
followTheSun - Boolean!
serviceContractAssignments - [ServiceContractAssignment!]!
Example
{
  "id": "sctr_1c2d3e4f",
  "contractName": "Premium Support 24/7",
  "shortDescription": "Round-the-clock remote support with a 2h response time",
  "isAssignable": true,
  "followTheSun": true,
  "serviceContractAssignments": [
    ServiceContractAssignment
  ]
}

ServiceContractAssignment

Fields
Field Name Description
id - ID!
serviceContract - ServiceContract!
customerMachine - CustomerMachine
startDate - DateTime!
endDate - DateTime!
createdAt - DateTime!
updatedAt - DateTime
Example
{
  "id": "cus_3f9a2b7c",
  "serviceContract": ServiceContract,
  "customerMachine": CustomerMachine,
  "startDate": "2024-06-01T14:30:00.000Z",
  "endDate": "2024-06-01T14:30:00.000Z",
  "createdAt": "2024-06-01T14:30:00.000Z",
  "updatedAt": "2024-06-01T14:30:00.000Z"
}

ServiceContractQueryResult

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

ServiceOrganisation

Fields
Field Name Description
id - ID!
tenant - Tenant!
name - String!
description - String
followTheSun - FollowTheSun
Example
{
  "id": "so_2b3c4d5e",
  "tenant": Tenant,
  "name": "Global Service Desk",
  "description": "Handles service cases for EMEA customers",
  "followTheSun": FollowTheSun
}

ServiceOrganisationQueryResult

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

ServiceSchedule

Fields
Field Name Description
startTime - LocalTime!
endTime - LocalTime!
dayOfWeek - Int!
Example
{
  "startTime": "14:30:00",
  "endTime": "14:30:00",
  "dayOfWeek": 33602
}

Severity

Values
Enum Value Description

MACHINE_BREAKDOWN

PRODUCTION_IMPAIRED

NO_IMPAIRMENT

Example
MACHINE_BREAKDOWN

SortDirection

Values
Enum Value Description

ASC

DESC

Example
ASC

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
"Example string"

StringExpression

Fields
Input Field Description
equals - String
contains - String
starts - String
ends - String
Example
{"contains": "Acme"}

Tenant

Fields
Field Name Description
id - ID!
name - String!
shortname - String
status - TenantStatus
address - Address
helpLink - String
Example
{
  "id": "ten_1a2b3c4d",
  "name": "symmedia Service GmbH",
  "shortname": "symmedia",
  "status": "ACTIVE",
  "address": {
    "country": "Germany",
    "state": "North Rhine-Westphalia",
    "city": "Bielefeld",
    "postalCode": "33602",
    "street": "Turnerstraße 27"
  },
  "helpLink": "https://help.symmedia-hub.com"
}

TenantFilter

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

TenantLinkType

Values
Enum Value Description

ALL

SERVICE_PROVIDER

OPERATOR

NONE

Example
ALL

TenantOptions

Fields
Input Field Description
filter - TenantFilter
Example
{"filter": {"status": ["ACTIVE"]}}

TenantQueryResult

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

TenantStatus

Values
Enum Value Description

INCOMPLETE

ACTIVE

DEACTIVATED

Example
ACTIVE

TimeRange

Fields
Input Field Description
from - DateTime
to - DateTime
Example
{"from": "2024-06-01T00:00:00.000Z", "to": "2024-06-01T23:59:59.000Z"}

TimeSeriesOptions

Fields
Input Field Description
assetIds - [ID!]!
timeRange - TimeRange!
dataPointNames - [String!]!
aggregation - AggregationFunction!
binSize - Duration!
dataSource - SeriesDataSource!
Example
{
  "assetIds": ["ast_3e4f5a6b"],
  "timeRange": {
    "from": "2024-06-01T00:00:00.000Z",
    "to": "2024-06-01T23:59:59.000Z"
  },
  "dataPointNames": ["temperature"],
  "aggregation": "AVG",
  "binSize": "PT1H",
  "dataSource": "PRE_AGGREGATED"
}

TimeSeriesResult

Fields
Field Name Description
timestamps - [DateTime!]!
assetSeries - [AssetTimeSeries!]!
Example
{
  "timestamps": [
    "2024-06-01T14:30:00.000Z"
  ],
  "assetSeries": [AssetTimeSeries]
}

UpdateCustomerAddressInput

Fields
Input Field Description
country - String
postalCode - String
city - String
street - String
street2 - String
state - String
Example
{
  "country": "Germany",
  "state": "North Rhine-Westphalia",
  "postalCode": "33602",
  "city": "Bielefeld",
  "street": "Turnerstraße 27"
}

UpdateCustomerInput

Fields
Input Field Description
name - String
externalId - String
websiteUrl - String
serviceOrganisation - ID
address - UpdateCustomerAddressInput
Example
{
  "name": "Acme Manufacturing GmbH",
  "externalId": "ERP-10293",
  "websiteUrl": "https://acme.example.com"
}

UpdateCustomerMachineInput

Fields
Input Field Description
customer - CustomerInput
serialNumber - String
machineModel - MachineModelInput
warrantyBegin - Date
warrantyEnd - Date
isSp1Migration - Boolean
Example
{
  "serialNumber": "SN-2024-00931",
  "warrantyBegin": "2024-01-01",
  "warrantyEnd": "2026-01-01"
}

UpdateServiceCaseInput

Fields
Input Field Description
serviceCaseId - ID!
externalId - String
priority - Int
Example
{"serviceCaseId": "sc_8b9c0d1e", "externalId": "TICKET-10492", "priority": 1}

User

Fields
Field Name Description
id - ID!
name - String!
email - String
tenant - Tenant!
identityId - ID
isTechnicalUser - Boolean!
Example
{
  "id": "usr_9d8e7f6a",
  "name": "Jane Doe",
  "email": "jane.doe@example.com",
  "tenant": Tenant,
  "identityId": "idp_5c6d7e8f",
  "isTechnicalUser": false
}

YearMonth

Fields
Field Name Description
year - Int!
month - Int!
Example
{"year": 33602, "month": 33602}

YearMonthInput

Fields
Input Field Description
year - Int!
month - Int!
Example
{"year": 2024, "month": 6}