Edgehog GraphQL API Reference

Welcome to the Edgehog GraphQL API reference! This reference includes the complete set of GraphQL types, queries, mutations, and their parameters for managing devices.

API Endpoints
http://localhost:4000/api

Queries

baseImage

Description

Returns a single base image.

Response

Returns a BaseImage

Arguments
Name Description
id - ID! The id of the record

Example

Query
query baseImage($id: ID!) {
  baseImage(id: $id) {
    id
    version
    startingVersionRequirement
    url
    baseImageCollection {
      ...BaseImageCollectionFragment
    }
    localizedDescriptions {
      ...LocalizedAttributeFragment
    }
    localizedReleaseDisplayNames {
      ...LocalizedAttributeFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "baseImage": {
      "id": 4,
      "version": "xyz789",
      "startingVersionRequirement": "xyz789",
      "url": "xyz789",
      "baseImageCollection": BaseImageCollection,
      "localizedDescriptions": [LocalizedAttribute],
      "localizedReleaseDisplayNames": [LocalizedAttribute]
    }
  }
}

baseImageCollection

Description

Returns a single base image collection.

Response

Returns a BaseImageCollection

Arguments
Name Description
id - ID! The id of the record

Example

Query
query baseImageCollection($id: ID!) {
  baseImageCollection(id: $id) {
    id
    name
    handle
    systemModel {
      ...SystemModelFragment
    }
    baseImages {
      ...BaseImageFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "baseImageCollection": {
      "id": 4,
      "name": "xyz789",
      "handle": "xyz789",
      "systemModel": SystemModel,
      "baseImages": [BaseImage]
    }
  }
}

baseImageCollections

Description

Returns a list of base image collections.

Response

Returns [BaseImageCollection!]!

Arguments
Name Description
sort - [BaseImageCollectionSortInput] How to sort the records in the response
filter - BaseImageCollectionFilterInput A filter to limit the results

Example

Query
query baseImageCollections(
  $sort: [BaseImageCollectionSortInput],
  $filter: BaseImageCollectionFilterInput
) {
  baseImageCollections(
    sort: $sort,
    filter: $filter
  ) {
    id
    name
    handle
    systemModel {
      ...SystemModelFragment
    }
    baseImages {
      ...BaseImageFragment
    }
  }
}
Variables
{
  "sort": [BaseImageCollectionSortInput],
  "filter": BaseImageCollectionFilterInput
}
Response
{
  "data": {
    "baseImageCollections": [
      {
        "id": 4,
        "name": "abc123",
        "handle": "xyz789",
        "systemModel": SystemModel,
        "baseImages": [BaseImage]
      }
    ]
  }
}

device

Description

Returns a single device.

Response

Returns a Device

Arguments
Name Description
id - ID! The id of the record

Example

Query
query device($id: ID!) {
  device(id: $id) {
    id
    deviceId
    name
    online
    lastConnection
    lastDisconnection
    serialNumber
    systemModel {
      ...SystemModelFragment
    }
    tags {
      ...TagFragment
    }
    deviceGroups {
      ...DeviceGroupFragment
    }
    otaOperations {
      ...OtaOperationFragment
    }
    capabilities
    cellularConnection {
      ...ModemFragment
    }
    baseImage {
      ...BaseImageInfoFragment
    }
    batteryStatus {
      ...BatterySlotFragment
    }
    hardwareInfo {
      ...HardwareInfoFragment
    }
    location {
      ...LocationFragment
    }
    networkInterfaces {
      ...NetworkInterfaceFragment
    }
    osInfo {
      ...OsInfoFragment
    }
    position {
      ...PositionFragment
    }
    runtimeInfo {
      ...RuntimeInfoFragment
    }
    storageUsage {
      ...StorageUnitFragment
    }
    systemStatus {
      ...SystemStatusFragment
    }
    wifiScanResults {
      ...WifiScanResultFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "device": {
      "id": 4,
      "deviceId": "xyz789",
      "name": "xyz789",
      "online": true,
      "lastConnection": "2007-12-03T10:15:30Z",
      "lastDisconnection": "2007-12-03T10:15:30Z",
      "serialNumber": "xyz789",
      "systemModel": SystemModel,
      "tags": [Tag],
      "deviceGroups": [DeviceGroup],
      "otaOperations": [OtaOperation],
      "capabilities": ["BASE_IMAGE"],
      "cellularConnection": [Modem],
      "baseImage": BaseImageInfo,
      "batteryStatus": [BatterySlot],
      "hardwareInfo": HardwareInfo,
      "location": Location,
      "networkInterfaces": [NetworkInterface],
      "osInfo": OsInfo,
      "position": Position,
      "runtimeInfo": RuntimeInfo,
      "storageUsage": [StorageUnit],
      "systemStatus": SystemStatus,
      "wifiScanResults": [WifiScanResult]
    }
  }
}

deviceGroup

Description

Returns a single device group.

Response

Returns a DeviceGroup

Arguments
Name Description
id - ID! The id of the record

Example

Query
query deviceGroup($id: ID!) {
  deviceGroup(id: $id) {
    id
    name
    handle
    selector
    devices {
      ...DeviceFragment
    }
    updateChannel {
      ...UpdateChannelFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deviceGroup": {
      "id": "4",
      "name": "abc123",
      "handle": "xyz789",
      "selector": "xyz789",
      "devices": [Device],
      "updateChannel": UpdateChannel
    }
  }
}

deviceGroups

Description

Returns a list of device groups.

Response

Returns [DeviceGroup!]!

Arguments
Name Description
sort - [DeviceGroupSortInput] How to sort the records in the response
filter - DeviceGroupFilterInput A filter to limit the results

Example

Query
query deviceGroups(
  $sort: [DeviceGroupSortInput],
  $filter: DeviceGroupFilterInput
) {
  deviceGroups(
    sort: $sort,
    filter: $filter
  ) {
    id
    name
    handle
    selector
    devices {
      ...DeviceFragment
    }
    updateChannel {
      ...UpdateChannelFragment
    }
  }
}
Variables
{
  "sort": [DeviceGroupSortInput],
  "filter": DeviceGroupFilterInput
}
Response
{
  "data": {
    "deviceGroups": [
      {
        "id": "4",
        "name": "abc123",
        "handle": "xyz789",
        "selector": "xyz789",
        "devices": [Device],
        "updateChannel": UpdateChannel
      }
    ]
  }
}

devices

Description

Returns a list of devices.

Response

Returns [Device!]!

Arguments
Name Description
sort - [DeviceSortInput] How to sort the records in the response
filter - DeviceFilterInput A filter to limit the results

Example

Query
query devices(
  $sort: [DeviceSortInput],
  $filter: DeviceFilterInput
) {
  devices(
    sort: $sort,
    filter: $filter
  ) {
    id
    deviceId
    name
    online
    lastConnection
    lastDisconnection
    serialNumber
    systemModel {
      ...SystemModelFragment
    }
    tags {
      ...TagFragment
    }
    deviceGroups {
      ...DeviceGroupFragment
    }
    otaOperations {
      ...OtaOperationFragment
    }
    capabilities
    cellularConnection {
      ...ModemFragment
    }
    baseImage {
      ...BaseImageInfoFragment
    }
    batteryStatus {
      ...BatterySlotFragment
    }
    hardwareInfo {
      ...HardwareInfoFragment
    }
    location {
      ...LocationFragment
    }
    networkInterfaces {
      ...NetworkInterfaceFragment
    }
    osInfo {
      ...OsInfoFragment
    }
    position {
      ...PositionFragment
    }
    runtimeInfo {
      ...RuntimeInfoFragment
    }
    storageUsage {
      ...StorageUnitFragment
    }
    systemStatus {
      ...SystemStatusFragment
    }
    wifiScanResults {
      ...WifiScanResultFragment
    }
  }
}
Variables
{
  "sort": [DeviceSortInput],
  "filter": DeviceFilterInput
}
Response
{
  "data": {
    "devices": [
      {
        "id": "4",
        "deviceId": "abc123",
        "name": "xyz789",
        "online": false,
        "lastConnection": "2007-12-03T10:15:30Z",
        "lastDisconnection": "2007-12-03T10:15:30Z",
        "serialNumber": "xyz789",
        "systemModel": SystemModel,
        "tags": [Tag],
        "deviceGroups": [DeviceGroup],
        "otaOperations": [OtaOperation],
        "capabilities": ["BASE_IMAGE"],
        "cellularConnection": [Modem],
        "baseImage": BaseImageInfo,
        "batteryStatus": [BatterySlot],
        "hardwareInfo": HardwareInfo,
        "location": Location,
        "networkInterfaces": [NetworkInterface],
        "osInfo": OsInfo,
        "position": Position,
        "runtimeInfo": RuntimeInfo,
        "storageUsage": [StorageUnit],
        "systemStatus": SystemStatus,
        "wifiScanResults": [WifiScanResult]
      }
    ]
  }
}

existingDeviceTags

Description

Returns Tags currently assigned to some device.

Response

Returns [Tag!]!

Arguments
Name Description
sort - [TagSortInput] How to sort the records in the response
filter - TagFilterInput A filter to limit the results

Example

Query
query existingDeviceTags(
  $sort: [TagSortInput],
  $filter: TagFilterInput
) {
  existingDeviceTags(
    sort: $sort,
    filter: $filter
  ) {
    id
    name
  }
}
Variables
{
  "sort": [TagSortInput],
  "filter": TagFilterInput
}
Response
{
  "data": {
    "existingDeviceTags": [
      {"id": 4, "name": "xyz789"}
    ]
  }
}

forwarderConfig

Description

Fetches the forwarder config, if available. Without a configuration, forwarding functionalities are not available.

Response

Returns a ForwarderConfig

Example

Query
query forwarderConfig {
  forwarderConfig {
    id
    hostname
    port
    secureSessions
  }
}
Response
{
  "data": {
    "forwarderConfig": {
      "id": "4",
      "hostname": "xyz789",
      "port": 123,
      "secureSessions": true
    }
  }
}

forwarderSession

Description

Fetches a forwarder session by its token and the device ID.

Response

Returns a ForwarderSession

Arguments
Name Description
token - String!
deviceId - ID!

Example

Query
query forwarderSession(
  $token: String!,
  $deviceId: ID!
) {
  forwarderSession(
    token: $token,
    deviceId: $deviceId
  ) {
    id
    token
    status
    forwarderHostname
    forwarderPort
    secure
  }
}
Variables
{
  "token": "abc123",
  "deviceId": "4"
}
Response
{
  "data": {
    "forwarderSession": {
      "id": 4,
      "token": "xyz789",
      "status": "CONNECTED",
      "forwarderHostname": "xyz789",
      "forwarderPort": 987,
      "secure": false
    }
  }
}

hardwareType

Description

Returns a single hardware type.

Response

Returns a HardwareType

Arguments
Name Description
id - ID! The id of the record

Example

Query
query hardwareType($id: ID!) {
  hardwareType(id: $id) {
    id
    handle
    name
    partNumbers {
      ...HardwareTypePartNumberFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "hardwareType": {
      "id": 4,
      "handle": "abc123",
      "name": "xyz789",
      "partNumbers": [HardwareTypePartNumber]
    }
  }
}

hardwareTypes

Description

Returns a list of hardware types.

Response

Returns [HardwareType!]!

Arguments
Name Description
sort - [HardwareTypeSortInput] How to sort the records in the response
filter - HardwareTypeFilterInput A filter to limit the results

Example

Query
query hardwareTypes(
  $sort: [HardwareTypeSortInput],
  $filter: HardwareTypeFilterInput
) {
  hardwareTypes(
    sort: $sort,
    filter: $filter
  ) {
    id
    handle
    name
    partNumbers {
      ...HardwareTypePartNumberFragment
    }
  }
}
Variables
{
  "sort": [HardwareTypeSortInput],
  "filter": HardwareTypeFilterInput
}
Response
{
  "data": {
    "hardwareTypes": [
      {
        "id": 4,
        "handle": "abc123",
        "name": "xyz789",
        "partNumbers": [HardwareTypePartNumber]
      }
    ]
  }
}

node

Description

Retrieves a Node from its global id

Response

Returns a Node!

Arguments
Name Description
id - ID! The Node unique identifier

Example

Query
query node($id: ID!) {
  node(id: $id) {
    id
  }
}
Variables
{"id": 4}
Response
{"data": {"node": {"id": 4}}}

systemModel

Description

Returns a single system model.

Response

Returns a SystemModel

Arguments
Name Description
id - ID! The id of the record

Example

Query
query systemModel($id: ID!) {
  systemModel(id: $id) {
    id
    handle
    name
    pictureUrl
    partNumbers {
      ...SystemModelPartNumberFragment
    }
    hardwareType {
      ...HardwareTypeFragment
    }
    localizedDescriptions {
      ...LocalizedAttributeFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "systemModel": {
      "id": "4",
      "handle": "abc123",
      "name": "xyz789",
      "pictureUrl": "xyz789",
      "partNumbers": [SystemModelPartNumber],
      "hardwareType": HardwareType,
      "localizedDescriptions": [LocalizedAttribute]
    }
  }
}

systemModels

Description

Returns a list of system models.

Response

Returns [SystemModel!]!

Arguments
Name Description
sort - [SystemModelSortInput] How to sort the records in the response
filter - SystemModelFilterInput A filter to limit the results

Example

Query
query systemModels(
  $sort: [SystemModelSortInput],
  $filter: SystemModelFilterInput
) {
  systemModels(
    sort: $sort,
    filter: $filter
  ) {
    id
    handle
    name
    pictureUrl
    partNumbers {
      ...SystemModelPartNumberFragment
    }
    hardwareType {
      ...HardwareTypeFragment
    }
    localizedDescriptions {
      ...LocalizedAttributeFragment
    }
  }
}
Variables
{
  "sort": [SystemModelSortInput],
  "filter": SystemModelFilterInput
}
Response
{
  "data": {
    "systemModels": [
      {
        "id": 4,
        "handle": "xyz789",
        "name": "abc123",
        "pictureUrl": "xyz789",
        "partNumbers": [SystemModelPartNumber],
        "hardwareType": HardwareType,
        "localizedDescriptions": [LocalizedAttribute]
      }
    ]
  }
}

tenantInfo

Description

Retrieves the current tenant.

Response

Returns a TenantInfo!

Example

Query
query tenantInfo {
  tenantInfo {
    id
    name
    slug
    defaultLocale
  }
}
Response
{
  "data": {
    "tenantInfo": {
      "id": "4",
      "name": "abc123",
      "slug": "xyz789",
      "defaultLocale": "abc123"
    }
  }
}

updateCampaign

Description

Returns a single update campaign.

Response

Returns an UpdateCampaign

Arguments
Name Description
id - ID! The id of the record

Example

Query
query updateCampaign($id: ID!) {
  updateCampaign(id: $id) {
    id
    name
    status
    outcome
    rolloutMechanism {
      ... on PushRollout {
        ...PushRolloutFragment
      }
    }
    baseImage {
      ...BaseImageFragment
    }
    updateChannel {
      ...UpdateChannelFragment
    }
    updateTargets {
      ...UpdateTargetFragment
    }
    totalTargetCount
    idleTargetCount
    inProgressTargetCount
    failedTargetCount
    successfulTargetCount
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "updateCampaign": {
      "id": "4",
      "name": "abc123",
      "status": "IDLE",
      "outcome": "SUCCESS",
      "rolloutMechanism": PushRollout,
      "baseImage": BaseImage,
      "updateChannel": UpdateChannel,
      "updateTargets": [UpdateTarget],
      "totalTargetCount": 123,
      "idleTargetCount": 987,
      "inProgressTargetCount": 123,
      "failedTargetCount": 987,
      "successfulTargetCount": 987
    }
  }
}

updateCampaigns

Description

Returns a list of update campaigns.

Response

Returns [UpdateCampaign!]!

Arguments
Name Description
sort - [UpdateCampaignSortInput] How to sort the records in the response
filter - UpdateCampaignFilterInput A filter to limit the results

Example

Query
query updateCampaigns(
  $sort: [UpdateCampaignSortInput],
  $filter: UpdateCampaignFilterInput
) {
  updateCampaigns(
    sort: $sort,
    filter: $filter
  ) {
    id
    name
    status
    outcome
    rolloutMechanism {
      ... on PushRollout {
        ...PushRolloutFragment
      }
    }
    baseImage {
      ...BaseImageFragment
    }
    updateChannel {
      ...UpdateChannelFragment
    }
    updateTargets {
      ...UpdateTargetFragment
    }
    totalTargetCount
    idleTargetCount
    inProgressTargetCount
    failedTargetCount
    successfulTargetCount
  }
}
Variables
{
  "sort": [UpdateCampaignSortInput],
  "filter": UpdateCampaignFilterInput
}
Response
{
  "data": {
    "updateCampaigns": [
      {
        "id": 4,
        "name": "xyz789",
        "status": "IDLE",
        "outcome": "SUCCESS",
        "rolloutMechanism": PushRollout,
        "baseImage": BaseImage,
        "updateChannel": UpdateChannel,
        "updateTargets": [UpdateTarget],
        "totalTargetCount": 123,
        "idleTargetCount": 987,
        "inProgressTargetCount": 987,
        "failedTargetCount": 987,
        "successfulTargetCount": 123
      }
    ]
  }
}

updateChannel

Description

Returns a single update channel.

Response

Returns an UpdateChannel

Arguments
Name Description
id - ID! The id of the record

Example

Query
query updateChannel($id: ID!) {
  updateChannel(id: $id) {
    id
    handle
    name
    targetGroups {
      ...DeviceGroupFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "updateChannel": {
      "id": 4,
      "handle": "abc123",
      "name": "xyz789",
      "targetGroups": [DeviceGroup]
    }
  }
}

updateChannels

Description

Returns a list of update channels.

Response

Returns [UpdateChannel!]!

Arguments
Name Description
sort - [UpdateChannelSortInput] How to sort the records in the response
filter - UpdateChannelFilterInput A filter to limit the results

Example

Query
query updateChannels(
  $sort: [UpdateChannelSortInput],
  $filter: UpdateChannelFilterInput
) {
  updateChannels(
    sort: $sort,
    filter: $filter
  ) {
    id
    handle
    name
    targetGroups {
      ...DeviceGroupFragment
    }
  }
}
Variables
{
  "sort": [UpdateChannelSortInput],
  "filter": UpdateChannelFilterInput
}
Response
{
  "data": {
    "updateChannels": [
      {
        "id": 4,
        "handle": "abc123",
        "name": "abc123",
        "targetGroups": [DeviceGroup]
      }
    ]
  }
}

Mutations

addDeviceTags

Description

Add tags to a device.

Response

Returns an AddDeviceTagsResult

Arguments
Name Description
id - ID!
input - AddDeviceTagsInput!

Example

Query
mutation addDeviceTags(
  $id: ID!,
  $input: AddDeviceTagsInput!
) {
  addDeviceTags(
    id: $id,
    input: $input
  ) {
    result {
      ...DeviceFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{
  "id": "4",
  "input": AddDeviceTagsInput
}
Response
{
  "data": {
    "addDeviceTags": {
      "result": Device,
      "errors": [MutationError]
    }
  }
}

createBaseImage

Description

Create a new base image in a base image collection.

Response

Returns a CreateBaseImageResult

Arguments
Name Description
input - CreateBaseImageInput!

Example

Query
mutation createBaseImage($input: CreateBaseImageInput!) {
  createBaseImage(input: $input) {
    result {
      ...BaseImageFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"input": CreateBaseImageInput}
Response
{
  "data": {
    "createBaseImage": {
      "result": BaseImage,
      "errors": [MutationError]
    }
  }
}

createBaseImageCollection

Description

Creates a new base image collection.

Response

Returns a CreateBaseImageCollectionResult

Arguments
Name Description
input - CreateBaseImageCollectionInput!

Example

Query
mutation createBaseImageCollection($input: CreateBaseImageCollectionInput!) {
  createBaseImageCollection(input: $input) {
    result {
      ...BaseImageCollectionFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"input": CreateBaseImageCollectionInput}
Response
{
  "data": {
    "createBaseImageCollection": {
      "result": BaseImageCollection,
      "errors": [MutationError]
    }
  }
}

createDeviceGroup

Description

Creates a new device group.

Response

Returns a CreateDeviceGroupResult

Arguments
Name Description
input - CreateDeviceGroupInput!

Example

Query
mutation createDeviceGroup($input: CreateDeviceGroupInput!) {
  createDeviceGroup(input: $input) {
    result {
      ...DeviceGroupFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"input": CreateDeviceGroupInput}
Response
{
  "data": {
    "createDeviceGroup": {
      "result": DeviceGroup,
      "errors": [MutationError]
    }
  }
}

createHardwareType

Description

Creates a hardware type.

Response

Returns a CreateHardwareTypeResult

Arguments
Name Description
input - CreateHardwareTypeInput!

Example

Query
mutation createHardwareType($input: CreateHardwareTypeInput!) {
  createHardwareType(input: $input) {
    result {
      ...HardwareTypeFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"input": CreateHardwareTypeInput}
Response
{
  "data": {
    "createHardwareType": {
      "result": HardwareType,
      "errors": [MutationError]
    }
  }
}

createManualOtaOperation

Description

Initiates an OTA update with a user provided OS image

Response

Returns a CreateManualOtaOperationResult

Arguments
Name Description
input - CreateManualOtaOperationInput!

Example

Query
mutation createManualOtaOperation($input: CreateManualOtaOperationInput!) {
  createManualOtaOperation(input: $input) {
    result {
      ...OtaOperationFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"input": CreateManualOtaOperationInput}
Response
{
  "data": {
    "createManualOtaOperation": {
      "result": OtaOperation,
      "errors": [MutationError]
    }
  }
}

createSystemModel

Description

Creates a system model.

Response

Returns a CreateSystemModelResult

Arguments
Name Description
input - CreateSystemModelInput!

Example

Query
mutation createSystemModel($input: CreateSystemModelInput!) {
  createSystemModel(input: $input) {
    result {
      ...SystemModelFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"input": CreateSystemModelInput}
Response
{
  "data": {
    "createSystemModel": {
      "result": SystemModel,
      "errors": [MutationError]
    }
  }
}

createUpdateCampaign

Description

Creates a new update campaign.

Response

Returns a CreateUpdateCampaignResult

Arguments
Name Description
input - CreateUpdateCampaignInput!

Example

Query
mutation createUpdateCampaign($input: CreateUpdateCampaignInput!) {
  createUpdateCampaign(input: $input) {
    result {
      ...UpdateCampaignFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"input": CreateUpdateCampaignInput}
Response
{
  "data": {
    "createUpdateCampaign": {
      "result": UpdateCampaign,
      "errors": [MutationError]
    }
  }
}

createUpdateChannel

Description

Creates a new update channel.

Response

Returns a CreateUpdateChannelResult

Arguments
Name Description
input - CreateUpdateChannelInput!

Example

Query
mutation createUpdateChannel($input: CreateUpdateChannelInput!) {
  createUpdateChannel(input: $input) {
    result {
      ...UpdateChannelFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"input": CreateUpdateChannelInput}
Response
{
  "data": {
    "createUpdateChannel": {
      "result": UpdateChannel,
      "errors": [MutationError]
    }
  }
}

deleteBaseImage

Description

Deletes a base image.

Response

Returns a DeleteBaseImageResult

Arguments
Name Description
id - ID!

Example

Query
mutation deleteBaseImage($id: ID!) {
  deleteBaseImage(id: $id) {
    result {
      ...BaseImageFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteBaseImage": {
      "result": BaseImage,
      "errors": [MutationError]
    }
  }
}

deleteBaseImageCollection

Description

Deletes a base image collection.

Response

Returns a DeleteBaseImageCollectionResult

Arguments
Name Description
id - ID!

Example

Query
mutation deleteBaseImageCollection($id: ID!) {
  deleteBaseImageCollection(id: $id) {
    result {
      ...BaseImageCollectionFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": "4"}
Response
{
  "data": {
    "deleteBaseImageCollection": {
      "result": BaseImageCollection,
      "errors": [MutationError]
    }
  }
}

deleteDeviceGroup

Description

Deletes a device group.

Response

Returns a DeleteDeviceGroupResult

Arguments
Name Description
id - ID!

Example

Query
mutation deleteDeviceGroup($id: ID!) {
  deleteDeviceGroup(id: $id) {
    result {
      ...DeviceGroupFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteDeviceGroup": {
      "result": DeviceGroup,
      "errors": [MutationError]
    }
  }
}

deleteHardwareType

Description

Deletes a hardware type.

Response

Returns a DeleteHardwareTypeResult

Arguments
Name Description
id - ID!

Example

Query
mutation deleteHardwareType($id: ID!) {
  deleteHardwareType(id: $id) {
    result {
      ...HardwareTypeFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteHardwareType": {
      "result": HardwareType,
      "errors": [MutationError]
    }
  }
}

deleteSystemModel

Description

Deletes a system model.

Response

Returns a DeleteSystemModelResult

Arguments
Name Description
id - ID!

Example

Query
mutation deleteSystemModel($id: ID!) {
  deleteSystemModel(id: $id) {
    result {
      ...SystemModelFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteSystemModel": {
      "result": SystemModel,
      "errors": [MutationError]
    }
  }
}

deleteUpdateChannel

Description

Deletes an update channel.

Response

Returns a DeleteUpdateChannelResult

Arguments
Name Description
id - ID!

Example

Query
mutation deleteUpdateChannel($id: ID!) {
  deleteUpdateChannel(id: $id) {
    result {
      ...UpdateChannelFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4}
Response
{
  "data": {
    "deleteUpdateChannel": {
      "result": UpdateChannel,
      "errors": [MutationError]
    }
  }
}

removeDeviceTags

Description

Remove tags from a device.

Response

Returns a RemoveDeviceTagsResult

Arguments
Name Description
id - ID!
input - RemoveDeviceTagsInput!

Example

Query
mutation removeDeviceTags(
  $id: ID!,
  $input: RemoveDeviceTagsInput!
) {
  removeDeviceTags(
    id: $id,
    input: $input
  ) {
    result {
      ...DeviceFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4, "input": RemoveDeviceTagsInput}
Response
{
  "data": {
    "removeDeviceTags": {
      "result": Device,
      "errors": [MutationError]
    }
  }
}

requestForwarderSession

Description

Requests a forwarder session for the specified device. Returns the session token.

Response

Returns a String!

Arguments
Name Description
input - RequestForwarderSessionInput

Example

Query
mutation requestForwarderSession($input: RequestForwarderSessionInput) {
  requestForwarderSession(input: $input)
}
Variables
{"input": RequestForwarderSessionInput}
Response
{
  "data": {
    "requestForwarderSession": "xyz789"
  }
}

setDeviceLedBehavior

Description

Sets led behavior.

Response

Returns a SetDeviceLedBehaviorResult

Arguments
Name Description
id - ID!
input - SetDeviceLedBehaviorInput!

Example

Query
mutation setDeviceLedBehavior(
  $id: ID!,
  $input: SetDeviceLedBehaviorInput!
) {
  setDeviceLedBehavior(
    id: $id,
    input: $input
  ) {
    result {
      ...DeviceFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4, "input": SetDeviceLedBehaviorInput}
Response
{
  "data": {
    "setDeviceLedBehavior": {
      "result": Device,
      "errors": [MutationError]
    }
  }
}

updateBaseImage

Description

Updates a base image.

Response

Returns an UpdateBaseImageResult

Arguments
Name Description
id - ID!
input - UpdateBaseImageInput

Example

Query
mutation updateBaseImage(
  $id: ID!,
  $input: UpdateBaseImageInput
) {
  updateBaseImage(
    id: $id,
    input: $input
  ) {
    result {
      ...BaseImageFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateBaseImageInput
}
Response
{
  "data": {
    "updateBaseImage": {
      "result": BaseImage,
      "errors": [MutationError]
    }
  }
}

updateBaseImageCollection

Description

Updates a base image collection.

Response

Returns an UpdateBaseImageCollectionResult

Arguments
Name Description
id - ID!
input - UpdateBaseImageCollectionInput

Example

Query
mutation updateBaseImageCollection(
  $id: ID!,
  $input: UpdateBaseImageCollectionInput
) {
  updateBaseImageCollection(
    id: $id,
    input: $input
  ) {
    result {
      ...BaseImageCollectionFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateBaseImageCollectionInput
}
Response
{
  "data": {
    "updateBaseImageCollection": {
      "result": BaseImageCollection,
      "errors": [MutationError]
    }
  }
}

updateDevice

Description

Updates a device.

Response

Returns an UpdateDeviceResult

Arguments
Name Description
id - ID!
input - UpdateDeviceInput

Example

Query
mutation updateDevice(
  $id: ID!,
  $input: UpdateDeviceInput
) {
  updateDevice(
    id: $id,
    input: $input
  ) {
    result {
      ...DeviceFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateDeviceInput
}
Response
{
  "data": {
    "updateDevice": {
      "result": Device,
      "errors": [MutationError]
    }
  }
}

updateDeviceGroup

Description

Updates a device group.

Response

Returns an UpdateDeviceGroupResult

Arguments
Name Description
id - ID!
input - UpdateDeviceGroupInput

Example

Query
mutation updateDeviceGroup(
  $id: ID!,
  $input: UpdateDeviceGroupInput
) {
  updateDeviceGroup(
    id: $id,
    input: $input
  ) {
    result {
      ...DeviceGroupFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4, "input": UpdateDeviceGroupInput}
Response
{
  "data": {
    "updateDeviceGroup": {
      "result": DeviceGroup,
      "errors": [MutationError]
    }
  }
}

updateHardwareType

Description

Updates a hardware type.

Response

Returns an UpdateHardwareTypeResult

Arguments
Name Description
id - ID!
input - UpdateHardwareTypeInput

Example

Query
mutation updateHardwareType(
  $id: ID!,
  $input: UpdateHardwareTypeInput
) {
  updateHardwareType(
    id: $id,
    input: $input
  ) {
    result {
      ...HardwareTypeFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateHardwareTypeInput
}
Response
{
  "data": {
    "updateHardwareType": {
      "result": HardwareType,
      "errors": [MutationError]
    }
  }
}

updateSystemModel

Description

Updates an system model.

Response

Returns an UpdateSystemModelResult

Arguments
Name Description
id - ID!
input - UpdateSystemModelInput

Example

Query
mutation updateSystemModel(
  $id: ID!,
  $input: UpdateSystemModelInput
) {
  updateSystemModel(
    id: $id,
    input: $input
  ) {
    result {
      ...SystemModelFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{"id": 4, "input": UpdateSystemModelInput}
Response
{
  "data": {
    "updateSystemModel": {
      "result": SystemModel,
      "errors": [MutationError]
    }
  }
}

updateUpdateChannel

Description

Updates an update channel.

Response

Returns an UpdateUpdateChannelResult

Arguments
Name Description
id - ID!
input - UpdateUpdateChannelInput

Example

Query
mutation updateUpdateChannel(
  $id: ID!,
  $input: UpdateUpdateChannelInput
) {
  updateUpdateChannel(
    id: $id,
    input: $input
  ) {
    result {
      ...UpdateChannelFragment
    }
    errors {
      ...MutationErrorFragment
    }
  }
}
Variables
{
  "id": "4",
  "input": UpdateUpdateChannelInput
}
Response
{
  "data": {
    "updateUpdateChannel": {
      "result": UpdateChannel,
      "errors": [MutationError]
    }
  }
}

Types

AddDeviceTagsInput

Fields
Input Field Description
tags - [String!]!
Example
{"tags": ["abc123"]}

AddDeviceTagsResult

Description

The result of the :add_device_tags mutation

Fields
Field Name Description
result - Device The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": Device,
  "errors": [MutationError]
}

BaseImage

Description

Represents an uploaded Base Image.

A base image represents a downloadable base image that can be installed on a device

Fields
Field Name Description
id - ID!
version - String! The base image version.
startingVersionRequirement - String The starting version requirement for the base image.
url - String! The url where the base image can be downloaded.
baseImageCollection - BaseImageCollection! The base image collection that this base image belongs to.
localizedDescriptions - [LocalizedAttribute!] A list of descriptions in different languages.
Arguments
preferredLanguageTags - [String!]
localizedReleaseDisplayNames - [LocalizedAttribute!] A list of release display names in different languages.
Arguments
preferredLanguageTags - [String!]
Example
{
  "id": 4,
  "version": "xyz789",
  "startingVersionRequirement": "xyz789",
  "url": "abc123",
  "baseImageCollection": BaseImageCollection,
  "localizedDescriptions": [LocalizedAttribute],
  "localizedReleaseDisplayNames": [LocalizedAttribute]
}

BaseImageCollection

Description

Represents a collection of Base Images.

A base image collection represents the collection of all Base Images that can run on a specific System Model.

Fields
Field Name Description
id - ID!
name - String! The display name of the base image collection.
handle - String!

The identifier of the base image collection.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

systemModel - SystemModel! The system model associated with the base image collection.
baseImages - [BaseImage!]! The base images associated with the base image collection.
Arguments
sort - [BaseImageSortInput]

How to sort the records in the response

filter - BaseImageFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

Example
{
  "id": "4",
  "name": "xyz789",
  "handle": "xyz789",
  "systemModel": SystemModel,
  "baseImages": [BaseImage]
}

BaseImageCollectionFilterHandle

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "abc123",
  "notEq": "abc123",
  "in": ["abc123"],
  "lessThan": "abc123",
  "greaterThan": "abc123",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "xyz789",
  "like": "xyz789",
  "ilike": "xyz789"
}

BaseImageCollectionFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": false,
  "eq": 123,
  "notEq": 123,
  "in": [987],
  "lessThan": 987,
  "greaterThan": 987,
  "lessThanOrEqual": 987,
  "greaterThanOrEqual": 987
}

BaseImageCollectionFilterInput

Fields
Input Field Description
and - [BaseImageCollectionFilterInput!]
or - [BaseImageCollectionFilterInput!]
not - [BaseImageCollectionFilterInput!]
id - BaseImageCollectionFilterId
name - BaseImageCollectionFilterName The display name of the base image collection.
handle - BaseImageCollectionFilterHandle

The identifier of the base image collection.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

systemModel - SystemModelFilterInput The system model associated with the base image collection.
baseImages - BaseImageFilterInput The base images associated with the base image collection.
Example
{
  "and": [BaseImageCollectionFilterInput],
  "or": [BaseImageCollectionFilterInput],
  "not": [BaseImageCollectionFilterInput],
  "id": BaseImageCollectionFilterId,
  "name": BaseImageCollectionFilterName,
  "handle": BaseImageCollectionFilterHandle,
  "systemModel": SystemModelFilterInput,
  "baseImages": BaseImageFilterInput
}

BaseImageCollectionFilterName

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "xyz789",
  "notEq": "abc123",
  "in": ["abc123"],
  "lessThan": "abc123",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "xyz789",
  "like": "xyz789",
  "ilike": "xyz789"
}

BaseImageCollectionSortField

Values
Enum Value Description

ID

NAME

HANDLE

Example
"ID"

BaseImageCollectionSortInput

Fields
Input Field Description
order - SortOrder
field - BaseImageCollectionSortField!
Example
{"order": "DESC", "field": "ID"}

BaseImageFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 123,
  "notEq": 123,
  "in": [987],
  "lessThan": 123,
  "greaterThan": 987,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 987
}

BaseImageFilterInput

Fields
Input Field Description
and - [BaseImageFilterInput!]
or - [BaseImageFilterInput!]
not - [BaseImageFilterInput!]
id - BaseImageFilterId
version - BaseImageFilterVersion The base image version.
startingVersionRequirement - BaseImageFilterStartingVersionRequirement The starting version requirement for the base image.
url - BaseImageFilterUrl The url where the base image can be downloaded.
baseImageCollection - BaseImageCollectionFilterInput The base image collection that this base image belongs to.
Example
{
  "and": [BaseImageFilterInput],
  "or": [BaseImageFilterInput],
  "not": [BaseImageFilterInput],
  "id": BaseImageFilterId,
  "version": BaseImageFilterVersion,
  "startingVersionRequirement": BaseImageFilterStartingVersionRequirement,
  "url": BaseImageFilterUrl,
  "baseImageCollection": BaseImageCollectionFilterInput
}

BaseImageFilterStartingVersionRequirement

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "abc123",
  "notEq": "abc123",
  "in": ["xyz789"],
  "lessThan": "xyz789",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "abc123",
  "like": "xyz789",
  "ilike": "xyz789"
}

BaseImageFilterUrl

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "abc123",
  "notEq": "abc123",
  "in": ["xyz789"],
  "lessThan": "abc123",
  "greaterThan": "abc123",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

BaseImageFilterVersion

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "xyz789",
  "notEq": "xyz789",
  "in": ["xyz789"],
  "lessThan": "abc123",
  "greaterThan": "abc123",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

BaseImageInfo

Description

Describes the information on the system's base image for a device.

Fields
Field Name Description
name - String The name of the image.
version - String The version of the image.
buildId - String Human readable build identifier of the image.
fingerprint - String A unique string that identifies the release, usually the image hash.
Example
{
  "name": "abc123",
  "version": "abc123",
  "buildId": "abc123",
  "fingerprint": "abc123"
}

BaseImageSortField

Values
Enum Value Description

ID

VERSION

STARTING_VERSION_REQUIREMENT

URL

Example
"ID"

BaseImageSortInput

Fields
Input Field Description
order - SortOrder
field - BaseImageSortField!
Example
{"order": "DESC", "field": "ID"}

BatterySlot

Description

Describes a battery slot of a device.

Fields
Field Name Description
levelAbsoluteError - Float Battery level measurement absolute error [0.0-100.0].
levelPercentage - Float Battery level estimated percentage [0.0%-100.0%].
slot - String! The identifier of the battery slot.
status - BatterySlotStatus The current status of the battery.
Example
{
  "levelAbsoluteError": 123.45,
  "levelPercentage": 123.45,
  "slot": "abc123",
  "status": "CHARGING"
}

BatterySlotStatus

Values
Enum Value Description

CHARGING

The battery is charging.

DISCHARGING

The battery is discharging.

IDLE

The battery is idle.

EITHER_IDLE_OR_CHARGING

The battery is either in a charging or in an idle state, since the hardware doesn't allow to distinguish between them.

FAILURE

The battery is in a failed state.

REMOVED

The battery is removed.

UNKNOWN

The battery status cannot be determined.
Example
"CHARGING"

Boolean

Description

The Boolean scalar type represents true or false.

Example
true

CreateBaseImageCollectionInput

Fields
Input Field Description
name - String! The display name of the base image collection.
handle - String!

The identifier of the base image collection.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

systemModelId - ID! The ID of the system model that is targeted by the base image collection
Example
{
  "name": "xyz789",
  "handle": "xyz789",
  "systemModelId": "4"
}

CreateBaseImageCollectionResult

Description

The result of the :create_base_image_collection mutation

Fields
Field Name Description
result - BaseImageCollection The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": BaseImageCollection,
  "errors": [MutationError]
}

CreateBaseImageInput

Fields
Input Field Description
version - String! The base image version.
startingVersionRequirement - String The starting version requirement for the base image.
baseImageCollectionId - ID! The ID of the base image collection this base image will belong to.
file - Upload! The base image file, which will be uploaded to the storage.
localizedDescriptions - [LocalizedAttributeInput!] A list of descriptions in different languages.
localizedReleaseDisplayNames - [LocalizedAttributeInput!] A list of release display names in different languages.
Example
{
  "version": "abc123",
  "startingVersionRequirement": "xyz789",
  "baseImageCollectionId": "4",
  "file": Upload,
  "localizedDescriptions": [LocalizedAttributeInput],
  "localizedReleaseDisplayNames": [
    LocalizedAttributeInput
  ]
}

CreateBaseImageResult

Description

The result of the :create_base_image mutation

Fields
Field Name Description
result - BaseImage The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": BaseImage,
  "errors": [MutationError]
}

CreateDeviceGroupInput

Fields
Input Field Description
name - String! The display name of the device group.
handle - String!

The identifier of the device group.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

selector - String!

The Selector that will determine which devices belong to the device group.

This must be a valid selector expression, consult the Selector section of the Edgehog documentation for more information about Selectors.

Example
{
  "name": "xyz789",
  "handle": "xyz789",
  "selector": "xyz789"
}

CreateDeviceGroupResult

Description

The result of the :create_device_group mutation

Fields
Field Name Description
result - DeviceGroup The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": DeviceGroup,
  "errors": [MutationError]
}

CreateHardwareTypeInput

Fields
Input Field Description
handle - String!

The identifier of the hardware type.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String! The display name of the hardware type.
partNumbers - [String!]!
Example
{
  "handle": "abc123",
  "name": "abc123",
  "partNumbers": ["xyz789"]
}

CreateHardwareTypeResult

Description

The result of the :create_hardware_type mutation

Fields
Field Name Description
result - HardwareType The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": HardwareType,
  "errors": [MutationError]
}

CreateManualOtaOperationInput

Fields
Input Field Description
deviceId - ID! The ID identifying the Device the OTA Operation will be sent to
baseImageFile - Upload! The base image file, which will be uploaded to the storage.
Example
{
  "deviceId": "4",
  "baseImageFile": Upload
}

CreateManualOtaOperationResult

Description

The result of the :create_manual_ota_operation mutation

Fields
Field Name Description
result - OtaOperation The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": OtaOperation,
  "errors": [MutationError]
}

CreateSystemModelInput

Fields
Input Field Description
handle - String!

The identifier of the system model.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String! The display name of the system model.
pictureUrl - String A URL to a picture representing the system model.
hardwareTypeId - ID! The ID of the hardware type that can be used by devices of this model
partNumbers - [String!]! The list of part numbers associated with the system model.
pictureFile - Upload A picture representing the system model that will be uploaded to a bucket.
localizedDescriptions - [LocalizedAttributeInput!] A list of descriptions in different languages.
Example
{
  "handle": "xyz789",
  "name": "abc123",
  "pictureUrl": "abc123",
  "hardwareTypeId": "4",
  "partNumbers": ["xyz789"],
  "pictureFile": Upload,
  "localizedDescriptions": [LocalizedAttributeInput]
}

CreateSystemModelResult

Description

The result of the :create_system_model mutation

Fields
Field Name Description
result - SystemModel The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": SystemModel,
  "errors": [MutationError]
}

CreateUpdateCampaignInput

Fields
Input Field Description
name - String! The name of the update campaign.
rolloutMechanism - RolloutMechanismInput! The rollout mechanism used in the update campaign.
baseImageId - ID! The ID of the base image that will be distributed in the update campaign.
updateChannelId - ID! The ID of the update channel that will be targeted by the update campaign.
Example
{
  "name": "xyz789",
  "rolloutMechanism": RolloutMechanismInput,
  "baseImageId": 4,
  "updateChannelId": "4"
}

CreateUpdateCampaignResult

Description

The result of the :create_update_campaign mutation

Fields
Field Name Description
result - UpdateCampaign The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": UpdateCampaign,
  "errors": [MutationError]
}

CreateUpdateChannelInput

Fields
Input Field Description
handle - String!

The identifier of the update channel.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String! The display name of the update channel.
targetGroupIds - [ID!]! The IDs of the target groups that are targeted by this update channel.
Example
{
  "handle": "xyz789",
  "name": "abc123",
  "targetGroupIds": [4]
}

CreateUpdateChannelResult

Description

The result of the :create_update_channel mutation

Fields
Field Name Description
result - UpdateChannel The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": UpdateChannel,
  "errors": [MutationError]
}

DateTime

Description

The DateTime scalar type represents a date and time in the UTC timezone. The DateTime appears in a JSON response as an ISO8601 formatted string, including UTC timezone ("Z"). The parsed date and time string will be converted to UTC if there is an offset.

Example
"2007-12-03T10:15:30Z"

DeleteBaseImageCollectionResult

Description

The result of the :delete_base_image_collection mutation

Fields
Field Name Description
result - BaseImageCollection The record that was successfully deleted
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": BaseImageCollection,
  "errors": [MutationError]
}

DeleteBaseImageResult

Description

The result of the :delete_base_image mutation

Fields
Field Name Description
result - BaseImage The record that was successfully deleted
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": BaseImage,
  "errors": [MutationError]
}

DeleteDeviceGroupResult

Description

The result of the :delete_device_group mutation

Fields
Field Name Description
result - DeviceGroup The record that was successfully deleted
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": DeviceGroup,
  "errors": [MutationError]
}

DeleteHardwareTypeResult

Description

The result of the :delete_hardware_type mutation

Fields
Field Name Description
result - HardwareType The record that was successfully deleted
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": HardwareType,
  "errors": [MutationError]
}

DeleteSystemModelResult

Description

The result of the :delete_system_model mutation

Fields
Field Name Description
result - SystemModel The record that was successfully deleted
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": SystemModel,
  "errors": [MutationError]
}

DeleteUpdateChannelResult

Description

The result of the :delete_update_channel mutation

Fields
Field Name Description
result - UpdateChannel The record that was successfully deleted
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": UpdateChannel,
  "errors": [MutationError]
}

Device

Description

Denotes a device instance that connects and exchanges data.

Each Device is associated to a specific SystemModel, which in turn is associated to a specific HardwareType. A Device also exposes info about its connection status and some sets of data read by its operating system.

Fields
Field Name Description
id - ID!
deviceId - String! The Astarte device ID of the device.
name - String! The display name of the device.
online - Boolean! Whether the device is connected or not to Astarte
lastConnection - DateTime The date at which the device last connected to Astarte.
lastDisconnection - DateTime The date at which the device last disconnected from Astarte.
serialNumber - String The serial number of the device.
systemModel - SystemModel The system model of the device
tags - [Tag!]! The tags of the device
Arguments
sort - [TagSortInput]

How to sort the records in the response

filter - TagFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

deviceGroups - [DeviceGroup!]! The groups the device belongs to.
Arguments
sort - [DeviceGroupSortInput]

How to sort the records in the response

filter - DeviceGroupFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

otaOperations - [OtaOperation!]! The existing OTA operations for this device
Arguments
sort - [OtaOperationSortInput]

How to sort the records in the response

filter - OtaOperationFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

capabilities - [DeviceCapability!]! The capabilities that the device can support.
cellularConnection - [Modem!]
baseImage - BaseImageInfo
batteryStatus - [BatterySlot!]
hardwareInfo - HardwareInfo
location - Location

Describes the place where the device is located.

The field holds information about the device's address, which is estimated by means of Edgehog's geolocation modules and the data published by the device.

networkInterfaces - [NetworkInterface!]
osInfo - OsInfo
position - Position

Describes the position of a device.

The field holds information about the GPS coordinates of the device, which are estimated by means of Edgehog's geolocation modules and the data published by the device.

runtimeInfo - RuntimeInfo
storageUsage - [StorageUnit!]
systemStatus - SystemStatus
wifiScanResults - [WifiScanResult!]
Example
{
  "id": 4,
  "deviceId": "xyz789",
  "name": "abc123",
  "online": true,
  "lastConnection": "2007-12-03T10:15:30Z",
  "lastDisconnection": "2007-12-03T10:15:30Z",
  "serialNumber": "abc123",
  "systemModel": SystemModel,
  "tags": [Tag],
  "deviceGroups": [DeviceGroup],
  "otaOperations": [OtaOperation],
  "capabilities": ["BASE_IMAGE"],
  "cellularConnection": [Modem],
  "baseImage": BaseImageInfo,
  "batteryStatus": [BatterySlot],
  "hardwareInfo": HardwareInfo,
  "location": Location,
  "networkInterfaces": [NetworkInterface],
  "osInfo": OsInfo,
  "position": Position,
  "runtimeInfo": RuntimeInfo,
  "storageUsage": [StorageUnit],
  "systemStatus": SystemStatus,
  "wifiScanResults": [WifiScanResult]
}

DeviceCapability

Values
Enum Value Description

BASE_IMAGE

The device provides information about its base image.

BATTERY_STATUS

The device provides information about its battery status.

CELLULAR_CONNECTION

The device provides information about its cellular connection.

COMMANDS

The device supports commands, for example the rebooting command.

GEOLOCATION

The device can be geolocated.

HARDWARE_INFO

The device provides information about its hardware.

LED_BEHAVIORS

The device can be asked to blink its LED in a specific pattern.

NETWORK_INTERFACE_INFO

The device can provide information about its network interfaces.

OPERATING_SYSTEM

The device provides information about its operating system.

REMOTE_TERMINAL

The device supports remote terminal sessions.

RUNTIME_INFO

The device provides information about its runtime.

SOFTWARE_UPDATES

The device can be updated remotely.

STORAGE

The device provides information about its storage units.

SYSTEM_INFO

The device provides information about its system.

SYSTEM_STATUS

The device provides information about its system status.

TELEMETRY_CONFIG

The device telemetry can be configured.

WIFI

The device provides information about surrounding WiFi APs.
Example
"BASE_IMAGE"

DeviceFilterDeviceId

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "xyz789",
  "notEq": "abc123",
  "in": ["xyz789"],
  "lessThan": "abc123",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

DeviceFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 123,
  "notEq": 123,
  "in": [123],
  "lessThan": 123,
  "greaterThan": 987,
  "lessThanOrEqual": 987,
  "greaterThanOrEqual": 123
}

DeviceFilterInput

Fields
Input Field Description
and - [DeviceFilterInput!]
or - [DeviceFilterInput!]
not - [DeviceFilterInput!]
id - DeviceFilterId
deviceId - DeviceFilterDeviceId The Astarte device ID of the device.
name - DeviceFilterName The display name of the device.
online - DeviceFilterOnline Whether the device is connected or not to Astarte
lastConnection - DeviceFilterLastConnection The date at which the device last connected to Astarte.
lastDisconnection - DeviceFilterLastDisconnection The date at which the device last disconnected from Astarte.
serialNumber - DeviceFilterSerialNumber The serial number of the device.
systemModel - SystemModelFilterInput The system model of the device
tags - TagFilterInput The tags of the device
deviceGroups - DeviceGroupFilterInput The groups the device belongs to.
otaOperations - OtaOperationFilterInput The existing OTA operations for this device
Example
{
  "and": [DeviceFilterInput],
  "or": [DeviceFilterInput],
  "not": [DeviceFilterInput],
  "id": DeviceFilterId,
  "deviceId": DeviceFilterDeviceId,
  "name": DeviceFilterName,
  "online": DeviceFilterOnline,
  "lastConnection": DeviceFilterLastConnection,
  "lastDisconnection": DeviceFilterLastDisconnection,
  "serialNumber": DeviceFilterSerialNumber,
  "systemModel": SystemModelFilterInput,
  "tags": TagFilterInput,
  "deviceGroups": DeviceGroupFilterInput,
  "otaOperations": OtaOperationFilterInput
}

DeviceFilterLastConnection

Fields
Input Field Description
isNil - Boolean
eq - DateTime
notEq - DateTime
in - [DateTime]
lessThan - DateTime
greaterThan - DateTime
lessThanOrEqual - DateTime
greaterThanOrEqual - DateTime
Example
{
  "isNil": false,
  "eq": "2007-12-03T10:15:30Z",
  "notEq": "2007-12-03T10:15:30Z",
  "in": ["2007-12-03T10:15:30Z"],
  "lessThan": "2007-12-03T10:15:30Z",
  "greaterThan": "2007-12-03T10:15:30Z",
  "lessThanOrEqual": "2007-12-03T10:15:30Z",
  "greaterThanOrEqual": "2007-12-03T10:15:30Z"
}

DeviceFilterLastDisconnection

Fields
Input Field Description
isNil - Boolean
eq - DateTime
notEq - DateTime
in - [DateTime]
lessThan - DateTime
greaterThan - DateTime
lessThanOrEqual - DateTime
greaterThanOrEqual - DateTime
Example
{
  "isNil": true,
  "eq": "2007-12-03T10:15:30Z",
  "notEq": "2007-12-03T10:15:30Z",
  "in": ["2007-12-03T10:15:30Z"],
  "lessThan": "2007-12-03T10:15:30Z",
  "greaterThan": "2007-12-03T10:15:30Z",
  "lessThanOrEqual": "2007-12-03T10:15:30Z",
  "greaterThanOrEqual": "2007-12-03T10:15:30Z"
}

DeviceFilterName

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "xyz789",
  "notEq": "abc123",
  "in": ["xyz789"],
  "lessThan": "xyz789",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

DeviceFilterOnline

Fields
Input Field Description
isNil - Boolean
eq - Boolean
notEq - Boolean
in - [Boolean!]
lessThan - Boolean
greaterThan - Boolean
lessThanOrEqual - Boolean
greaterThanOrEqual - Boolean
Example
{
  "isNil": false,
  "eq": true,
  "notEq": true,
  "in": [false],
  "lessThan": false,
  "greaterThan": false,
  "lessThanOrEqual": true,
  "greaterThanOrEqual": true
}

DeviceFilterSerialNumber

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "abc123",
  "notEq": "xyz789",
  "in": ["xyz789"],
  "lessThan": "abc123",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "xyz789",
  "like": "abc123",
  "ilike": "xyz789"
}

DeviceGroup

Fields
Field Name Description
id - ID!
name - String! The display name of the device group.
handle - String!

The identifier of the device group.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

selector - String!

The Selector that will determine which devices belong to the device group.

This must be a valid selector expression, consult the Selector section of the Edgehog documentation for more information about Selectors.

devices - [Device!]! The devices belonging to the group.
Arguments
sort - [DeviceSortInput]

How to sort the records in the response

filter - DeviceFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

updateChannel - UpdateChannel The update channel associated with the group, if present.
Example
{
  "id": 4,
  "name": "xyz789",
  "handle": "xyz789",
  "selector": "abc123",
  "devices": [Device],
  "updateChannel": UpdateChannel
}

DeviceGroupFilterHandle

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "xyz789",
  "notEq": "xyz789",
  "in": ["abc123"],
  "lessThan": "abc123",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "xyz789",
  "like": "abc123",
  "ilike": "xyz789"
}

DeviceGroupFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 123,
  "notEq": 987,
  "in": [123],
  "lessThan": 123,
  "greaterThan": 987,
  "lessThanOrEqual": 987,
  "greaterThanOrEqual": 123
}

DeviceGroupFilterInput

Fields
Input Field Description
and - [DeviceGroupFilterInput!]
or - [DeviceGroupFilterInput!]
not - [DeviceGroupFilterInput!]
id - DeviceGroupFilterId
name - DeviceGroupFilterName The display name of the device group.
handle - DeviceGroupFilterHandle

The identifier of the device group.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

selector - DeviceGroupFilterSelector

The Selector that will determine which devices belong to the device group.

This must be a valid selector expression, consult the Selector section of the Edgehog documentation for more information about Selectors.

devices - DeviceFilterInput The devices belonging to the group.
updateChannel - UpdateChannelFilterInput The update channel associated with the group, if present.
Example
{
  "and": [DeviceGroupFilterInput],
  "or": [DeviceGroupFilterInput],
  "not": [DeviceGroupFilterInput],
  "id": DeviceGroupFilterId,
  "name": DeviceGroupFilterName,
  "handle": DeviceGroupFilterHandle,
  "selector": DeviceGroupFilterSelector,
  "devices": DeviceFilterInput,
  "updateChannel": UpdateChannelFilterInput
}

DeviceGroupFilterName

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "abc123",
  "notEq": "abc123",
  "in": ["abc123"],
  "lessThan": "xyz789",
  "greaterThan": "abc123",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "abc123",
  "like": "xyz789",
  "ilike": "xyz789"
}

DeviceGroupFilterSelector

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "xyz789",
  "notEq": "xyz789",
  "in": ["abc123"],
  "lessThan": "xyz789",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "abc123",
  "like": "xyz789",
  "ilike": "xyz789"
}

DeviceGroupSortField

Values
Enum Value Description

ID

NAME

HANDLE

SELECTOR

Example
"ID"

DeviceGroupSortInput

Fields
Input Field Description
order - SortOrder
field - DeviceGroupSortField!
Example
{"order": "DESC", "field": "ID"}

DeviceLedBehavior

Values
Enum Value Description

BLINK

Blink for 60 seconds.

DOUBLE_BLINK

Double blink for 60 seconds.

SLOW_BLINK

Slow blink for 60 seconds.
Example
"BLINK"

DeviceSortField

Values
Enum Value Description

ID

DEVICE_ID

NAME

ONLINE

LAST_CONNECTION

LAST_DISCONNECTION

SERIAL_NUMBER

Example
"ID"

DeviceSortInput

Fields
Input Field Description
order - SortOrder
field - DeviceSortField!
Example
{"order": "DESC", "field": "ID"}

Float

Description

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

Example
987.65

ForwarderConfig

Description

The details of a forwarder instance.

Fields
Field Name Description
id - ID! A unique identifier
hostname - String! The hostname of the forwarder instance.
port - Int! The port of the forwarder instance.
secureSessions - Boolean! Indicates if TLS should used when connecting to the forwarder.
Example
{
  "id": "4",
  "hostname": "xyz789",
  "port": 987,
  "secureSessions": false
}

ForwarderSession

Description

The details of a forwarder session.

Fields
Field Name Description
id - ID! The token that identifies the session.
token - String! The token that identifies the session.
status - ForwarderSessionStatus! The status of the session.
forwarderHostname - String! The hostname of the forwarder instance.
forwarderPort - Int! The port of the forwarder instance.
secure - Boolean! Indicates if TLS is used when the device connects to the forwarder.
Example
{
  "id": 4,
  "token": "abc123",
  "status": "CONNECTED",
  "forwarderHostname": "xyz789",
  "forwarderPort": 123,
  "secure": true
}

ForwarderSessionStatus

Values
Enum Value Description

CONNECTED

The device is connected to the forwarder.

CONNECTING

The device is connecting to the forwarder.
Example
"CONNECTED"

HardwareInfo

Description

Describes hardware-related info of a device.

It exposes data read by a device's operating system about the underlying hardware.

Fields
Field Name Description
cpuArchitecture - String The architecture of the CPU.
cpuModel - String The reference code of the CPU model.
cpuModelName - String The display name of the CPU model.
cpuVendor - String The vendor's name.
memoryTotalBytes - Int The Bytes count of memory.
Example
{
  "cpuArchitecture": "abc123",
  "cpuModel": "xyz789",
  "cpuModelName": "abc123",
  "cpuVendor": "abc123",
  "memoryTotalBytes": 987
}

HardwareType

Description

Denotes a type of hardware that devices can have.

It refers to the physical components embedded in a device. This can represent, e.g., multiple revisions of a PCB (each with a different part number) which are functionally equivalent from the device point of view.

Fields
Field Name Description
id - ID!
handle - String!

The identifier of the hardware type.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String! The display name of the hardware type.
partNumbers - [HardwareTypePartNumber!]! The list of part numbers associated with the hardware type.
Arguments
sort - [HardwareTypePartNumberSortInput]

How to sort the records in the response

filter - HardwareTypePartNumberFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

Example
{
  "id": 4,
  "handle": "abc123",
  "name": "abc123",
  "partNumbers": [HardwareTypePartNumber]
}

HardwareTypeFilterHandle

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "xyz789",
  "notEq": "abc123",
  "in": ["abc123"],
  "lessThan": "abc123",
  "greaterThan": "abc123",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

HardwareTypeFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": false,
  "eq": 123,
  "notEq": 987,
  "in": [123],
  "lessThan": 987,
  "greaterThan": 123,
  "lessThanOrEqual": 987,
  "greaterThanOrEqual": 987
}

HardwareTypeFilterInput

Fields
Input Field Description
and - [HardwareTypeFilterInput!]
or - [HardwareTypeFilterInput!]
not - [HardwareTypeFilterInput!]
id - HardwareTypeFilterId
handle - HardwareTypeFilterHandle

The identifier of the hardware type.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - HardwareTypeFilterName The display name of the hardware type.
partNumbers - HardwareTypePartNumberFilterInput The list of part numbers associated with the hardware type.
Example
{
  "and": [HardwareTypeFilterInput],
  "or": [HardwareTypeFilterInput],
  "not": [HardwareTypeFilterInput],
  "id": HardwareTypeFilterId,
  "handle": HardwareTypeFilterHandle,
  "name": HardwareTypeFilterName,
  "partNumbers": HardwareTypePartNumberFilterInput
}

HardwareTypeFilterName

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "abc123",
  "notEq": "xyz789",
  "in": ["abc123"],
  "lessThan": "abc123",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "abc123"
}

HardwareTypePartNumber

Fields
Field Name Description
id - ID!
partNumber - String! The part number identifier.
hardwareType - HardwareType
Example
{
  "id": 4,
  "partNumber": "abc123",
  "hardwareType": HardwareType
}

HardwareTypePartNumberFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": false,
  "eq": 123,
  "notEq": 123,
  "in": [987],
  "lessThan": 123,
  "greaterThan": 123,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 123
}

HardwareTypePartNumberFilterInput

Example
{
  "and": [HardwareTypePartNumberFilterInput],
  "or": [HardwareTypePartNumberFilterInput],
  "not": [HardwareTypePartNumberFilterInput],
  "id": HardwareTypePartNumberFilterId,
  "partNumber": HardwareTypePartNumberFilterPartNumber,
  "hardwareType": HardwareTypeFilterInput
}

HardwareTypePartNumberFilterPartNumber

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "abc123",
  "notEq": "abc123",
  "in": ["xyz789"],
  "lessThan": "abc123",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "xyz789",
  "like": "xyz789",
  "ilike": "abc123"
}

HardwareTypePartNumberSortField

Values
Enum Value Description

ID

PART_NUMBER

Example
"ID"

HardwareTypePartNumberSortInput

Fields
Input Field Description
order - SortOrder
field - HardwareTypePartNumberSortField!
Example
{"order": "DESC", "field": "ID"}

HardwareTypeSortField

Values
Enum Value Description

ID

HANDLE

NAME

Example
"ID"

HardwareTypeSortInput

Fields
Input Field Description
order - SortOrder
field - HardwareTypeSortField!
Example
{"order": "DESC", "field": "ID"}

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

Json

Description

The Json scalar type represents arbitrary json string data, represented as UTF-8 character sequences. The Json type is most often used to represent a free-form human-readable json string.

Example
Json

LocalizedAttribute

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

LocalizedAttributeInput

Fields
Input Field Description
value - String!
languageTag - String!
Example
{
  "value": "abc123",
  "languageTag": "abc123"
}

LocalizedAttributeUpdateInput

Fields
Input Field Description
value - String
languageTag - String!
Example
{
  "value": "abc123",
  "languageTag": "xyz789"
}

Location

Description

Describes the place where a device is located.

The field holds information about the device's address, which is estimated by means of Edgehog's geolocation modules and the data published by the device.

Fields
Field Name Description
formattedAddress - String! The formatted address associated with the location.
timestamp - DateTime! The date and time at which the location was measured.
source - String Describes how the location was calculated.
Example
{
  "formattedAddress": "abc123",
  "timestamp": "2007-12-03T10:15:30Z",
  "source": "abc123"
}

Modem

Description

Describes a modem of a device.

Fields
Field Name Description
apn - String The operator apn address.
carrier - String Carrier operator name.
cellId - Int Unique identifier of the cell.
imei - String The modem IMEI code.
imsi - String The SIM IMSI code.
localAreaCode - Int The Local Area Code.
mobileCountryCode - Int The cell tower's Mobile Country Code (MCC).
mobileNetworkCode - Int The cell tower's Mobile Network Code.
registrationStatus - ModemRegistrationStatus The GSM/LTE registration status of the modem.
rssi - Float Signal strength in dBm.
slot - String! The identifier of the modem.
technology - ModemTechnology The access technology of the serving cell.
Example
{
  "apn": "abc123",
  "carrier": "abc123",
  "cellId": 987,
  "imei": "abc123",
  "imsi": "xyz789",
  "localAreaCode": 123,
  "mobileCountryCode": 123,
  "mobileNetworkCode": 987,
  "registrationStatus": "NOT_REGISTERED",
  "rssi": 123.45,
  "slot": "xyz789",
  "technology": "GSM"
}

ModemRegistrationStatus

Values
Enum Value Description

NOT_REGISTERED

Not registered, modem is not currently searching a new operator to register to.

REGISTERED

Registered, home network.

SEARCHING_OPERATOR

Not registered, but modem is currently searching a new operator to register to.

REGISTRATION_DENIED

Registration denied.

UNKNOWN

Unknown (e.g. out of GERAN/UTRAN/E-UTRAN coverage).

REGISTERED_ROAMING

Registered, roaming.
Example
"NOT_REGISTERED"

ModemTechnology

Values
Enum Value Description

GSM

GSM.

GSM_COMPACT

GSM Compact.

UTRAN

UTRAN.

GSM_EGPRS

GSM with EGPRS.

UTRAN_HSDPA

UTRAN with HSDPA.

UTRAN_HSUPA

UTRAN with HSUPA.

UTRAN_HSDPA_HSUPA

UTRAN with HSDPA and HSUPA.

EUTRAN

E-UTRAN.
Example
"GSM"

MutationError

Description

An error generated by a failed mutation

Fields
Field Name Description
message - String The human readable error message
shortMessage - String A shorter error message, with vars not replaced
vars - Json Replacements for the short message
code - String An error code for the given error
fields - [String!] The field or fields that produced the error
Example
{
  "message": "xyz789",
  "shortMessage": "xyz789",
  "vars": Json,
  "code": "xyz789",
  "fields": ["abc123"]
}

NetworkInterface

Description

Describes a network interface of a device.

Fields
Field Name Description
name - String! The identifier of the network interface.
macAddress - String The normalized physical address.
technology - NetworkInterfaceTechnology The connection technology.
Example
{
  "name": "abc123",
  "macAddress": "abc123",
  "technology": "ETHERNET"
}

NetworkInterfaceTechnology

Values
Enum Value Description

ETHERNET

Ethernet.

BLUETOOTH

Bluetooth.

CELLULAR

Cellular.

WIFI

WiFi.
Example
"ETHERNET"

Node

Description

A relay node

Fields
Field Name Description
id - ID! A unique identifier
Example
{"id": "4"}

OsInfo

Description

Describes an operating system of a device.

Fields
Field Name Description
name - String The name of the operating system.
version - String The version of the operating system.
Example
{
  "name": "abc123",
  "version": "xyz789"
}

OtaOperation

Description

An OTA update operation

Fields
Field Name Description
id - ID!
baseImageUrl - String! The URL of the base image being installed on the device
status - OtaOperationStatus! The current status of the operation
statusProgress - Int! The percentage progress [0-100] for the current status
statusCode - OtaOperationStatusCode The current status code of the operation
message - String A message with additional details about the current status
createdAt - DateTime! The creation timestamp of the operation
updatedAt - DateTime! The timestamp of the last update to the operation
device - Device! The device targeted from the operation
updateTarget - UpdateTarget The update target of an update campaing that created the managed ota operation, if any.
Example
{
  "id": "4",
  "baseImageUrl": "abc123",
  "status": "PENDING",
  "statusProgress": 987,
  "statusCode": "REQUEST_TIMEOUT",
  "message": "abc123",
  "createdAt": "2007-12-03T10:15:30Z",
  "updatedAt": "2007-12-03T10:15:30Z",
  "device": Device,
  "updateTarget": UpdateTarget
}

OtaOperationFilterBaseImageUrl

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "xyz789",
  "notEq": "abc123",
  "in": ["abc123"],
  "lessThan": "xyz789",
  "greaterThan": "abc123",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "xyz789",
  "like": "abc123",
  "ilike": "abc123"
}

OtaOperationFilterCreatedAt

Fields
Input Field Description
isNil - Boolean
eq - DateTime
notEq - DateTime
in - [DateTime!]
lessThan - DateTime
greaterThan - DateTime
lessThanOrEqual - DateTime
greaterThanOrEqual - DateTime
Example
{
  "isNil": false,
  "eq": "2007-12-03T10:15:30Z",
  "notEq": "2007-12-03T10:15:30Z",
  "in": ["2007-12-03T10:15:30Z"],
  "lessThan": "2007-12-03T10:15:30Z",
  "greaterThan": "2007-12-03T10:15:30Z",
  "lessThanOrEqual": "2007-12-03T10:15:30Z",
  "greaterThanOrEqual": "2007-12-03T10:15:30Z"
}

OtaOperationFilterId

Fields
Input Field Description
isNil - Boolean
eq - ID
notEq - ID
in - [ID!]
lessThan - ID
greaterThan - ID
lessThanOrEqual - ID
greaterThanOrEqual - ID
Example
{
  "isNil": false,
  "eq": "4",
  "notEq": "4",
  "in": [4],
  "lessThan": 4,
  "greaterThan": "4",
  "lessThanOrEqual": "4",
  "greaterThanOrEqual": "4"
}

OtaOperationFilterInput

Fields
Input Field Description
and - [OtaOperationFilterInput!]
or - [OtaOperationFilterInput!]
not - [OtaOperationFilterInput!]
id - OtaOperationFilterId
baseImageUrl - OtaOperationFilterBaseImageUrl The URL of the base image being installed on the device
status - OtaOperationFilterStatus The current status of the operation
statusProgress - OtaOperationFilterStatusProgress The percentage progress [0-100] for the current status
statusCode - OtaOperationFilterStatusCode The current status code of the operation
message - OtaOperationFilterMessage A message with additional details about the current status
createdAt - OtaOperationFilterCreatedAt The creation timestamp of the operation
updatedAt - OtaOperationFilterUpdatedAt The timestamp of the last update to the operation
device - DeviceFilterInput The device targeted from the operation
updateTarget - UpdateTargetFilterInput The update target of an update campaing that created the managed ota operation, if any.
Example
{
  "and": [OtaOperationFilterInput],
  "or": [OtaOperationFilterInput],
  "not": [OtaOperationFilterInput],
  "id": OtaOperationFilterId,
  "baseImageUrl": OtaOperationFilterBaseImageUrl,
  "status": OtaOperationFilterStatus,
  "statusProgress": OtaOperationFilterStatusProgress,
  "statusCode": OtaOperationFilterStatusCode,
  "message": OtaOperationFilterMessage,
  "createdAt": OtaOperationFilterCreatedAt,
  "updatedAt": OtaOperationFilterUpdatedAt,
  "device": DeviceFilterInput,
  "updateTarget": UpdateTargetFilterInput
}

OtaOperationFilterMessage

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "abc123",
  "notEq": "abc123",
  "in": ["xyz789"],
  "lessThan": "abc123",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "xyz789",
  "like": "abc123",
  "ilike": "abc123"
}

OtaOperationFilterStatus

Fields
Input Field Description
isNil - Boolean
eq - OtaOperationStatus
notEq - OtaOperationStatus
in - [OtaOperationStatus!]
lessThan - OtaOperationStatus
greaterThan - OtaOperationStatus
lessThanOrEqual - OtaOperationStatus
greaterThanOrEqual - OtaOperationStatus
Example
{
  "isNil": true,
  "eq": "PENDING",
  "notEq": "PENDING",
  "in": ["PENDING"],
  "lessThan": "PENDING",
  "greaterThan": "PENDING",
  "lessThanOrEqual": "PENDING",
  "greaterThanOrEqual": "PENDING"
}

OtaOperationFilterStatusCode

Fields
Input Field Description
isNil - Boolean
eq - OtaOperationStatusCode
notEq - OtaOperationStatusCode
in - [OtaOperationStatusCode]
lessThan - OtaOperationStatusCode
greaterThan - OtaOperationStatusCode
lessThanOrEqual - OtaOperationStatusCode
greaterThanOrEqual - OtaOperationStatusCode
Example
{
  "isNil": false,
  "eq": "REQUEST_TIMEOUT",
  "notEq": "REQUEST_TIMEOUT",
  "in": ["REQUEST_TIMEOUT"],
  "lessThan": "REQUEST_TIMEOUT",
  "greaterThan": "REQUEST_TIMEOUT",
  "lessThanOrEqual": "REQUEST_TIMEOUT",
  "greaterThanOrEqual": "REQUEST_TIMEOUT"
}

OtaOperationFilterStatusProgress

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 987,
  "notEq": 987,
  "in": [987],
  "lessThan": 123,
  "greaterThan": 987,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 987
}

OtaOperationFilterUpdatedAt

Fields
Input Field Description
isNil - Boolean
eq - DateTime
notEq - DateTime
in - [DateTime!]
lessThan - DateTime
greaterThan - DateTime
lessThanOrEqual - DateTime
greaterThanOrEqual - DateTime
Example
{
  "isNil": false,
  "eq": "2007-12-03T10:15:30Z",
  "notEq": "2007-12-03T10:15:30Z",
  "in": ["2007-12-03T10:15:30Z"],
  "lessThan": "2007-12-03T10:15:30Z",
  "greaterThan": "2007-12-03T10:15:30Z",
  "lessThanOrEqual": "2007-12-03T10:15:30Z",
  "greaterThanOrEqual": "2007-12-03T10:15:30Z"
}

OtaOperationSortField

Values
Enum Value Description

ID

BASE_IMAGE_URL

STATUS

STATUS_PROGRESS

STATUS_CODE

MESSAGE

CREATED_AT

UPDATED_AT

Example
"ID"

OtaOperationSortInput

Fields
Input Field Description
order - SortOrder
field - OtaOperationSortField!
Example
{"order": "DESC", "field": "ID"}

OtaOperationStatus

Values
Enum Value Description

PENDING

The OTA operation was created and is waiting an acknowledgment from the device

ACKNOWLEDGED

The OTA operation was acknowledged from the device

DOWNLOADING

The device is downloading the update

DEPLOYING

The device is deploying the update

DEPLOYED

The device deployed the update

REBOOTING

The device is in the process of rebooting

ERROR

A recoverable error happened during the OTA operation

FAILURE

The OTA operation ended with a failure. This is a final state of the OTA Operation

SUCCESS

The OTA operation ended successfully. This is a final state of the OTA Operation
Example
"PENDING"

OtaOperationStatusCode

Values
Enum Value Description

REQUEST_TIMEOUT

The OTA Operation timed out while sending the request to the device

INVALID_REQUEST

The OTA Operation contained invalid data

UPDATE_ALREADY_IN_PROGRESS

An OTA Operation is already in progress on the device

NETWORK_ERROR

A network error was encountered

IO_ERROR

An IO error was encountered

INTERNAL_ERROR

An internal error was encountered

INVALID_BASE_IMAGE

The OTA Operation failed due to an invalid base image

SYSTEM_ROLLBACK

A system rollback has occurred

CANCELED

The OTA Operation was canceled
Example
"REQUEST_TIMEOUT"

Position

Description

Describes the position of a device.

The field holds information about the GPS coordinates of the device, which are estimated by means of Edgehog's geolocation modules and the data published by the device.

Fields
Field Name Description
latitude - Float! The latitude coordinate.
longitude - Float! The longitude coordinate.
accuracy - Float The accuracy of the measurement, in meters.
altitude - Float The altitude coordinate.
altitudeAccuracy - Float The accuracy of the altitude measurement, in meters.
heading - Float The measured heading.
speed - Float The measured speed.
timestamp - DateTime! The date and time at which the measurement was made.
source - String Describes how the position was calculated.
Example
{
  "latitude": 987.65,
  "longitude": 123.45,
  "accuracy": 987.65,
  "altitude": 987.65,
  "altitudeAccuracy": 123.45,
  "heading": 987.65,
  "speed": 987.65,
  "timestamp": "2007-12-03T10:15:30Z",
  "source": "xyz789"
}

PushRollout

Description

An object representing the properties of a Push Rollout Mechanism.

Fields
Field Name Description
forceDowngrade - Boolean! This boolean flag determines if the Base Image will be pushed to the Device even if it already has a greater version of the Base Image.
maxFailurePercentage - Float! The maximum percentage of failures allowed over the number of total targets. If the failures exceed this threshold, the Update Campaign terminates with a failure.
maxInProgressUpdates - Int! The maximum number of in progress updates. The Update Campaign will have at most this number of OTA Operations that are started but not yet finished (either successfully or not).
otaRequestRetries - Int! The number of attempts that have to be tried before giving up on the update of a specific target (and considering it an error). Note that the update is retried only if the OTA Request doesn't get acknowledged from the device.
otaRequestTimeoutSeconds - Int! The timeout (in seconds) Edgehog has to wait before considering an OTA Request lost (and possibly retry). It must be at least 30 seconds.
Example
{
  "forceDowngrade": false,
  "maxFailurePercentage": 987.65,
  "maxInProgressUpdates": 987,
  "otaRequestRetries": 123,
  "otaRequestTimeoutSeconds": 123
}

RemoveDeviceTagsInput

Fields
Input Field Description
tags - [String!]!
Example
{"tags": ["abc123"]}

RemoveDeviceTagsResult

Description

The result of the :remove_device_tags mutation

Fields
Field Name Description
result - Device The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": Device,
  "errors": [MutationError]
}

RequestForwarderSessionInput

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

RolloutMechanism

Types
Union Types

PushRollout

Example
PushRollout

RolloutMechanismInput

Fields
Input Field Description
push - UpdateCampaignRolloutMechanismPushInput
Example
{"push": UpdateCampaignRolloutMechanismPushInput}

RuntimeInfo

Description

Describes an Edgehog runtime.

Fields
Field Name Description
name - String The name of the Edgehog runtime.
version - String The version of the Edgehog runtime.
environment - String The environment of the Edgehog runtime.
url - String The URL that uniquely identifies the Edgehog runtime implementation.
Example
{
  "name": "abc123",
  "version": "xyz789",
  "environment": "abc123",
  "url": "xyz789"
}

SetDeviceLedBehaviorInput

Fields
Input Field Description
behavior - DeviceLedBehavior! The led behavior.
Example
{"behavior": "BLINK"}

SetDeviceLedBehaviorResult

Description

The result of the :set_device_led_behavior mutation

Fields
Field Name Description
result - Device The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": Device,
  "errors": [MutationError]
}

SortOrder

Values
Enum Value Description

DESC

DESC_NULLS_FIRST

DESC_NULLS_LAST

ASC

ASC_NULLS_FIRST

ASC_NULLS_LAST

Example
"DESC"

StorageUnit

Description

Describes the current usage of a storage unit on a device.

Fields
Field Name Description
label - String! The label of the storage unit.
totalBytes - Int The total number of bytes of the storage unit.
freeBytes - Int The number of free bytes of the storage unit.
Example
{
  "label": "abc123",
  "totalBytes": 123,
  "freeBytes": 987
}

String

Description

The String scalar type represents textual data, represented as UTF-8 character sequences. The String type is most often used by GraphQL to represent free-form human-readable text.

Example
"xyz789"

SystemModel

Description

A system model corresponds to what the users thinks as functionally equivalent devices (e.g. two revisions of a device containing two different embedded chips but having the same enclosure and the same functionality). Each SystemModel must be associated to a specific HardwareType.

Fields
Field Name Description
id - ID!
handle - String!

The identifier of the system model.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String! The display name of the system model.
pictureUrl - String A URL to a picture representing the system model.
partNumbers - [SystemModelPartNumber!]! The list of part numbers associated with the system model.
Arguments
sort - [SystemModelPartNumberSortInput]

How to sort the records in the response

filter - SystemModelPartNumberFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

hardwareType - HardwareType The Hardware type associated with the System Model
localizedDescriptions - [LocalizedAttribute!] A list of descriptions in different languages.
Arguments
preferredLanguageTags - [String!]
Example
{
  "id": 4,
  "handle": "xyz789",
  "name": "xyz789",
  "pictureUrl": "xyz789",
  "partNumbers": [SystemModelPartNumber],
  "hardwareType": HardwareType,
  "localizedDescriptions": [LocalizedAttribute]
}

SystemModelFilterHandle

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "abc123",
  "notEq": "xyz789",
  "in": ["abc123"],
  "lessThan": "xyz789",
  "greaterThan": "abc123",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "xyz789",
  "like": "xyz789",
  "ilike": "xyz789"
}

SystemModelFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 987,
  "notEq": 123,
  "in": [123],
  "lessThan": 987,
  "greaterThan": 987,
  "lessThanOrEqual": 987,
  "greaterThanOrEqual": 987
}

SystemModelFilterInput

Fields
Input Field Description
and - [SystemModelFilterInput!]
or - [SystemModelFilterInput!]
not - [SystemModelFilterInput!]
id - SystemModelFilterId
handle - SystemModelFilterHandle

The identifier of the system model.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - SystemModelFilterName The display name of the system model.
pictureUrl - SystemModelFilterPictureUrl A URL to a picture representing the system model.
partNumbers - SystemModelPartNumberFilterInput The list of part numbers associated with the system model.
hardwareType - HardwareTypeFilterInput The Hardware type associated with the System Model
Example
{
  "and": [SystemModelFilterInput],
  "or": [SystemModelFilterInput],
  "not": [SystemModelFilterInput],
  "id": SystemModelFilterId,
  "handle": SystemModelFilterHandle,
  "name": SystemModelFilterName,
  "pictureUrl": SystemModelFilterPictureUrl,
  "partNumbers": SystemModelPartNumberFilterInput,
  "hardwareType": HardwareTypeFilterInput
}

SystemModelFilterName

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "abc123",
  "notEq": "xyz789",
  "in": ["abc123"],
  "lessThan": "abc123",
  "greaterThan": "abc123",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "xyz789",
  "like": "xyz789",
  "ilike": "abc123"
}

SystemModelFilterPictureUrl

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "xyz789",
  "notEq": "xyz789",
  "in": ["xyz789"],
  "lessThan": "xyz789",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

SystemModelPartNumber

Fields
Field Name Description
id - ID!
partNumber - String! The part number identifier.
systemModel - SystemModel
Example
{
  "id": "4",
  "partNumber": "xyz789",
  "systemModel": SystemModel
}

SystemModelPartNumberFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 123,
  "notEq": 123,
  "in": [987],
  "lessThan": 987,
  "greaterThan": 123,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 123
}

SystemModelPartNumberFilterInput

Example
{
  "and": [SystemModelPartNumberFilterInput],
  "or": [SystemModelPartNumberFilterInput],
  "not": [SystemModelPartNumberFilterInput],
  "id": SystemModelPartNumberFilterId,
  "partNumber": SystemModelPartNumberFilterPartNumber,
  "systemModel": SystemModelFilterInput
}

SystemModelPartNumberFilterPartNumber

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "xyz789",
  "notEq": "xyz789",
  "in": ["abc123"],
  "lessThan": "abc123",
  "greaterThan": "abc123",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

SystemModelPartNumberSortField

Values
Enum Value Description

ID

PART_NUMBER

Example
"ID"

SystemModelPartNumberSortInput

Fields
Input Field Description
order - SortOrder
field - SystemModelPartNumberSortField!
Example
{"order": "DESC", "field": "ID"}

SystemModelSortField

Values
Enum Value Description

ID

HANDLE

NAME

PICTURE_URL

Example
"ID"

SystemModelSortInput

Fields
Input Field Description
order - SortOrder
field - SystemModelSortField!
Example
{"order": "DESC", "field": "ID"}

SystemStatus

Description

Describes the current status of the operating system of a device.

Fields
Field Name Description
bootId - String The identifier of the performed boot sequence.
memoryFreeBytes - Int The number of free bytes of memory.
taskCount - Int The number of running tasks on the system.
uptimeMilliseconds - Int The number of milliseconds since the last system boot.
timestamp - DateTime! The date at which the system status was read.
Example
{
  "bootId": "xyz789",
  "memoryFreeBytes": 123,
  "taskCount": 987,
  "uptimeMilliseconds": 123,
  "timestamp": "2007-12-03T10:15:30Z"
}

Tag

Description

A Tag that can be applied to a resource.

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

TagFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 987,
  "notEq": 123,
  "in": [987],
  "lessThan": 123,
  "greaterThan": 123,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 123
}

TagFilterInput

Fields
Input Field Description
and - [TagFilterInput!]
or - [TagFilterInput!]
not - [TagFilterInput!]
id - TagFilterId
name - TagFilterName
Example
{
  "and": [TagFilterInput],
  "or": [TagFilterInput],
  "not": [TagFilterInput],
  "id": TagFilterId,
  "name": TagFilterName
}

TagFilterName

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "xyz789",
  "notEq": "xyz789",
  "in": ["abc123"],
  "lessThan": "abc123",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "abc123"
}

TagSortField

Values
Enum Value Description

ID

NAME

Example
"ID"

TagSortInput

Fields
Input Field Description
order - SortOrder
field - TagSortField!
Example
{"order": "DESC", "field": "ID"}

TenantInfo

Fields
Field Name Description
id - ID!
name - String! The tenant name.
slug - String! The tenant slug.
defaultLocale - String! The default locale supported by the tenant.
Example
{
  "id": "4",
  "name": "abc123",
  "slug": "abc123",
  "defaultLocale": "abc123"
}

UpdateBaseImageCollectionInput

Fields
Input Field Description
name - String The display name of the base image collection.
handle - String

The identifier of the base image collection.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

Example
{
  "name": "xyz789",
  "handle": "xyz789"
}

UpdateBaseImageCollectionResult

Description

The result of the :update_base_image_collection mutation

Fields
Field Name Description
result - BaseImageCollection The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": BaseImageCollection,
  "errors": [MutationError]
}

UpdateBaseImageInput

Fields
Input Field Description
startingVersionRequirement - String The starting version requirement for the base image.
localizedDescriptions - [LocalizedAttributeUpdateInput!] A list of descriptions in different languages.
localizedReleaseDisplayNames - [LocalizedAttributeUpdateInput!] A list of release display names in different languages.
Example
{
  "startingVersionRequirement": "xyz789",
  "localizedDescriptions": [
    LocalizedAttributeUpdateInput
  ],
  "localizedReleaseDisplayNames": [
    LocalizedAttributeUpdateInput
  ]
}

UpdateBaseImageResult

Description

The result of the :update_base_image mutation

Fields
Field Name Description
result - BaseImage The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": BaseImage,
  "errors": [MutationError]
}

UpdateCampaign

Description

Represents an UpdateCampaign.

An Update Campaign is the operation that tracks the distribution of a specific Base Image to all devices belonging to an Update Channel.

Fields
Field Name Description
id - ID!
name - String! The name of the update campaign.
status - UpdateCampaignStatus! The status of the update campaign.
outcome - UpdateCampaignOutcome The outcome of the update campaign, present only when it's finished.
rolloutMechanism - RolloutMechanism! The rollout mechanism used in the update campaign.
baseImage - BaseImage! The base image distributed by the update campaign.
updateChannel - UpdateChannel! The update channel targeted by the update campaign.
updateTargets - [UpdateTarget!]! The update targets belonging to the update campaign.
Arguments
sort - [UpdateTargetSortInput]

How to sort the records in the response

filter - UpdateTargetFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

totalTargetCount - Int! The total number of update targets.
idleTargetCount - Int! The number of update targets with an idle status.
inProgressTargetCount - Int! The number of update targets with an in-progress status.
failedTargetCount - Int! The number of update targets with a failed status.
successfulTargetCount - Int! The number of update targets with a successful status.
Example
{
  "id": 4,
  "name": "abc123",
  "status": "IDLE",
  "outcome": "SUCCESS",
  "rolloutMechanism": PushRollout,
  "baseImage": BaseImage,
  "updateChannel": UpdateChannel,
  "updateTargets": [UpdateTarget],
  "totalTargetCount": 123,
  "idleTargetCount": 987,
  "inProgressTargetCount": 123,
  "failedTargetCount": 987,
  "successfulTargetCount": 123
}

UpdateCampaignFilterFailedTargetCount

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": false,
  "eq": 987,
  "notEq": 987,
  "in": [123],
  "lessThan": 987,
  "greaterThan": 987,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 123
}

UpdateCampaignFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": false,
  "eq": 123,
  "notEq": 987,
  "in": [123],
  "lessThan": 987,
  "greaterThan": 987,
  "lessThanOrEqual": 987,
  "greaterThanOrEqual": 987
}

UpdateCampaignFilterIdleTargetCount

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 987,
  "notEq": 123,
  "in": [123],
  "lessThan": 123,
  "greaterThan": 987,
  "lessThanOrEqual": 987,
  "greaterThanOrEqual": 123
}

UpdateCampaignFilterInProgressTargetCount

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 123,
  "notEq": 123,
  "in": [123],
  "lessThan": 987,
  "greaterThan": 987,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 123
}

UpdateCampaignFilterInput

Fields
Input Field Description
and - [UpdateCampaignFilterInput!]
or - [UpdateCampaignFilterInput!]
not - [UpdateCampaignFilterInput!]
id - UpdateCampaignFilterId
name - UpdateCampaignFilterName The name of the update campaign.
status - UpdateCampaignFilterStatus The status of the update campaign.
outcome - UpdateCampaignFilterOutcome The outcome of the update campaign, present only when it's finished.
baseImage - BaseImageFilterInput The base image distributed by the update campaign.
updateChannel - UpdateChannelFilterInput The update channel targeted by the update campaign.
updateTargets - UpdateTargetFilterInput The update targets belonging to the update campaign.
totalTargetCount - UpdateCampaignFilterTotalTargetCount The total number of update targets.
idleTargetCount - UpdateCampaignFilterIdleTargetCount The number of update targets with an idle status.
inProgressTargetCount - UpdateCampaignFilterInProgressTargetCount The number of update targets with an in-progress status.
failedTargetCount - UpdateCampaignFilterFailedTargetCount The number of update targets with a failed status.
successfulTargetCount - UpdateCampaignFilterSuccessfulTargetCount The number of update targets with a successful status.
Example
{
  "and": [UpdateCampaignFilterInput],
  "or": [UpdateCampaignFilterInput],
  "not": [UpdateCampaignFilterInput],
  "id": UpdateCampaignFilterId,
  "name": UpdateCampaignFilterName,
  "status": UpdateCampaignFilterStatus,
  "outcome": UpdateCampaignFilterOutcome,
  "baseImage": BaseImageFilterInput,
  "updateChannel": UpdateChannelFilterInput,
  "updateTargets": UpdateTargetFilterInput,
  "totalTargetCount": UpdateCampaignFilterTotalTargetCount,
  "idleTargetCount": UpdateCampaignFilterIdleTargetCount,
  "inProgressTargetCount": UpdateCampaignFilterInProgressTargetCount,
  "failedTargetCount": UpdateCampaignFilterFailedTargetCount,
  "successfulTargetCount": UpdateCampaignFilterSuccessfulTargetCount
}

UpdateCampaignFilterName

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "xyz789",
  "notEq": "xyz789",
  "in": ["xyz789"],
  "lessThan": "xyz789",
  "greaterThan": "abc123",
  "lessThanOrEqual": "abc123",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

UpdateCampaignFilterOutcome

Fields
Input Field Description
isNil - Boolean
eq - UpdateCampaignOutcome
notEq - UpdateCampaignOutcome
in - [UpdateCampaignOutcome]
lessThan - UpdateCampaignOutcome
greaterThan - UpdateCampaignOutcome
lessThanOrEqual - UpdateCampaignOutcome
greaterThanOrEqual - UpdateCampaignOutcome
Example
{
  "isNil": true,
  "eq": "SUCCESS",
  "notEq": "SUCCESS",
  "in": ["SUCCESS"],
  "lessThan": "SUCCESS",
  "greaterThan": "SUCCESS",
  "lessThanOrEqual": "SUCCESS",
  "greaterThanOrEqual": "SUCCESS"
}

UpdateCampaignFilterStatus

Fields
Input Field Description
isNil - Boolean
eq - UpdateCampaignStatus
notEq - UpdateCampaignStatus
in - [UpdateCampaignStatus!]
lessThan - UpdateCampaignStatus
greaterThan - UpdateCampaignStatus
lessThanOrEqual - UpdateCampaignStatus
greaterThanOrEqual - UpdateCampaignStatus
Example
{
  "isNil": false,
  "eq": "IDLE",
  "notEq": "IDLE",
  "in": ["IDLE"],
  "lessThan": "IDLE",
  "greaterThan": "IDLE",
  "lessThanOrEqual": "IDLE",
  "greaterThanOrEqual": "IDLE"
}

UpdateCampaignFilterSuccessfulTargetCount

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 987,
  "notEq": 123,
  "in": [123],
  "lessThan": 123,
  "greaterThan": 123,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 987
}

UpdateCampaignFilterTotalTargetCount

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": false,
  "eq": 987,
  "notEq": 123,
  "in": [987],
  "lessThan": 987,
  "greaterThan": 987,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 123
}

UpdateCampaignOutcome

Values
Enum Value Description

SUCCESS

The update campaign has finished succesfully.

FAILURE

The update campaign has finished with a failure.
Example
"SUCCESS"

UpdateCampaignRolloutMechanismPushInput

Fields
Input Field Description
otaRequestTimeoutSeconds - Int The timeout (in seconds) Edgehog has to wait before considering an OTA Request lost (and possibly retry). It must be at least 30 seconds.
otaRequestRetries - Int The number of attempts that have to be tried before giving up on the update of a specific target (and considering it an error). Note that the update is retried only if the OTA Request doesn't get acknowledged from the device.
maxInProgressUpdates - Int The maximum number of in progress updates. The Update Campaign will have at most this number of OTA Operations that are started but not yet finished (either successfully or not).
forceDowngrade - Boolean This boolean flag determines if the Base Image will be pushed to the Device even if it already has a greater version of the Base Image.
maxFailurePercentage - Float The maximum percentage of failures allowed over the number of total targets. If the failures exceed this threshold, the Update Campaign terminates with a failure.
Example
{
  "otaRequestTimeoutSeconds": 987,
  "otaRequestRetries": 987,
  "maxInProgressUpdates": 987,
  "forceDowngrade": false,
  "maxFailurePercentage": 123.45
}

UpdateCampaignSortField

Values
Enum Value Description

ID

NAME

STATUS

OUTCOME

TOTAL_TARGET_COUNT

IDLE_TARGET_COUNT

IN_PROGRESS_TARGET_COUNT

FAILED_TARGET_COUNT

SUCCESSFUL_TARGET_COUNT

Example
"ID"

UpdateCampaignSortInput

Fields
Input Field Description
order - SortOrder
field - UpdateCampaignSortField!
Example
{"order": "DESC", "field": "ID"}

UpdateCampaignStatus

Values
Enum Value Description

IDLE

The update campaign has been created but is not being rolled-out yet.

IN_PROGRESS

The update campaign is being rolled-out.

FINISHED

The update campaign has finished.
Example
"IDLE"

UpdateChannel

Description

Represents an UpdateChannel.

An UpdateChannel represents a set of device groups that can be targeted in an UpdateCampaign.

Fields
Field Name Description
id - ID!
handle - String!

The identifier of the update channel.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String! The display name of the update channel.
targetGroups - [DeviceGroup!]! The device groups targeted by the update channel.
Arguments
sort - [DeviceGroupSortInput]

How to sort the records in the response

filter - DeviceGroupFilterInput

A filter to limit the results

limit - Int

The number of records to return.

offset - Int

The number of records to skip.

Example
{
  "id": "4",
  "handle": "abc123",
  "name": "xyz789",
  "targetGroups": [DeviceGroup]
}

UpdateChannelFilterHandle

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": true,
  "eq": "xyz789",
  "notEq": "xyz789",
  "in": ["abc123"],
  "lessThan": "xyz789",
  "greaterThan": "abc123",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "abc123",
  "like": "abc123",
  "ilike": "xyz789"
}

UpdateChannelFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": true,
  "eq": 123,
  "notEq": 987,
  "in": [123],
  "lessThan": 123,
  "greaterThan": 987,
  "lessThanOrEqual": 987,
  "greaterThanOrEqual": 123
}

UpdateChannelFilterInput

Fields
Input Field Description
and - [UpdateChannelFilterInput!]
or - [UpdateChannelFilterInput!]
not - [UpdateChannelFilterInput!]
id - UpdateChannelFilterId
handle - UpdateChannelFilterHandle

The identifier of the update channel.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - UpdateChannelFilterName The display name of the update channel.
targetGroups - DeviceGroupFilterInput The device groups targeted by the update channel.
Example
{
  "and": [UpdateChannelFilterInput],
  "or": [UpdateChannelFilterInput],
  "not": [UpdateChannelFilterInput],
  "id": UpdateChannelFilterId,
  "handle": UpdateChannelFilterHandle,
  "name": UpdateChannelFilterName,
  "targetGroups": DeviceGroupFilterInput
}

UpdateChannelFilterName

Fields
Input Field Description
isNil - Boolean
eq - String
notEq - String
in - [String!]
lessThan - String
greaterThan - String
lessThanOrEqual - String
greaterThanOrEqual - String
like - String
ilike - String
Example
{
  "isNil": false,
  "eq": "abc123",
  "notEq": "xyz789",
  "in": ["xyz789"],
  "lessThan": "xyz789",
  "greaterThan": "xyz789",
  "lessThanOrEqual": "xyz789",
  "greaterThanOrEqual": "xyz789",
  "like": "abc123",
  "ilike": "abc123"
}

UpdateChannelSortField

Values
Enum Value Description

ID

HANDLE

NAME

Example
"ID"

UpdateChannelSortInput

Fields
Input Field Description
order - SortOrder
field - UpdateChannelSortField!
Example
{"order": "DESC", "field": "ID"}

UpdateDeviceGroupInput

Fields
Input Field Description
name - String The display name of the device group.
handle - String

The identifier of the device group.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

selector - String

The Selector that will determine which devices belong to the device group.

This must be a valid selector expression, consult the Selector section of the Edgehog documentation for more information about Selectors.

Example
{
  "name": "abc123",
  "handle": "abc123",
  "selector": "abc123"
}

UpdateDeviceGroupResult

