Data type definitions

The REST-API defines the following data models, which are used to access or modify the available resources either as required attributes/parameters of the requests or as return types.

GripperElement:

CAD gripper element

An object of type GripperElement has the following properties:

  • id (string) - Unique identifier of the element

Template object

{
  "id": "string"
}

GripperElement objects are used in the following requests:

ImageInfo:

Information about specific firmware image.

An object of type ImageInfo has the following properties:

  • image_version (string) - image version

Template object

{
  "image_version": "string"
}

ImageInfo objects are nested in FirmwareInfo.

LicenseComponentConstraint:

Constraints on the module version.

An object of type LicenseComponentConstraint has the following properties:

  • max_version (string) - optional maximum supported version (exclusive)
  • min_version (string) - optional minimum supported version (inclusive)

Template object

{
  "max_version": "string",
  "min_version": "string"
}

LicenseComponentConstraint objects are nested in LicenseConstraints.

LicenseComponents:

List of the licensing status of the individual software modules. The respective flag is true if the module is unlocked with the currently applied software license.

An object of type LicenseComponents has the following properties:

  • hand_eye_calibration (boolean) - hand-eye calibration module
  • rectification (boolean) - image rectification module
  • stereo (boolean) - stereo matching module

Template object

{
  "hand_eye_calibration": false,
  "rectification": false,
  "stereo": false
}

LicenseComponents objects are nested in LicenseInfo.

LicenseConstraints:

Version constrains for modules.

An object of type LicenseConstraints has the following properties:

Template object

{
  "image_version": {
    "max_version": "string",
    "min_version": "string"
  }
}

LicenseConstraints objects are nested in LicenseInfo.

LicenseInfo:

Information about the currently applied software license on the device.

An object of type LicenseInfo has the following properties:

Template object

{
  "components": {
    "hand_eye_calibration": false,
    "rectification": false,
    "stereo": false
  },
  "components_constraints": {
    "image_version": {
      "max_version": "string",
      "min_version": "string"
    }
  },
  "valid": false
}

LicenseInfo objects are used in the following requests:

Log:

Content of a specific log file represented in JSON format.

An object of type Log has the following properties:

  • date (float) - UNIX time when log was last modified
  • log (array of LogEntry) - the actual log entries
  • name (string) - name of log file
  • size (integer) - size of log file in bytes

Template object

{
  "date": 0,
  "log": [
    {
      "component": "string",
      "level": "string",
      "message": "string",
      "timestamp": 0
    },
    {
      "component": "string",
      "level": "string",
      "message": "string",
      "timestamp": 0
    }
  ],
  "name": "string",
  "size": 0
}

Log objects are used in the following requests:

LogEntry:

Representation of a single log entry in a log file.

An object of type LogEntry has the following properties:

  • component (string) - module name that created this entry
  • level (string) - log level (one of DEBUG, INFO, WARN, ERROR, FATAL)
  • message (string) - actual log message
  • timestamp (float) - Unix time of log entry

Template object

{
  "component": "string",
  "level": "string",
  "message": "string",
  "timestamp": 0
}

LogEntry objects are nested in Log.

LogInfo:

Information about a specific log file.

An object of type LogInfo has the following properties:

  • date (float) - UNIX time when log was last modified
  • name (string) - name of log file
  • size (integer) - size of log file in bytes

Template object

{
  "date": 0,
  "name": "string",
  "size": 0
}

LogInfo objects are used in the following requests:

NodeInfo:

Description of a computational node running on device.

An object of type NodeInfo has the following properties:

  • name (string) - name of the node
  • parameters (array of string) - list of the node’s run-time parameters
  • services (array of string) - list of the services this node offers
  • status (string) - status of the node (one of unknown, down, idle, running)

Template object

{
  "name": "string",
  "parameters": [
    "string",
    "string"
  ],
  "services": [
    "string",
    "string"
  ],
  "status": "string"
}

NodeInfo objects are used in the following requests:

NodeStatus:

Detailed current status of the node including run-time statistics.

