latestOpenAPI 3.1.0Apache License Version 2.02026-08-17498525913.3 KB

40169ccdec5c

device-controller

Create Or Update Device (saveDevice)

Create or update the Device. When creating device, platform generates Device Id as time-based UUID. Device credentials are also generated if not provided in the 'accessToken' request parameter. The newly created device id will be present in the response. Specify existing Device id to update the device. Referencing non-existing device Id will cause 'Not Found' error.

Device name is unique in the scope of tenant. Use unique identifiers like MAC or IMEI for the device names and non-unique 'label' field for user-friendly visualization purposes.Remove 'id', 'tenantId' and optionally 'customerId' from the request body example (below) to create new Device entity.

Available for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority.

post/api/device

Query parameters

accessTokenstring

Optional value of the device credentials to be used during device creation. If omitted, access token will be auto-generated.

nameConflictPolicy'FAIL' | 'UNIQUIFY'

Optional value of name conflict policy. Possible values: FAIL or UNIQUIFY. If omitted, FAIL policy is applied. FAIL policy implies exception will be thrown if an entity with the same name already exists. UNIQUIFY policy appends a suffix to the entity name, if a name conflict occurs.

uniquifySeparatorstring

Optional value of name suffix separator used by UNIQUIFY policy. By default, underscore separator is used. For example, strategy is UNIQUIFY, separator is '-'; if a name conflict occurs for entity name 'test-name', created entity will have name like 'test-name-7fsh4f'.

uniquifyStrategy'RANDOM' | 'INCREMENTAL'

Optional value of uniquify strategy used by UNIQUIFY policy. Possible values: RANDOM or INCREMENTAL. By default, RANDOM strategy is used, which means random alphanumeric string will be added as a suffix to entity name. INCREMENTAL implies the first possible number starting from 1 will be added as a name suffix. For example, strategy is UNIQUIFY, uniquify strategy is INCREMENTAL; if a name conflict occurs for entity name 'test-name', created entity will have name like 'test-name-1.

Request body

createdTimeinteger

Timestamp of the device creation, in milliseconds

namestring required

Unique Device Name in scope of Tenant

typestring

Device Profile Name

labelstring

Label that may be used in widgets

versioninteger
{"stackTrail":"components:schemas:JsonNode","oasType":"schema","type":"unknown","description":"A value representing the any type (object or primitive)","example":{}}

Example request

{
  "id": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "DEVICE"
  },
  "createdTime": 1609459200000,
  "tenantId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "TENANT"
  },
  "customerId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "CUSTOMER"
  },
  "name": "A4B72CCDFF33",
  "type": "Temperature Sensor",
  "label": "Room 234 Sensor",
  "deviceProfileId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "DEVICE_PROFILE"
  },
  "firmwareId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "OTA_PACKAGE"
  },
  "softwareId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "OTA_PACKAGE"
  },
  "additionalInfo": {}
}

Response

OK

createdTimeinteger

Timestamp of the device creation, in milliseconds

namestring required

Unique Device Name in scope of Tenant

typestring

Device Profile Name

labelstring

Label that may be used in widgets

versioninteger
{"stackTrail":"components:schemas:JsonNode","oasType":"schema","type":"unknown","description":"A value representing the any type (object or primitive)","example":{}}

Example response

{
  "id": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "DEVICE"
  },
  "createdTime": 1609459200000,
  "tenantId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "TENANT"
  },
  "customerId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "CUSTOMER"
  },
  "name": "A4B72CCDFF33",
  "type": "Temperature Sensor",
  "label": "Room 234 Sensor",
  "deviceProfileId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "DEVICE_PROFILE"
  },
  "firmwareId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "OTA_PACKAGE"
  },
  "softwareId": {
    "id": "784f394c-42b6-435a-983c-b7beff2784f9",
    "entityType": "OTA_PACKAGE"
  },
  "additionalInfo": {}
}