Description

The result of the :update_device_group mutation

Fields
Field Name Description
result - DeviceGroup The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": DeviceGroup,
  "errors": [MutationError]
}

UpdateDeviceInput

Fields
Input Field Description
name - String The display name of the device.
Example
{"name": "abc123"}

UpdateDeviceResult

Description

The result of the :update_device mutation

Fields
Field Name Description
result - Device The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": Device,
  "errors": [MutationError]
}

UpdateHardwareTypeInput

Fields
Input Field Description
handle - String

The identifier of the hardware type.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String The display name of the hardware type.
partNumbers - [String!] The list of part numbers associated with the hardware type.
Example
{
  "handle": "abc123",
  "name": "xyz789",
  "partNumbers": ["abc123"]
}

UpdateHardwareTypeResult

Description

The result of the :update_hardware_type mutation

Fields
Field Name Description
result - HardwareType The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": HardwareType,
  "errors": [MutationError]
}

UpdateSystemModelInput

Fields
Input Field Description
handle - String

The identifier of the system model.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String The display name of the system model.
pictureUrl - String A URL to a picture representing the system model.
partNumbers - [String!] The list of part numbers associated with the system model.
pictureFile - Upload A picture representing the system model that will be uploaded to a bucket.
localizedDescriptions - [LocalizedAttributeUpdateInput!]

A list of descriptions in different languages.

If a language already exists it is updated. If a null value is passed, the language is deleted.

Example
{
  "handle": "xyz789",
  "name": "xyz789",
  "pictureUrl": "xyz789",
  "partNumbers": ["xyz789"],
  "pictureFile": Upload,
  "localizedDescriptions": [LocalizedAttributeUpdateInput]
}

UpdateSystemModelResult

Description

The result of the :update_system_model mutation

Fields
Field Name Description
result - SystemModel The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": SystemModel,
  "errors": [MutationError]
}

UpdateTarget

Description

Represents an UpdateTarget.

An Update Target is the target of an Update Campaign, which is composed by the targeted device and the status of the target in the linked Update Campaign.

Fields
Field Name Description
id - ID!
status - UpdateTargetStatus! The status of the update target.
retryCount - Int! The retry count of the update target. This indicates how many times Edgehog has tried to send an OTA update towards the device without receiving an ack.
latestAttempt - DateTime The timestamp of the latest attempt to update the update target.
completionTimestamp - DateTime The timestamp when the update target completed its update, either with a success or a failure.
updateCampaign - UpdateCampaign! The update campaign that is targeting the update target.
device - Device! The target device.
otaOperation - OtaOperation The OTA operation that tracks the update target in-progress update.
Example
{
  "id": "4",
  "status": "IDLE",
  "retryCount": 987,
  "latestAttempt": "2007-12-03T10:15:30Z",
  "completionTimestamp": "2007-12-03T10:15:30Z",
  "updateCampaign": UpdateCampaign,
  "device": Device,
  "otaOperation": OtaOperation
}

UpdateTargetFilterCompletionTimestamp

Fields
Input Field Description
isNil - Boolean
eq - DateTime
notEq - DateTime
in - [DateTime]
lessThan - DateTime
greaterThan - DateTime
lessThanOrEqual - DateTime
greaterThanOrEqual - DateTime
Example
{
  "isNil": true,
  "eq": "2007-12-03T10:15:30Z",
  "notEq": "2007-12-03T10:15:30Z",
  "in": ["2007-12-03T10:15:30Z"],
  "lessThan": "2007-12-03T10:15:30Z",
  "greaterThan": "2007-12-03T10:15:30Z",
  "lessThanOrEqual": "2007-12-03T10:15:30Z",
  "greaterThanOrEqual": "2007-12-03T10:15:30Z"
}

UpdateTargetFilterId

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": false,
  "eq": 987,
  "notEq": 123,
  "in": [987],
  "lessThan": 987,
  "greaterThan": 123,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 123
}

UpdateTargetFilterInput

Fields
Input Field Description
and - [UpdateTargetFilterInput!]
or - [UpdateTargetFilterInput!]
not - [UpdateTargetFilterInput!]
id - UpdateTargetFilterId
status - UpdateTargetFilterStatus The status of the update target.
retryCount - UpdateTargetFilterRetryCount The retry count of the update target. This indicates how many times Edgehog has tried to send an OTA update towards the device without receiving an ack.
latestAttempt - UpdateTargetFilterLatestAttempt The timestamp of the latest attempt to update the update target.
completionTimestamp - UpdateTargetFilterCompletionTimestamp The timestamp when the update target completed its update, either with a success or a failure.
updateCampaign - UpdateCampaignFilterInput The update campaign that is targeting the update target.
device - DeviceFilterInput The target device.
otaOperation - OtaOperationFilterInput The OTA operation that tracks the update target in-progress update.
Example
{
  "and": [UpdateTargetFilterInput],
  "or": [UpdateTargetFilterInput],
  "not": [UpdateTargetFilterInput],
  "id": UpdateTargetFilterId,
  "status": UpdateTargetFilterStatus,
  "retryCount": UpdateTargetFilterRetryCount,
  "latestAttempt": UpdateTargetFilterLatestAttempt,
  "completionTimestamp": UpdateTargetFilterCompletionTimestamp,
  "updateCampaign": UpdateCampaignFilterInput,
  "device": DeviceFilterInput,
  "otaOperation": OtaOperationFilterInput
}

UpdateTargetFilterLatestAttempt

Fields
Input Field Description
isNil - Boolean
eq - DateTime
notEq - DateTime
in - [DateTime]
lessThan - DateTime
greaterThan - DateTime
lessThanOrEqual - DateTime
greaterThanOrEqual - DateTime
Example
{
  "isNil": false,
  "eq": "2007-12-03T10:15:30Z",
  "notEq": "2007-12-03T10:15:30Z",
  "in": ["2007-12-03T10:15:30Z"],
  "lessThan": "2007-12-03T10:15:30Z",
  "greaterThan": "2007-12-03T10:15:30Z",
  "lessThanOrEqual": "2007-12-03T10:15:30Z",
  "greaterThanOrEqual": "2007-12-03T10:15:30Z"
}

UpdateTargetFilterRetryCount

Fields
Input Field Description
isNil - Boolean
eq - Int
notEq - Int
in - [Int!]
lessThan - Int
greaterThan - Int
lessThanOrEqual - Int
greaterThanOrEqual - Int
Example
{
  "isNil": false,
  "eq": 123,
  "notEq": 123,
  "in": [123],
  "lessThan": 123,
  "greaterThan": 123,
  "lessThanOrEqual": 123,
  "greaterThanOrEqual": 123
}

UpdateTargetFilterStatus

Fields
Input Field Description
isNil - Boolean
eq - UpdateTargetStatus
notEq - UpdateTargetStatus
in - [UpdateTargetStatus!]
lessThan - UpdateTargetStatus
greaterThan - UpdateTargetStatus
lessThanOrEqual - UpdateTargetStatus
greaterThanOrEqual - UpdateTargetStatus
Example
{
  "isNil": false,
  "eq": "IDLE",
  "notEq": "IDLE",
  "in": ["IDLE"],
  "lessThan": "IDLE",
  "greaterThan": "IDLE",
  "lessThanOrEqual": "IDLE",
  "greaterThanOrEqual": "IDLE"
}

UpdateTargetSortField

Values
Enum Value Description

ID

STATUS

RETRY_COUNT

LATEST_ATTEMPT

COMPLETION_TIMESTAMP

Example
"ID"

UpdateTargetSortInput

Fields
Input Field Description
order - SortOrder
field - UpdateTargetSortField!
Example
{"order": "DESC", "field": "ID"}

UpdateTargetStatus

Values
Enum Value Description

IDLE

The update campaign is waiting for the OTA Request to be sent.

IN_PROGRESS

The update target is in progress.

FAILED

The update target has failed to be updated.

SUCCESSFUL

The update target was successfully updated.
Example
"IDLE"

UpdateUpdateChannelInput

Fields
Input Field Description
handle - String

The identifier of the update channel.

It should start with a lower case ASCII letter and only contain lower case ASCII letters, digits and the hyphen - symbol.

name - String The display name of the update channel.
targetGroupIds - [ID!] The IDs of the target groups that are targeted by this update channel.
Example
{
  "handle": "abc123",
  "name": "xyz789",
  "targetGroupIds": [4]
}

UpdateUpdateChannelResult

Description

The result of the :update_update_channel mutation

Fields
Field Name Description
result - UpdateChannel The successful result of the mutation
errors - [MutationError!]! Any errors generated, if the mutation failed
Example
{
  "result": UpdateChannel,
  "errors": [MutationError]
}

Upload

Description

Represents an uploaded file.

Example
Upload

WifiScanResult

Description

Describes the list of WiFi Access Points found by the device.

Fields
Field Name Description
channel - Int The channel used by the Access Point.
connected - Boolean Indicates whether the device is connected to the Access Point.
essid - String The ESSID advertised by the Access Point.
macAddress - String The MAC address advertised by the Access Point.
rssi - Int The power of the radio signal, measured in dBm.
timestamp - DateTime! The date at which the device found the Access Point.
Example
{
  "channel": 123,
  "connected": true,
  "essid": "xyz789",
  "macAddress": "abc123",
  "rssi": 987,
  "timestamp": "2007-12-03T10:15:30Z"
}