An object of type NodeStatus has the following properties:

  • status (string) - status of the node (one of unknown, down, idle, running)
  • timestamp (float) - Unix time when values were last updated
  • values (object) - dictionary with current status/statistics of the node

Template object

{
  "status": "string",
  "timestamp": 0,
  "values": {}
}

NodeStatus objects are used in the following requests:

Parameter:

Representation of a node’s run-time parameter. The parameter’s ‘value’ type (and hence the types of the ‘min’, ‘max’ and ‘default’ fields) can be inferred from the ‘type’ field and might be one of the built-in primitive data types.

An object of type Parameter has the following properties:

  • default (type not defined) - the parameter’s default value
  • description (string) - description of the parameter
  • max (type not defined) - maximum value this parameter can be assigned to
  • min (type not defined) - minimum value this parameter can be assigned to
  • name (string) - name of the parameter
  • type (string) - the parameter’s primitive type represented as string (one of bool, int8, uint8, int16, uint16, int32, uint32, int64, uint64, float32, float64, string)
  • value (type not defined) - the parameter’s current value

Template object

{
  "default": {},
  "description": "string",
  "max": {},
  "min": {},
  "name": "string",
  "type": "string",
  "value": {}
}

Parameter objects are used in the following requests:

ParameterNameValue:

Parameter name and value. The parameter’s ‘value’ type (and hence the types of the ‘min’, ‘max’ and ‘default’ fields) can be inferred from the ‘type’ field and might be one of the built-in primitive data types.

An object of type ParameterNameValue has the following properties:

  • name (string) - name of the parameter
  • value (type not defined) - the parameter’s current value

Template object

{
  "name": "string",
  "value": {}
}

ParameterNameValue objects are used in the following requests:

ParameterValue:

Parameter value. The parameter’s ‘value’ type (and hence the types of the ‘min’, ‘max’ and ‘default’ fields) can be inferred from the ‘type’ field and might be one of the built-in primitive data types.

An object of type ParameterValue has the following properties:

  • value (type not defined) - the parameter’s current value

Template object

{
  "value": {}
}

ParameterValue objects are used in the following requests:

ProxySettings:

HTTP proxy settings for pulling container images and git repos

An object of type ProxySettings has the following properties:

  • http_proxy (string) - HTTP proxy
  • https_proxy (string) - HTTPS proxy

Template object

{
  "http_proxy": "string",
  "https_proxy": "string"
}
Service:

Representation of a service that a node offers.

An object of type Service has the following properties:

Template object

{
  "args": {},
  "description": "string",
  "name": "string",
  "response": {}
}

Service objects are used in the following requests:

ServiceArgs:

Arguments required to call a service with. The general representation of these arguments is a (nested) dictionary. The specific content of this dictionary depends on the respective node and service call.

ServiceArgs objects are nested in Service.

ServiceResponse:

The response returned by the service call. The general representation of this response is a (nested) dictionary. The specific content of this dictionary depends on the respective node and service call.

ServiceResponse objects are nested in Service.

SysInfo:

System information about the device.

An object of type SysInfo has the following properties:

  • hostname (string) - Hostname
  • link_speed (integer) - Ethernet link speed in Mbps
  • mac (string) - MAC address
  • ready (boolean) - system is fully booted and ready
  • sensor_interfaces (object) - Available sensor interfaces with their current link speed
  • serial (string) - device serial number
  • time (float) - system time as Unix timestamp
  • ui_lock (UILock) - see description of UILock
  • uptime (float) - system uptime in seconds

Template object

{
  "hostname": "string",
  "link_speed": 0,
  "mac": "string",
  "ready": false,
  "sensor_interfaces": {},
  "serial": "string",
  "time": 0,
  "ui_lock": {
    "enabled": false
  },
  "uptime": 0
}

SysInfo objects are used in the following requests:

Template:

Detection template

An object of type Template has the following properties:

  • id (string) - Unique identifier of the template

Template object

{
  "id": "string"
}

Template objects are used in the following requests:

UILock:

UI lock status.

An object of type UILock has the following properties:

  • enabled (boolean)

Template object

{
  "enabled": false
}

UILock objects are nested in SysInfo, and are used in the following requests: