# ThingsBoard ThingsBoard Devices API
# Source: https://demo.thingsboard.io/v3/api-docs (Apache 2.0)
openapi: 3.1.0
info:
title: ThingsBoard Devices API
description: "ThingsBoard Devices API \u2014 subset of the ThingsBoard REST API (open-source IoT platform). Covers: Device, Device Profile, Device Connectivity, Ota Package."
version: 4.3.0.3DEMO
contact:
name: ThingsBoard team
url: https://thingsboard.io
email: info@thingsboard.io
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0
servers:
- url: https://demo.thingsboard.io
description: ThingsBoard Live Demo
- url: http://localhost:8080
description: Local ThingsBoard server
tags:
- name: device-controller
description: Device
- name: device-profile-controller
description: Device Profile
- name: device-connectivity-controller
description: Device Connectivity
- name: ota-package-controller
description: Ota Package
paths:
/api/tenant/{tenantId}/device/{deviceId}:
post:
tags:
- device-controller
summary: Assign Device to Tenant (assignDeviceToTenant)
description: 'Creates assignment of the device to tenant. Thereafter tenant will be able to reassign the device to a customer.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: assignDeviceToTenant
parameters:
- name: tenantId
in: path
description: A string value representing the tenant id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
/api/otaPackage:
post:
tags:
- ota-package-controller
summary: Create or Update OTA Package Info (saveOtaPackageInfo)
description: "Create or update the OTA Package Info. When creating OTA Package Info, platform generates OTA Package id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)).\
\ The newly created OTA Package id will be present in the response. Specify existing OTA Package id to update the OTA Package Info. Referencing non-existing OTA Package Id will cause 'Not Found'\
\ error. \n\nOTA Package combination of the title with the version is unique in the scope of tenant. \n\nAvailable for users with 'TENANT_ADMIN' authority."
operationId: saveOtaPackageInfo
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SaveOtaPackageInfoRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OtaPackageInfo'
/api/otaPackage/{otaPackageId}:
get:
tags:
- ota-package-controller
summary: Get OTA Package (getOtaPackageById)
description: "Fetch the OTA Package object based on the provided OTA Package Id. The server checks that the OTA Package is owned by the same tenant. OTA Package is a heavyweight object that includes\
\ main information about the OTA Package and also data. \n\nAvailable for users with 'TENANT_ADMIN' authority."
operationId: getOtaPackageById
parameters:
- name: otaPackageId
in: path
description: A string value representing the ota package id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OtaPackage'
post:
tags:
- ota-package-controller
summary: Save OTA Package Data (saveOtaPackageData)
description: 'Update the OTA Package. Adds the date to the existing OTA Package Info
Available for users with ''TENANT_ADMIN'' authority.'
operationId: saveOtaPackageData
parameters:
- name: otaPackageId
in: path
description: A string value representing the ota package id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: checksum
in: query
description: OTA Package checksum. For example, '0xd87f7e0c'
required: false
schema:
type: string
- name: checksumAlgorithm
in: query
description: OTA Package checksum algorithm.
required: true
schema:
type: string
enum:
- MD5
- SHA256
- SHA384
- SHA512
- CRC32
- MURMUR3_32
- MURMUR3_128
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
description: OTA Package data.
required:
- file
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OtaPackageInfo'
delete:
tags:
- ota-package-controller
summary: Delete OTA Package (deleteOtaPackage)
description: 'Deletes the OTA Package. Referencing non-existing OTA Package Id will cause an error. Can''t delete the OTA Package if it is referenced by existing devices or device profile.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: deleteOtaPackage
parameters:
- name: otaPackageId
in: path
description: A string value representing the ota package id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
/api/edge/{edgeId}/device/{deviceId}:
post:
tags:
- device-controller
summary: Assign Device to Edge (assignDeviceToEdge)
description: 'Creates assignment of an existing device to an instance of The Edge. Assignment works in async way - first, notification event pushed to edge service queue on platform. Second, remote
edge service will receive a copy of assignment device (Edge will receive this instantly, if it''s currently connected, or once it''s going to be connected to platform). Third, once device will be
delivered to edge service, it''s going to be available for usage on remote edge instance.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: assignDeviceToEdge
parameters:
- name: edgeId
in: path
description: A string value representing the edge id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
delete:
tags:
- device-controller
summary: Unassign Device from Edge (unassignDeviceFromEdge)
description: 'Clears assignment of the device to the edge. Unassignment works in async way - first, ''unassign'' notification event pushed to edge queue on platform. Second, remote edge service will
receive an ''unassign'' command to remove device (Edge will receive this instantly, if it''s currently connected, or once it''s going to be connected to platform). Third, once ''unassign'' command
will be delivered to edge service, it''s going to remove device locally.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: unassignDeviceFromEdge
parameters:
- name: edgeId
in: path
description: A string value representing the edge id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
/api/devices:
get:
tags:
- device-controller
summary: Get Devices by Ids (getDevicesByIds)
description: "Requested devices must be owned by tenant or assigned to customer which user is performing the request. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getDevicesByIds
parameters:
- name: deviceIds
in: query
description: A list of devices ids, separated by comma ','
required: true
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Device'
post:
tags:
- device-controller
summary: Find Related Devices (findByQuery)
description: 'Returns all devices that are related to the specific entity. The entity id, relation type, device types, depth of the search, and other query parameters defined using complex ''DeviceSearchQuery''
object. See ''Model'' tab of the Parameters for more info.
Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.'
operationId: findByQuery_3
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceSearchQuery'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Device'
/api/device:
post:
tags:
- device-controller
summary: Create or Update Device (saveDevice)
description: "Create or update the Device. When creating device, platform generates Device Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)).\
\ 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.\n\nDevice 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. \n\nAvailable for\
\ users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: saveDevice
parameters:
- name: accessToken
in: query
description: Optional value of the device credentials to be used during device creation. If omitted, access token will be auto-generated.
required: false
schema:
type: string
- name: nameConflictPolicy
in: query
description: '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.'
required: false
schema:
type: string
default: FAIL
enum:
- FAIL
- UNIQUIFY
- name: uniquifySeparator
in: query
description: 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'.
required: false
schema:
type: string
default: _
- name: uniquifyStrategy
in: query
description: '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.'
required: false
schema:
type: string
default: RANDOM
enum:
- RANDOM
- INCREMENTAL
requestBody:
description: A JSON value representing the device.
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
/api/deviceProfile:
post:
tags:
- device-profile-controller
summary: Create or Update Device Profile (saveDeviceProfile)
description: "Create or update the Device Profile. When creating device profile, platform generates device profile id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)).\
\ The newly created device profile id will be present in the response. Specify existing device profile id to update the device profile. Referencing non-existing device profile Id will cause 'Not\
\ Found' error. \n\nDevice profile name is unique in the scope of tenant. Only one 'default' device profile may exist in scope of tenant.\n\n# Device profile data definition\n\nDevice profile data\
\ object contains alarm rules configuration, device provision strategy and transport type configuration for device connectivity. Let's review some examples. First one is the default device profile\
\ data configuration and second one - the custom one. \n\n```json\n{\n \"alarms\":[\n ],\n \"configuration\":{\n \"type\":\"DEFAULT\"\n },\n \"provisionConfiguration\":{\n \"\
type\":\"DISABLED\",\n \"provisionDeviceSecret\":null\n },\n \"transportConfiguration\":{\n \"type\":\"DEFAULT\"\n }\n}\n```\n\n```json\n{\n \"alarms\":[\n {\n \"\
id\":\"2492b935-1226-59e9-8615-17d8978a4f93\",\n \"alarmType\":\"Temperature Alarm\",\n \"clearRule\":{\n \"schedule\":null,\n \"condition\":{\n \
\ \"spec\":{\n \"type\":\"SIMPLE\"\n },\n \"condition\":[\n {\n \"key\":{\n \"key\":\"\
temperature\",\n \"type\":\"TIME_SERIES\"\n },\n \"value\":null,\n \"predicate\":{\n \"\
type\":\"NUMERIC\",\n \"value\":{\n \"userValue\":null,\n \"defaultValue\":30.0,\n \"dynamicValue\"\
:null\n },\n \"operation\":\"LESS\"\n },\n \"valueType\":\"NUMERIC\"\n }\n ]\n\
\ },\n \"dashboardId\":null,\n \"alarmDetails\":null\n },\n \"propagate\":false,\n \"createRules\":{\n \"MAJOR\":{\n \
\ \"schedule\":{\n \"type\":\"SPECIFIC_TIME\",\n \"endsOn\":64800000,\n \"startsOn\":43200000,\n \"timezone\":\"Europe/Kiev\"\
,\n \"daysOfWeek\":[\n 1,\n 3,\n 5\n ]\n },\n \"condition\":{\n \
\ \"spec\":{\n \"type\":\"DURATION\",\n \"unit\":\"MINUTES\",\n \"predicate\":{\n \"userValue\":null,\n\
\ \"defaultValue\":30,\n \"dynamicValue\":null\n }\n },\n \"condition\":[\n \
\ {\n \"key\":{\n \"key\":\"temperature\",\n \"type\":\"TIME_SERIES\"\n },\n \
\ \"value\":null,\n \"predicate\":{\n \"type\":\"COMPLEX\",\n \"operation\":\"OR\",\n \"\
predicates\":[\n {\n \"type\":\"NUMERIC\",\n \"value\":{\n \"userValue\"\
:null,\n \"defaultValue\":50.0,\n \"dynamicValue\":null\n },\n \
\ \"operation\":\"LESS_OR_EQUAL\"\n },\n {\n \"type\":\"NUMERIC\",\n \
\ \"value\":{\n \"userValue\":null,\n \"defaultValue\":30.0,\n \"dynamicValue\":null\n \
\ },\n \"operation\":\"GREATER\"\n }\n ]\n },\n \
\ \"valueType\":\"NUMERIC\"\n }\n ]\n },\n \"dashboardId\":null,\n \"alarmDetails\":null\n \
\ },\n \"WARNING\":{\n \"schedule\":{\n \"type\":\"CUSTOM\",\n \"items\":[\n {\n \"endsOn\"\
:0,\n \"enabled\":false,\n \"startsOn\":0,\n \"dayOfWeek\":1\n },\n {\n \
\ \"endsOn\":64800000,\n \"enabled\":true,\n \"startsOn\":43200000,\n \"dayOfWeek\":2\n },\n \
\ {\n \"endsOn\":0,\n \"enabled\":false,\n \"startsOn\":0,\n \"dayOfWeek\":3\n \
\ },\n {\n \"endsOn\":57600000,\n \"enabled\":true,\n \"startsOn\":36000000,\n \
\ \"dayOfWeek\":4\n },\n {\n \"endsOn\":0,\n \"enabled\":false,\n \"startsOn\"\
:0,\n \"dayOfWeek\":5\n },\n {\n \"endsOn\":0,\n \"enabled\":false,\n \
\ \"startsOn\":0,\n \"dayOfWeek\":6\n },\n {\n \"endsOn\":0,\n \"enabled\":false,\n\
\ \"startsOn\":0,\n \"dayOfWeek\":7\n }\n ],\n \"timezone\":\"Europe/Kiev\"\n },\n\
\ \"condition\":{\n \"spec\":{\n \"type\":\"REPEATING\",\n \"predicate\":{\n \"userValue\":null,\n \
\ \"defaultValue\":5,\n \"dynamicValue\":null\n }\n },\n \"condition\":[\n \
\ {\n \"key\":{\n \"key\":\"tempConstant\",\n \"type\":\"CONSTANT\"\n },\n \
\ \"value\":30,\n \"predicate\":{\n \"type\":\"NUMERIC\",\n \"value\":{\n \"userValue\"\
:null,\n \"defaultValue\":0.0,\n \"dynamicValue\":{\n \"inherit\":false,\n \
\ \"sourceType\":\"CURRENT_DEVICE\",\n \"sourceAttribute\":\"tempThreshold\"\n }\n },\n \
\ \"operation\":\"EQUAL\"\n },\n \"valueType\":\"NUMERIC\"\n }\n ]\n },\n \
\ \"dashboardId\":null,\n \"alarmDetails\":null\n },\n \"CRITICAL\":{\n \"schedule\":null,\n \"condition\":{\n \"\
spec\":{\n \"type\":\"SIMPLE\"\n },\n \"condition\":[\n {\n \"key\":{\n \
\ \"key\":\"temperature\",\n \"type\":\"TIME_SERIES\"\n },\n \"value\":null,\n \"predicate\":{\n \
\ \"type\":\"NUMERIC\",\n \"value\":{\n \"userValue\":null,\n \"defaultValue\":50.0,\n\
\ \"dynamicValue\":null\n },\n \"operation\":\"GREATER\"\n },\n \"\
valueType\":\"NUMERIC\"\n }\n ]\n },\n \"dashboardId\":null,\n \"alarmDetails\":null\n }\n },\n\
\ \"propagateRelationTypes\":null\n }\n ],\n \"configuration\":{\n \"type\":\"DEFAULT\"\n },\n \"provisionConfiguration\":{\n \"type\":\"ALLOW_CREATE_NEW_DEVICES\"\
,\n \"provisionDeviceSecret\":\"vaxb9hzqdbz3oqukvomg\"\n },\n \"transportConfiguration\":{\n \"type\":\"MQTT\",\n \"deviceTelemetryTopic\":\"v1/devices/me/telemetry\",\n \
\ \"deviceAttributesTopic\":\"v1/devices/me/attributes\",\n \"transportPayloadTypeConfiguration\":{\n \"transportPayloadType\":\"PROTOBUF\",\n \"deviceTelemetryProtoSchema\"\
:\"syntax =\\\"proto3\\\";\\npackage telemetry;\\n\\nmessage SensorDataReading {\\n\\n optional double temperature = 1;\\n optional double humidity = 2;\\n InnerObject innerObject = 3;\\n\\n\
\ message InnerObject {\\n optional string key1 = 1;\\n optional bool key2 = 2;\\n optional double key3 = 3;\\n optional int32 key4 = 4;\\n optional string key5 = 5;\\n }\\n}\"\
,\n \"deviceAttributesProtoSchema\":\"syntax =\\\"proto3\\\";\\npackage attributes;\\n\\nmessage SensorConfiguration {\\n optional string firmwareVersion = 1;\\n optional string serialNumber\
\ = 2;\\n}\",\n \"deviceRpcRequestProtoSchema\":\"syntax =\\\"proto3\\\";\\npackage rpc;\\n\\nmessage RpcRequestMsg {\\n optional string method = 1;\\n optional int32 requestId = 2;\\\
n optional string params = 3;\\n}\",\n \"deviceRpcResponseProtoSchema\":\"syntax =\\\"proto3\\\";\\npackage rpc;\\n\\nmessage RpcResponseMsg {\\n optional string payload = 1;\\n}\"\n \
\ }\n }\n}\n```\n\nLet's review some specific objects examples related to the device profile configuration:\n\n# Alarm Schedule\n\nAlarm Schedule JSON object represents the time interval during\
\ which the alarm rule is active. Note, \n\n```json\n\"schedule\": null\n```\n\nmeans alarm rule is active all the time. **'daysOfWeek'** field represents Monday as 1, Tuesday as 2 and so on. **'startsOn'**\
\ and **'endsOn'** fields represent hours in millis (e.g. 64800000 = 18:00 or 6pm). **'enabled'** flag specifies if item in a custom rule is active for specific day of the week:\n\n## Specific Time\
\ Schedule\n\n```json\n{\n \"schedule\":{\n \"type\":\"SPECIFIC_TIME\",\n \"endsOn\":64800000,\n \"startsOn\":43200000,\n \"timezone\":\"Europe/Kiev\",\n \"daysOfWeek\"\
:[\n 1,\n 3,\n 5\n ]\n }\n}\n```\n\n## Custom Schedule\n\n```json\n{\n \"schedule\":{\n \"type\":\"CUSTOM\",\n \"items\":[\n {\n \"\
endsOn\":0,\n \"enabled\":false,\n \"startsOn\":0,\n \"dayOfWeek\":1\n },\n {\n \"endsOn\":64800000,\n \"enabled\":true,\n\
\ \"startsOn\":43200000,\n \"dayOfWeek\":2\n },\n {\n \"endsOn\":0,\n \"enabled\":false,\n \"startsOn\":0,\n \"\
dayOfWeek\":3\n },\n {\n \"endsOn\":57600000,\n \"enabled\":true,\n \"startsOn\":36000000,\n \"dayOfWeek\":4\n },\n {\n\
\ \"endsOn\":0,\n \"enabled\":false,\n \"startsOn\":0,\n \"dayOfWeek\":5\n },\n {\n \"endsOn\":0,\n \"enabled\"\
:false,\n \"startsOn\":0,\n \"dayOfWeek\":6\n },\n {\n \"endsOn\":0,\n \"enabled\":false,\n \"startsOn\":0,\n \"\
dayOfWeek\":7\n }\n ],\n \"timezone\":\"Europe/Kiev\"\n }\n}\n```\n\n# Alarm condition type (**'spec'**)\n\nAlarm condition type can be either simple, duration, or repeating.\
\ For example, 5 times in a row or during 5 minutes.\n\nNote, **'userValue'** field is not used and reserved for future usage, **'dynamicValue'** is used for condition appliance by using the value\
\ of the **'sourceAttribute'** or else **'defaultValue'** is used (if **'sourceAttribute'** is absent).\n\n**'sourceType'** of the **'sourceAttribute'** can be: \n * 'CURRENT_DEVICE';\n * 'CURRENT_CUSTOMER';\n\
\ * 'CURRENT_TENANT'.\n\n**'sourceAttribute'** can be inherited from the owner if **'inherit'** is set to true (for CURRENT_DEVICE and CURRENT_CUSTOMER).\n\n## Repeating alarm condition\n\n```json\n\
{\n \"spec\":{\n \"type\":\"REPEATING\",\n \"predicate\":{\n \"userValue\":null,\n \"defaultValue\":5,\n \"dynamicValue\":{\n \"inherit\":true,\n \
\ \"sourceType\":\"CURRENT_DEVICE\",\n \"sourceAttribute\":\"tempAttr\"\n }\n }\n }\n}\n```\n\n## Duration alarm condition\n\n```json\n{\n \"spec\":{\n \
\ \"type\":\"DURATION\",\n \"unit\":\"MINUTES\",\n \"predicate\":{\n \"userValue\":null,\n \"defaultValue\":30,\n \"dynamicValue\":null\n }\n }\n}\n```\n\
\n**'unit'** can be: \n * 'SECONDS';\n * 'MINUTES';\n * 'HOURS';\n * 'DAYS'.\n\n# Key Filters\n\nKey filter objects are created under the **'condition'** array. They allow you to define complex\
\ logical expressions over entity field, attribute, latest time series value or constant. The filter is defined using 'key', 'valueType', 'value' (refers to the value of the 'CONSTANT' alarm filter\
\ key type) and 'predicate' objects. Let's review each object:\n\n## Alarm Filter Key\n\nFilter Key defines either entity field, attribute, telemetry or constant. It is a JSON object that consists\
\ the key name and type. The following filter key types are supported:\n * 'ATTRIBUTE' - used for attributes values;\n * 'TIME_SERIES' - used for time series values;\n * 'ENTITY_FIELD' - used for\
\ accessing entity fields like 'name', 'label', etc. The list of available fields depends on the entity type;\n * 'CONSTANT' - constant value specified.\n\nLet's review the example:\n\n```json\n\
{\n \"type\": \"TIME_SERIES\",\n \"key\": \"temperature\"\n}\n```\n\n## Value Type and Operations\n\nProvides a hint about the data type of the entity field that is defined in the filter key.\
\ The value type impacts the list of possible operations that you may use in the corresponding predicate. For example, you may use 'STARTS_WITH' or 'END_WITH', but you can't use 'GREATER_OR_EQUAL'\
\ for string values.The following filter value types and corresponding predicate operations are supported: \n\n * 'STRING' - used to filter any 'String' or 'JSON' values. Operations: EQUAL, NOT_EQUAL,\
\ STARTS_WITH, ENDS_WITH, CONTAINS, NOT_CONTAINS; \n * 'NUMERIC' - used for 'Long' and 'Double' values. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL, LESS_OR_EQUAL; \n * 'BOOLEAN'\
\ - used for boolean values. Operations: EQUAL, NOT_EQUAL;\n * 'DATE_TIME' - similar to numeric, transforms value to milliseconds since epoch. Operations: EQUAL, NOT_EQUAL, GREATER, LESS, GREATER_OR_EQUAL,\
\ LESS_OR_EQUAL; \n\n\n\n\n## Filter Predicate\n\nFilter Predicate defines the logical expression to evaluate. The list of available operations depends on the filter value type, see above. Platform\
\ supports 4 predicate types: 'STRING', 'NUMERIC', 'BOOLEAN' and 'COMPLEX'. The last one allows to combine multiple operations over one filter key.\n\nSimple predicate example to check 'value <\
\ 100': \n\n```json\n{\n \"operation\": \"LESS\",\n \"value\": {\n \"userValue\": null,\n \"defaultValue\": 100,\n \"dynamicValue\": null\n },\n \"type\": \"NUMERIC\"\n}\n```\n\nComplex\
\ predicate example, to check 'value < 10 or value > 20': \n\n```json\n{\n \"type\": \"COMPLEX\",\n \"operation\": \"OR\",\n \"predicates\": [\n {\n \"operation\": \"LESS\",\n \"\
value\": {\n \"userValue\": null,\n \"defaultValue\": 10,\n \"dynamicValue\": null\n },\n \"type\": \"NUMERIC\"\n },\n {\n \"operation\": \"GREATER\",\n\
\ \"value\": {\n \"userValue\": null,\n \"defaultValue\": 20,\n \"dynamicValue\": null\n },\n \"type\": \"NUMERIC\"\n }\n ]\n}\n```\n\nMore complex predicate\
\ example, to check 'value < 10 or (value > 50 && value < 60)': \n\n```json\n{\n \"type\": \"COMPLEX\",\n \"operation\": \"OR\",\n \"predicates\": [\n {\n \"operation\": \"LESS\",\n \
\ \"value\": {\n \"userValue\": null,\n \"defaultValue\": 10,\n \"dynamicValue\": null\n },\n \"type\": \"NUMERIC\"\n },\n {\n \"type\": \"COMPLEX\"\
,\n \"operation\": \"AND\",\n \"predicates\": [\n {\n \"operation\": \"GREATER\",\n \"value\": {\n \"userValue\": null,\n \"defaultValue\"\
: 50,\n \"dynamicValue\": null\n },\n \"type\": \"NUMERIC\"\n },\n {\n \"operation\": \"LESS\",\n \"value\": {\n \"userValue\"\
: null,\n \"defaultValue\": 60,\n \"dynamicValue\": null\n },\n \"type\": \"NUMERIC\"\n }\n ]\n }\n ]\n}\n```\n\nYou may also want to replace\
\ hardcoded values (for example, temperature > 20) with the more dynamic expression (for example, temperature > value of the tenant attribute with key 'temperatureThreshold'). It is possible to\
\ use 'dynamicValue' to define attribute of the tenant, customer or device. See example below:\n\n```json\n{\n \"operation\": \"GREATER\",\n \"value\": {\n \"userValue\": null,\n \"defaultValue\"\
: 0,\n \"dynamicValue\": {\n \"inherit\": false,\n \"sourceType\": \"CURRENT_TENANT\",\n \"sourceAttribute\": \"temperatureThreshold\"\n }\n },\n \"type\": \"NUMERIC\"\n}\n\
```\n\nNote that you may use 'CURRENT_DEVICE', 'CURRENT_CUSTOMER' and 'CURRENT_TENANT' as a 'sourceType'. The 'defaultValue' is used when the attribute with such a name is not defined for the chosen\
\ source. The 'sourceAttribute' can be inherited from the owner of the specified 'sourceType' if 'inherit' is set to true.\n\n# Provision Configuration\n\nThere are 3 types of device provision configuration\
\ for the device profile: \n * 'DISABLED';\n * 'ALLOW_CREATE_NEW_DEVICES';\n * 'CHECK_PRE_PROVISIONED_DEVICES'.\n\nPlease refer to the [docs](https://thingsboard.io/docs/user-guide/device-provisioning/)\
\ for more details.\n\n# Transport Configuration\n\n5 transport configuration types are available:\n * 'DEFAULT';\n * 'MQTT';\n * 'LWM2M';\n * 'COAP';\n * 'SNMP'.\n\nDefault type supports basic\
\ MQTT, HTTP, CoAP and LwM2M transports. Please refer to the [docs](https://thingsboard.io/docs/user-guide/device-profiles/#transport-configuration) for more details about other types.\n\nSee another\
\ example of COAP transport configuration below:\n\n```json\n{\n \"type\":\"COAP\",\n \"clientSettings\":{\n \"edrxCycle\":null,\n \"powerMode\":\"DRX\",\n \"psmActivityTimer\"\
:null,\n \"pagingTransmissionWindow\":null\n },\n \"coapDeviceTypeConfiguration\":{\n \"coapDeviceType\":\"DEFAULT\",\n \"transportPayloadTypeConfiguration\":{\n \"transportPayloadType\"\
:\"JSON\"\n }\n }\n}\n```Remove 'id', 'tenantId' from the request body example (below) to create new Device Profile entity. \n\nAvailable for users with 'TENANT_ADMIN' authority."
operationId: saveDeviceProfile
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceProfile'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceProfile'
/api/deviceProfile/{deviceProfileId}/default:
post:
tags:
- device-profile-controller
summary: Make Device Profile Default (setDefaultDeviceProfile)
description: 'Marks device profile as default within a tenant scope.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: setDefaultDeviceProfile
parameters:
- name: deviceProfileId
in: path
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceProfile'
/api/device/credentials:
post:
tags:
- device-controller
summary: Update Device Credentials (updateDeviceCredentials)
description: "During device creation, platform generates random 'ACCESS_TOKEN' credentials. \" +\nUse this method to update the device credentials. First use 'getDeviceCredentialsByDeviceId' to get\
\ the credentials id and value.\nThen use current method to update the credentials type and value. It is not possible to create multiple device credentials for the same device.\nThe structure of\
\ device credentials id and value is simple for the 'ACCESS_TOKEN' but is much more complex for the 'MQTT_BASIC' or 'LWM2M_CREDENTIALS'.\nYou may find the example of device with different type of\
\ credentials below: \n\n- Credentials type: \"Access token\" with device ID and with device ID below: \n\n```json\n{\n \"id\": {\n \"id\":\"c886a090-168d-11ee-87c9-6f157dbc816a\"\
\n },\n \"deviceId\": {\n \"id\":\"c5fb3ac0-168d-11ee-87c9-6f157dbc816a\",\n \"entityType\":\"DEVICE\"\n },\n \"credentialsType\": \"ACCESS_TOKEN\",\n \"credentialsId\": \"6hmxew8pmmzng4e3une4\"\
\n}\n```\n\n- Credentials type: \"X509\" with device profile ID below: \n\nNote: credentialsId - format Sha3Hash, certificateValue - format PEM (with \"\
--BEGIN CERTIFICATE----\" and -\"----END CERTIFICATE-\").\n\n```json\n{\n \"id\": {\n \"id\":\"309bd9c0-14f4-11ee-9fc9-d9b7463abb63\"\n },\n \"deviceId\": {\n \"id\":\"3092b200-14f4-11ee-9fc9-d9b7463abb63\"\
,\n \"entityType\":\"DEVICE\"\n },\n \"credentialsType\": \"X509_CERTIFICATE\",\n \"credentialsId\": \"6b8adb49015500e51a527acd332b51684ab9b49b4ade03a9582a44c455e2e9b6\",\n \"credentialsValue\"\
: \"-----BEGIN CERTIFICATE----- MIICMTCCAdegAwIBAgIUUEKxS9hTz4l+oLUMF0LV6TC/gCIwCgYIKoZIzj0EAwIwbjELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMRowGAYDVQQKDBFUaGluZ3NCb2FyZCwgSW5jLjEwMC4GA1UEAwwnZGV2aWNlUHJvZmlsZUNlcnRAWDUwOVByb3Zpc2lvblN0cmF0ZWd5MB4XDTIzMDMyOTE0NTczNloXDTI0MDMyODE0NTczNlowbjELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMRowGAYDVQQKDBFUaGluZ3NCb2FyZCwgSW5jLjEwMC4GA1UEAwwnZGV2aWNlUHJvZmlsZUNlcnRAWDUwOVByb3Zpc2lvblN0cmF0ZWd5MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECMlWO72krDoUL9FQjUmSCetkhaEGJUfQkdSfkLSNa0GyAEIMbfmzI4zITeapunu4rGet3EMyLydQzuQanBicp6NTMFEwHQYDVR0OBBYEFHpZ78tPnztNii4Da/yCw6mhEIL3MB8GA1UdIwQYMBaAFHpZ78tPnztNii4Da/yCw6mhEIL3MA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIgJ7qyMFqNcwSYkH6o+UlQXzLWfwZbNjVk+aR7foAZNGsCIQDsd7v3WQIGHiArfZeDs1DLEDuV/2h6L+ZNoGNhEKL+1A==\
\ -----END CERTIFICATE-----\"\n}\n```\n\n- Credentials type: \"MQTT_BASIC\" with device profile ID below: \n\n```json\n{\n \"id\": {\n \"id\":\"d877ffb0-14f5-11ee-9fc9-d9b7463abb63\"\
\n },\n \"deviceId\": {\n \"id\":\"d875dcd0-14f5-11ee-9fc9-d9b7463abb63\",\n \"entityType\":\"DEVICE\"\n },\n \"credentialsType\": \"MQTT_BASIC\",\n \"credentialsValue\": \"{\\\"clientId\\\
\":\\\"juy03yv4owqxcmqhqtvk\\\",\\\"userName\\\":\\\"ov19fxca0cyjn7lm7w7u\\\",\\\"password\\\":\\\"twy94he114dfi9usyk1o\\\"}\"\n}\n```\n\n- You may find the example of LwM2M device and RPK\
\ credentials below: \n\nNote: LwM2M device - only existing device profile ID (Transport configuration -> Transport type: \"LWM2M\".\n\n```json\n{\n \"id\": {\n \"id\":\"e238d4d0-1689-11ee-98c6-1713c1be5a8e\"\
\n },\n \"deviceId\": {\n \"id\":\"e232e160-1689-11ee-98c6-1713c1be5a8e\",\n \"entityType\":\"DEVICE\"\n },\n \"credentialsType\": \"LWM2M_CREDENTIALS\",\n \"credentialsId\": \"LwRpk00000000\"\
,\n \"credentialsValue\":\n \"{\\\"client\\\":{ \\\"endpoint\\\":\\\"LwRpk00000000\\\", \\\"securityConfigClientMode\\\":\\\"RPK\\\", \\\"key\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEdvBZZ2vQRK9wgDhctj6B1c7bxR3Z0wYg1+YdoYFnVUKWb+rIfTTyYK9tmQJx5Vlb5fxdLnVv1RJOPiwsLIQbAA==\\\
\" }, \\\"bootstrap\\\":{ \\\"bootstrapServer\\\":{ \\\"securityMode\\\":\\\"RPK\\\", \\\"clientPublicKeyOrId\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUEBxNl/RcYJNm8mk91CyVXoIJiROYDlXcSSqK6e5bDHwOW4ZiN2lNnXalyF0Jxw8MbAytnDMERXyAja5VEMeVQ==\\\
\", \\\"clientSecretKey\\\":\\\"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgd9GAx7yZW37autew5KZykn4IgRpge/tZSjnudnZJnMahRANCAARQQHE2X9Fxgk2byaT3ULJVeggmJE5gOVdxJKorp7lsMfA5bhmI3aU2ddqXIXQnHDwxsDK2cMwRFfICNrlUQx5V\\\
\"}, \\\"lwm2mServer\\\":{ \\\"securityMode\\\":\\\"RPK\\\", \\\"clientPublicKeyOrId\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUEBxNl/RcYJNm8mk91CyVXoIJiROYDlXcSSqK6e5bDHwOW4ZiN2lNnXalyF0Jxw8MbAytnDMERXyAja5VEMeVQ==\\\
\", \\\"clientSecretKey\\\":\\\"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgd9GAx7yZW37autew5KZykn4IgRpge/tZSjnudnZJnMahRANCAARQQHE2X9Fxgk2byaT3ULJVeggmJE5gOVdxJKorp7lsMfA5bhmI3aU2ddqXIXQnHDwxsDK2cMwRFfICNrlUQx5V\\\
\"}} }\"\n}\n```\n\nUpdate to real value:\n - 'id' (this is id of Device Credentials -> \"Get Device Credentials (getDeviceCredentialsByDeviceId)\",\n - 'deviceId.id' (this is id of Device).\n\
Remove 'tenantId' and optionally 'customerId' from the request body example (below) to create new Device entity.\n\nAvailable for users with 'TENANT_ADMIN' authority."
operationId: updateDeviceCredentials
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceCredentials'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceCredentials'
/api/device/bulk_import:
post:
tags:
- device-controller
summary: Import the Bulk of Devices (processDevicesBulkImport)
description: 'There''s an ability to import the bulk of devices using the only .csv file.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: processDevicesBulkImport
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkImportRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/BulkImportResultDevice'
/api/device-with-credentials:
post:
tags:
- device-controller
summary: Create Device (saveDevice) with Credentials
description: "Create or update the Device. When creating device, platform generates Device Id as [time-based UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_1_(date-time_and_MAC_address)).\
\ Requires to provide the Device Credentials object as well as an existing device profile ID or use \"default\".\nYou may find the example of device with different type of credentials below: \n\n\
- Credentials type: \"Access token\" with device profile ID below: \n\n```json\n{\n \"device\": {\n \"name\":\"Name_DeviceWithCredantial_AccessToken\",\n \"label\":\"Label_DeviceWithCredantial_AccessToken\"\
,\n \"deviceProfileId\":{\n \"id\":\"9d9588c0-06c9-11ee-b618-19be30fdeb60\",\n \"entityType\":\"DEVICE_PROFILE\"\n }\n },\n \"credentials\": {\n \"credentialsType\": \"ACCESS_TOKEN\"\
,\n \"credentialsId\": \"6hmxew8pmmzng4e3une2\"\n }\n}\n```\n\n- Credentials type: \"Access token\" with device profile default below: \n\n```json\n{\n \"device\": {\n \"\
name\":\"Name_DeviceWithCredantial_AccessToken_Default\",\n \"label\":\"Label_DeviceWithCredantial_AccessToken_Default\",\n \"type\": \"default\"\n },\n \"credentials\": {\n \"credentialsType\"\
: \"ACCESS_TOKEN\",\n \"credentialsId\": \"6hmxew8pmmzng4e3une3\"\n }\n}\n```\n\n- Credentials type: \"X509\" with device profile ID below: \n\nNote: credentialsId - format\
\ Sha3Hash, certificateValue - format PEM (with \"--BEGIN CERTIFICATE----\" and -\"----END CERTIFICATE-\").\n\n```json\n{\n \"device\": {\n \"name\":\"Name_DeviceWithCredantial_X509_Certificate\"\
,\n \"label\":\"Label_DeviceWithCredantial_X509_Certificate\",\n \"deviceProfileId\":{\n \"id\":\"9d9588c0-06c9-11ee-b618-19be30fdeb60\",\n \"entityType\":\"DEVICE_PROFILE\"\n \
\ }\n },\n \"credentials\": {\n \"credentialsType\": \"X509_CERTIFICATE\",\n \"credentialsId\": \"84f5911765abba1f96bf4165604e9e90338fc6214081a8e623b6ff9669aedb27\",\n \"credentialsValue\"\
: \"-----BEGIN CERTIFICATE----- MIICMTCCAdegAwIBAgIUI9dBuwN6pTtK6uZ03rkiCwV4wEYwCgYIKoZIzj0EAwIwbjELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMRowGAYDVQQKDBFUaGluZ3NCb2FyZCwgSW5jLjEwMC4GA1UEAwwnZGV2aWNlQ2VydGlmaWNhdGVAWDUwOVByb3Zpc2lvblN0cmF0ZWd5MB4XDTIzMDMyOTE0NTYxN1oXDTI0MDMyODE0NTYxN1owbjELMAkGA1UEBhMCVVMxETAPBgNVBAgMCE5ldyBZb3JrMRowGAYDVQQKDBFUaGluZ3NCb2FyZCwgSW5jLjEwMC4GA1UEAwwnZGV2aWNlQ2VydGlmaWNhdGVAWDUwOVByb3Zpc2lvblN0cmF0ZWd5MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE9Zo791qKQiGNBm11r4ZGxh+w+ossZL3xc46ufq5QckQHP7zkD2XDAcmP5GvdkM1sBFN9AWaCkQfNnWmfERsOOKNTMFEwHQYDVR0OBBYEFFFc5uyCyglQoZiKhzXzMcQ3BKORMB8GA1UdIwQYMBaAFFFc5uyCyglQoZiKhzXzMcQ3BKORMA8GA1UdEwEB/wQFMAMBAf8wCgYIKoZIzj0EAwIDSAAwRQIhANbA9CuhoOifZMMmqkpuld+65CR+ItKdXeRAhLMZuccuAiB0FSQB34zMutXrZj1g8Gl5OkE7YryFHbei1z0SveHR8g==\
\ -----END CERTIFICATE-----\"\n }\n}\n```\n\n- Credentials type: \"MQTT_BASIC\" with device profile ID below: \n\n```json\n{\n \"device\": {\n \"name\":\"Name_DeviceWithCredantial_MQTT_Basic\"\
,\n \"label\":\"Label_DeviceWithCredantial_MQTT_Basic\",\n \"deviceProfileId\":{\n \"id\":\"9d9588c0-06c9-11ee-b618-19be30fdeb60\",\n \"entityType\":\"DEVICE_PROFILE\"\n }\n\
\ },\n \"credentials\": {\n \"credentialsType\": \"MQTT_BASIC\",\n \"credentialsValue\": \"{\\\"clientId\\\":\\\"5euh5nzm34bjjh1efmlt\\\",\\\"userName\\\":\\\"onasd1lgwasmjl7v2v7h\\\",\\\
\"password\\\":\\\"b9xtm4ny8kt9zewaga5o\\\"}\"\n }\n}\n```\n\n- You may find the example of LwM2M device and RPK credentials below: \n\nNote: LwM2M device - only existing device\
\ profile ID (Transport configuration -> Transport type: \"LWM2M\".\n\n```json\n{\n \"device\": {\n \"name\":\"Name_LwRpk00000000\",\n \"label\":\"Label_LwRpk00000000\",\n \"deviceProfileId\"\
:{\n \"id\":\"a660bd50-10ef-11ee-8737-b5634e73c779\",\n \"entityType\":\"DEVICE_PROFILE\"\n }\n },\n \"credentials\": {\n \"credentialsType\": \"LWM2M_CREDENTIALS\",\n \"\
credentialsId\": \"LwRpk00000000\",\n \"credentialsValue\":\n \"{\\\"client\\\":{ \\\"endpoint\\\":\\\"LwRpk00000000\\\", \\\"securityConfigClientMode\\\":\\\"RPK\\\", \\\"key\\\":\\\"\
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUEBxNl/RcYJNm8mk91CyVXoIJiROYDlXcSSqK6e5bDHwOW4ZiN2lNnXalyF0Jxw8MbAytnDMERXyAja5VEMeVQ==\\\" }, \\\"bootstrap\\\":{ \\\"bootstrapServer\\\":{ \\\"securityMode\\\
\":\\\"RPK\\\", \\\"clientPublicKeyOrId\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUEBxNl/RcYJNm8mk91CyVXoIJiROYDlXcSSqK6e5bDHwOW4ZiN2lNnXalyF0Jxw8MbAytnDMERXyAja5VEMeVQ==\\\", \\\"clientSecretKey\\\
\":\\\"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgd9GAx7yZW37autew5KZykn4IgRpge/tZSjnudnZJnMahRANCAARQQHE2X9Fxgk2byaT3ULJVeggmJE5gOVdxJKorp7lsMfA5bhmI3aU2ddqXIXQnHDwxsDK2cMwRFfICNrlUQx5V\\\"\
}, \\\"lwm2mServer\\\":{ \\\"securityMode\\\":\\\"RPK\\\", \\\"clientPublicKeyOrId\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUEBxNl/RcYJNm8mk91CyVXoIJiROYDlXcSSqK6e5bDHwOW4ZiN2lNnXalyF0Jxw8MbAytnDMERXyAja5VEMeVQ==\\\
\", \\\"clientSecretKey\\\":\\\"MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgd9GAx7yZW37autew5KZykn4IgRpge/tZSjnudnZJnMahRANCAARQQHE2X9Fxgk2byaT3ULJVeggmJE5gOVdxJKorp7lsMfA5bhmI3aU2ddqXIXQnHDwxsDK2cMwRFfICNrlUQx5V\\\
\"}} }\"\n }\n}\n```\n\nRemove 'id', 'tenantId' and optionally 'customerId' from the request body example (below) to create new Device entity. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER'\
\ authority."
operationId: saveDeviceWithCredentials_1
parameters:
- name: nameConflictPolicy
in: query
description: '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.'
required: false
schema:
type: string
default: FAIL
enum:
- FAIL
- UNIQUIFY
- name: uniquifySeparator
in: query
description: 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'.
required: false
schema:
type: string
default: _
- name: uniquifyStrategy
in: query
description: '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.'
required: false
schema:
type: string
default: RANDOM
enum:
- RANDOM
- INCREMENTAL
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SaveDeviceWithCredentialsRequest'
required: true
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
/api/customer/{customerId}/device/{deviceId}:
post:
tags:
- device-controller
summary: Assign Device to Customer (assignDeviceToCustomer)
description: 'Creates assignment of the device to customer. Customer will be able to query device afterwards.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: assignDeviceToCustomer
parameters:
- name: customerId
in: path
description: A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
/api/customer/public/device/{deviceId}:
post:
tags:
- device-controller
summary: Make Device Publicly Available (assignDeviceToPublicCustomer)
description: 'Device will be available for non-authorized (not logged-in) users. This is useful to create dashboards that you plan to share/embed on a publicly available website. However, users that
are logged-in and belong to different tenant will not be able to access the device.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: assignDeviceToPublicCustomer
parameters:
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
/api/customer/device/{deviceName}/claim:
post:
tags:
- device-controller
summary: Claim Device (claimDevice)
description: "Claiming makes it possible to assign a device to the specific customer using device/server side claiming data (in the form of secret key).To make this happen you have to provide unique\
\ device name and optional claiming data (it is needed only for device-side claiming).Once device is claimed, the customer becomes its owner and customer users may access device data as well as\
\ control the device. \nIn order to enable claiming devices feature a system parameter security.claim.allowClaimingByDefault should be set to true, otherwise a server-side claimingAllowed attribute\
\ with the value true is obligatory for provisioned devices. \nSee official documentation for more details regarding claiming.\n\nAvailable for users with 'CUSTOMER_USER' authority."
operationId: claimDevice
parameters:
- name: deviceName
in: path
description: Unique name of the device which is going to be claimed
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ClaimRequest'
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
delete:
tags:
- device-controller
summary: Reclaim Device (reClaimDevice)
description: 'Reclaiming means the device will be unassigned from the customer and the device will be available for claiming again.
Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.'
operationId: reClaimDevice
parameters:
- name: deviceName
in: path
description: Unique name of the device which is going to be reclaimed
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
/api/tenant/devices:
get:
tags:
- device-controller
summary: Get Tenant Device (getTenantDevice)
description: 'Requested device must be owned by tenant that the user belongs to. Device name is an unique property of device. So it can be used to identify the device.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: getTenantDevices
parameters:
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: type
in: query
description: Device type as the name of the device profile
required: false
schema:
type: string
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the device name.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- name
- deviceProfileName
- label
- customerTitle
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
- name: deviceName
in: query
description: A string value representing the Device name.
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/Device'
- $ref: '#/components/schemas/PageDataDevice'
/api/tenant/deviceInfos:
get:
tags:
- device-controller
summary: Get Tenant Device Infos (getTenantDeviceInfos)
description: "Returns a page of devices info objects owned by tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result\
\ set using pagination. See response schema for more details. Device Info is an extension of the default Device object that contains information about the assigned customer name and device profile\
\ name. \n\nAvailable for users with 'TENANT_ADMIN' authority."
operationId: getTenantDeviceInfos
parameters:
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: type
in: query
description: Device type as the name of the device profile
required: false
schema:
type: string
- name: deviceProfileId
in: query
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: false
schema:
type: string
- name: active
in: query
description: A boolean value representing the device active flag.
required: false
schema:
type: boolean
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the device name.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- name
- deviceProfileName
- label
- customerTitle
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageDataDeviceInfo'
/api/otaPackages:
get:
tags:
- ota-package-controller
summary: Get OTA Package Infos (getOtaPackages)
description: "Returns a page of OTA Package Info objects owned by tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over\
\ result set using pagination. See response schema for more details. OTA Package Info is a lightweight object that includes main information about the OTA Package excluding the heavyweight data.\
\ \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getOtaPackages
parameters:
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the ota package title.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- type
- title
- version
- tag
- url
- fileName
- dataSize
- checksum
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageDataOtaPackageInfo'
/api/otaPackages/{deviceProfileId}/{type}:
get:
tags:
- ota-package-controller
summary: Get OTA Package Infos (getOtaPackages)
description: "Returns a page of OTA Package Info objects owned by tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over\
\ result set using pagination. See response schema for more details. OTA Package Info is a lightweight object that includes main information about the OTA Package excluding the heavyweight data.\
\ \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getOtaPackages_1
parameters:
- name: deviceProfileId
in: path
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: type
in: path
description: OTA Package type.
required: true
schema:
type: string
enum:
- FIRMWARE
- SOFTWARE
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the ota package title.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- type
- title
- version
- tag
- url
- fileName
- dataSize
- checksum
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageDataOtaPackageInfo'
/api/otaPackage/{otaPackageId}/download:
get:
tags:
- ota-package-controller
summary: Download OTA Package (downloadOtaPackage)
description: 'Download OTA Package based on the provided OTA Package Id.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: downloadOtaPackage
parameters:
- name: otaPackageId
in: path
description: A string value representing the ota package id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
format: binary
/api/otaPackage/info/{otaPackageId}:
get:
tags:
- ota-package-controller
summary: Get OTA Package Info (getOtaPackageInfoById)
description: "Fetch the OTA Package Info object based on the provided OTA Package Id. OTA Package Info is a lightweight object that includes main information about the OTA Package excluding the heavyweight\
\ data. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getOtaPackageInfoById
parameters:
- name: otaPackageId
in: path
description: A string value representing the ota package id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/OtaPackageInfo'
/api/edge/{edgeId}/devices:
get:
tags:
- device-controller
summary: Get Devices Assigned to Edge (getEdgeDevices)
description: "Returns a page of devices assigned to edge. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result set using\
\ pagination. See response schema for more details. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getEdgeDevices
parameters:
- name: edgeId
in: path
description: A string value representing the edge id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: type
in: query
description: Device type as the name of the device profile
required: false
schema:
type: string
- name: deviceProfileId
in: query
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: false
schema:
type: string
- name: active
in: query
description: A boolean value representing the device active flag.
required: false
schema:
type: boolean
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the device name.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- name
- deviceProfileName
- label
- customerTitle
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
- name: startTime
in: query
description: Timestamp. Devices with creation time before it won't be queried
required: false
schema:
type: integer
format: int64
- name: endTime
in: query
description: Timestamp. Devices with creation time after it won't be queried
required: false
schema:
type: integer
format: int64
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageDataDeviceInfo'
/api/devices/count/{otaPackageType}/{deviceProfileId}:
get:
tags:
- device-controller
summary: Count Devices by Device Profile (countByDeviceProfileAndEmptyOtaPackage)
description: 'The platform gives an ability to load OTA (over-the-air) packages to devices. It can be done in two different ways: device scope or device profile scope.In the response you will find
the number of devices with specified device profile, but without previously defined device scope OTA package. It can be useful when you want to define number of devices that will be affected with
future OTA package
Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.'
operationId: countByDeviceProfileAndEmptyOtaPackage
parameters:
- name: otaPackageType
in: path
description: OTA package type
required: true
schema:
type: string
enum:
- FIRMWARE
- SOFTWARE
- name: deviceProfileId
in: path
description: Device Profile Id. I.g. '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: integer
format: int64
/api/deviceProfiles:
get:
tags:
- device-profile-controller
summary: Get Device Profiles (getDeviceProfiles)
description: "Returns a page of devices profile objects owned by tenant. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over\
\ result set using pagination. See response schema for more details. \n\nAvailable for users with 'TENANT_ADMIN' authority."
operationId: getDeviceProfiles
parameters:
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the device profile name.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- name
- type
- transportType
- description
- isDefault
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageDataDeviceProfile'
/api/deviceProfileInfos:
get:
tags:
- device-profile-controller
summary: Get Device Profile Infos by Ids (getDeviceProfilesByIds)
description: "Requested device profiles must be owned by tenant which is performing the request. \n\n"
operationId: getDeviceProfileInfos
parameters:
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the device profile name.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- name
- type
- transportType
- description
- isDefault
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
- name: transportType
in: query
description: Type of the transport
required: false
schema:
type: string
enum:
- DEFAULT
- MQTT
- COAP
- LWM2M
- SNMP
- name: deviceProfileIds
in: query
description: A list of device profile ids, separated by comma ','
required: true
schema:
type: array
items:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
oneOf:
- type: array
items:
$ref: '#/components/schemas/DeviceProfileInfo'
- $ref: '#/components/schemas/PageDataDeviceProfileInfo'
/api/deviceProfileInfo/{deviceProfileId}:
get:
tags:
- device-profile-controller
summary: Get Device Profile Info (getDeviceProfileInfoById)
description: "Fetch the Device Profile Info object based on the provided Device Profile Id. Device Profile Info is a lightweight object that includes main information about Device Profile excluding\
\ the heavyweight configuration object. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getDeviceProfileInfoById
parameters:
- name: deviceProfileId
in: path
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceProfileInfo'
/api/deviceProfileInfo/default:
get:
tags:
- device-profile-controller
summary: Get Default Device Profile (getDefaultDeviceProfileInfo)
description: "Fetch the Default Device Profile Info object. Device Profile Info is a lightweight object that includes main information about Device Profile excluding the heavyweight configuration\
\ object. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getDefaultDeviceProfileInfo
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceProfileInfo'
/api/deviceProfile/{deviceProfileId}:
get:
tags:
- device-profile-controller
summary: Get Device Profile (getDeviceProfileById)
description: "Fetch the Device Profile object based on the provided Device Profile Id. The server checks that the device profile is owned by the same tenant. \n\nAvailable for users with 'TENANT_ADMIN'\
\ authority."
operationId: getDeviceProfileById
parameters:
- name: deviceProfileId
in: path
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: inlineImages
in: query
description: Inline images as a data URL (Base64)
required: false
schema:
type: boolean
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceProfile'
delete:
tags:
- device-profile-controller
summary: Delete Device Profile (deleteDeviceProfile)
description: 'Deletes the device profile. Referencing non-existing device profile Id will cause an error. Can''t delete the device profile if it is referenced by existing devices.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: deleteDeviceProfile
parameters:
- name: deviceProfileId
in: path
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
/api/deviceProfile/names:
get:
tags:
- device-profile-controller
summary: Get Device Profile Names (getDeviceProfileNames)
description: 'Returns a set of unique device profile names owned by the tenant.
Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.'
operationId: getDeviceProfileNames
parameters:
- name: activeOnly
in: query
description: Flag indicating whether to retrieve exclusively the names of device profiles that are referenced by tenant's devices.
required: false
schema:
type: boolean
default: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EntityInfo'
/api/deviceProfile/devices/keys/timeseries:
get:
tags:
- device-profile-controller
summary: Get Time Series Keys (getTimeseriesKeys)
description: "Get a set of unique time series keys used by devices that belong to specified profile. If profile is not set returns a list of unique keys among all profiles. The call is used for auto-complete\
\ in the UI forms. The implementation limits the number of devices that participate in search to 100 as a trade of between accurate results and time-consuming queries. \n\nAvailable for users with\
\ 'TENANT_ADMIN' authority."
operationId: getTimeseriesKeys_1
parameters:
- name: deviceProfileId
in: query
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: string
/api/deviceProfile/devices/keys/attributes:
get:
tags:
- device-profile-controller
summary: Get Attribute Keys (getAttributesKeys)
description: "Get a set of unique attribute keys used by devices that belong to specified profile. If profile is not set returns a list of unique keys among all profiles. The call is used for auto-complete\
\ in the UI forms. The implementation limits the number of devices that participate in search to 100 as a trade of between accurate results and time-consuming queries. \n\nAvailable for users with\
\ 'TENANT_ADMIN' authority."
operationId: getAttributesKeys
parameters:
- name: deviceProfileId
in: query
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: false
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
type: string
/api/device/{deviceId}:
get:
tags:
- device-controller
summary: Get Device (getDeviceById)
description: 'Fetch the Device object based on the provided Device Id. If the user has the authority of ''TENANT_ADMIN'', the server checks that the device is owned by the same tenant. If the user
has the authority of ''CUSTOMER_USER'', the server checks that the device is assigned to the same customer.
Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.'
operationId: getDeviceById
parameters:
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
delete:
tags:
- device-controller
summary: Delete Device (deleteDevice)
description: 'Deletes the device, it''s credentials and all the relations (from and to the device). Referencing non-existing device Id will cause an error.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: deleteDevice
parameters:
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
/api/device/{deviceId}/credentials:
get:
tags:
- device-controller
summary: Get Device Credentials (getDeviceCredentialsByDeviceId)
description: 'If during device creation there wasn''t specified any credentials, platform generates random ''ACCESS_TOKEN'' credentials.
Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.'
operationId: getDeviceCredentialsByDeviceId
parameters:
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceCredentials'
/api/device/types:
get:
tags:
- device-controller
summary: Get Device Types (getDeviceTypes)
description: 'Deprecated. See ''getDeviceProfileNames'' API from Device Profile Controller instead.
Available for users with ''TENANT_ADMIN'' or ''CUSTOMER_USER'' authority.'
operationId: getDeviceTypes
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EntitySubtype'
deprecated: true
/api/device/info/{deviceId}:
get:
tags:
- device-controller
summary: Get Device Info (getDeviceInfoById)
description: "Fetch the Device Info object based on the provided Device Id. If the user has the authority of 'Tenant Administrator', the server checks that the device is owned by the same tenant.\
\ If the user has the authority of 'Customer User', the server checks that the device is assigned to the same customer. Device Info is an extension of the default Device object that contains information\
\ about the assigned customer name and device profile name. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getDeviceInfoById
parameters:
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/DeviceInfo'
/api/device-connectivity/{protocol}/certificate/download:
get:
tags:
- device-connectivity-controller
summary: Download Server Certificate Using File Path Defined in Device.connectivity Properties (downloadServerCertificate)
description: Download server certificate.
operationId: downloadServerCertificate
parameters:
- name: protocol
in: path
description: 'A string value representing the device connectivity protocol. Possible values: ''mqtt'', ''mqtts'', ''http'', ''https'', ''coap'', ''coaps'''
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
format: binary
/api/device-connectivity/{deviceId}:
get:
tags:
- device-connectivity-controller
summary: Get Commands to Publish Device Telemetry (getDevicePublishTelemetryCommands)
description: "Fetch the list of commands to publish device telemetry based on device profile If the user has the authority of 'Tenant Administrator', the server checks that the device is owned by\
\ the same tenant. If the user has the authority of 'Customer User', the server checks that the device is assigned to the same customer. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER'\
\ authority."
operationId: getDevicePublishTelemetryCommands
parameters:
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
examples:
http:
description: http
value: curl -v -X POST http://localhost:8080/api/v1/0ySs4FTOn5WU15XLmal8/telemetry --header Content-Type:application/json --data {temperature:25}
mqtt:
description: mqtt
value: mosquitto_pub -d -q 1 -h localhost -t v1/devices/me/telemetry -i myClient1 -u myUsername1 -P myPassword -m {temperature:25}
coap:
description: coap
value: coap-client -m POST coap://localhost:5683/api/v1/0ySs4FTOn5WU15XLmal8/telemetry -t json -e {temperature:25}
/api/device-connectivity/gateway-launch/{deviceId}/docker-compose/download:
get:
tags:
- device-connectivity-controller
summary: Download Generated Docker-compose.yml File for Gateway (downloadGatewayDockerCompose)
description: Download generated docker-compose.yml for gateway.
operationId: downloadGatewayDockerCompose
parameters:
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
type: string
format: binary
/api/customer/{customerId}/devices:
get:
tags:
- device-controller
summary: Get Customer Devices (getCustomerDevices)
description: "Returns a page of devices objects assigned to customer. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over result\
\ set using pagination. See response schema for more details. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getCustomerDevices
parameters:
- name: customerId
in: path
description: A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: type
in: query
description: Device type as the name of the device profile
required: false
schema:
type: string
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the device name.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- name
- deviceProfileName
- label
- customerTitle
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageDataDevice'
/api/customer/{customerId}/deviceInfos:
get:
tags:
- device-controller
summary: Get Customer Device Infos (getCustomerDeviceInfos)
description: "Returns a page of devices info objects assigned to customer. You can specify parameters to filter the results. The result is wrapped with PageData object that allows you to iterate over\
\ result set using pagination. See response schema for more details. Device Info is an extension of the default Device object that contains information about the assigned customer name and device\
\ profile name. \n\nAvailable for users with 'TENANT_ADMIN' or 'CUSTOMER_USER' authority."
operationId: getCustomerDeviceInfos
parameters:
- name: customerId
in: path
description: A string value representing the customer id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
- name: pageSize
in: query
description: Maximum amount of entities in a one page
required: true
schema:
type: integer
format: int32
- name: page
in: query
description: Sequence number of page starting from 0
required: true
schema:
type: integer
format: int32
- name: type
in: query
description: Device type as the name of the device profile
required: false
schema:
type: string
- name: deviceProfileId
in: query
description: A string value representing the device profile id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: false
schema:
type: string
- name: active
in: query
description: A boolean value representing the device active flag.
required: false
schema:
type: boolean
- name: textSearch
in: query
description: The case insensitive 'substring' filter based on the device name.
required: false
schema:
type: string
- name: sortProperty
in: query
description: Property of entity to sort by
required: false
schema:
type: string
enum:
- createdTime
- name
- deviceProfileName
- label
- customerTitle
- name: sortOrder
in: query
description: Sort order. ASC (ASCENDING) or DESC (DESCENDING)
required: false
schema:
type: string
enum:
- ASC
- DESC
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/PageDataDeviceInfo'
/api/customer/device/{deviceId}:
delete:
tags:
- device-controller
summary: Unassign Device from Customer (unassignDeviceFromCustomer)
description: 'Clears assignment of the device to customer. Customer will not be able to query device afterwards.
Available for users with ''TENANT_ADMIN'' authority.'
operationId: unassignDeviceFromCustomer
parameters:
- name: deviceId
in: path
description: A string value representing the device id. For example, '784f394c-42b6-435a-983c-b7beff2784f9'
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Device'
components:
schemas:
AlarmCondition:
type: object
properties:
condition:
type: array
description: JSON array of alarm condition filters
items:
$ref: '#/components/schemas/AlarmConditionFilter'
spec:
description: JSON object representing alarm condition type
oneOf:
- $ref: '#/components/schemas/DurationAlarmConditionSpec'
- $ref: '#/components/schemas/RepeatingAlarmConditionSpec'
- $ref: '#/components/schemas/SimpleAlarmConditionSpec'
AlarmConditionFilter:
type: object
properties:
key:
$ref: '#/components/schemas/AlarmConditionFilterKey'
description: JSON object for specifying alarm condition by specific key
valueType:
type: string
description: String representation of the type of the value
enum:
- STRING
- NUMERIC
- BOOLEAN
- DATE_TIME
example: NUMERIC
value:
description: Value used in Constant comparison. For other types, such as TIME_SERIES or ATTRIBUTE, the predicate condition is used
predicate:
description: JSON object representing filter condition
oneOf:
- $ref: '#/components/schemas/BooleanFilterPredicate'
- $ref: '#/components/schemas/ComplexFilterPredicate'
- $ref: '#/components/schemas/NumericFilterPredicate'
- $ref: '#/components/schemas/StringFilterPredicate'
AlarmConditionFilterKey:
type: object
properties:
type:
type: string
description: The key type
enum:
- ATTRIBUTE
- TIME_SERIES
- ENTITY_FIELD
- CONSTANT
example: TIME_SERIES
key:
type: string
description: String value representing the key
example: temp
AlarmConditionSpec:
discriminator:
propertyName: type
properties:
type:
type: string
required:
- type
AlarmRule:
type: object
properties:
condition:
$ref: '#/components/schemas/AlarmCondition'
description: JSON object representing the alarm rule condition
schedule:
description: JSON object representing time interval during which the rule is active
oneOf:
- $ref: '#/components/schemas/AnyTimeSchedule'
- $ref: '#/components/schemas/CustomTimeSchedule'
- $ref: '#/components/schemas/SpecificTimeSchedule'
alarmDetails:
type: string
description: String value representing the additional details for an alarm rule
dashboardId:
$ref: '#/components/schemas/DashboardId'
description: JSON object with the dashboard Id representing the reference to alarm details dashboard used by mobile application
AlarmSchedule:
type: object
discriminator:
propertyName: type
properties:
type:
type: string
enum:
- ANY_TIME
- SPECIFIC_TIME
- CUSTOM
dynamicValue:
$ref: '#/components/schemas/DynamicValueString'
AllowCreateNewDevicesDeviceProfileProvisionConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileProvisionConfiguration'
AnyTimeSchedule:
allOf:
- $ref: '#/components/schemas/AlarmSchedule'
BooleanFilterPredicate:
allOf:
- $ref: '#/components/schemas/KeyFilterPredicate'
- type: object
properties:
operation:
type: string
enum:
- EQUAL
- NOT_EQUAL
value:
$ref: '#/components/schemas/FilterPredicateValueBoolean'
BulkImportRequest:
type: object
properties:
file:
type: string
mapping:
$ref: '#/components/schemas/Mapping'
BulkImportResultDevice:
type: object
properties:
created:
type: object
properties:
opaque:
type: integer
format: int32
acquire:
type: integer
format: int32
release:
type: integer
format: int32
writeOnly: true
andIncrement:
type: integer
format: int32
andDecrement:
type: integer
format: int32
plain:
type: integer
format: int32
updated:
type: object
properties:
opaque:
type: integer
format: int32
acquire:
type: integer
format: int32
release:
type: integer
format: int32
writeOnly: true
andIncrement:
type: integer
format: int32
andDecrement:
type: integer
format: int32
plain:
type: integer
format: int32
errors:
type: object
properties:
opaque:
type: integer
format: int32
acquire:
type: integer
format: int32
release:
type: integer
format: int32
writeOnly: true
andIncrement:
type: integer
format: int32
andDecrement:
type: integer
format: int32
plain:
type: integer
format: int32
errorsList:
type: array
items:
type: string
CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileProvisionConfiguration'
ClaimRequest:
type: object
description: Claiming request which can optionally contain secret key
properties:
secretKey:
type: string
ClientAttributesQueryingSnmpCommunicationConfig:
allOf:
- $ref: '#/components/schemas/SnmpCommunicationConfig'
- type: object
properties:
mappings:
type: array
items:
$ref: '#/components/schemas/SnmpMapping'
queryingFrequencyMs:
type: integer
format: int64
CoapDeviceProfileTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileTransportConfiguration'
- type: object
properties:
coapDeviceTypeConfiguration:
oneOf:
- $ref: '#/components/schemas/DefaultCoapDeviceTypeConfiguration'
- $ref: '#/components/schemas/EfentoCoapDeviceTypeConfiguration'
clientSettings:
$ref: '#/components/schemas/PowerSavingConfiguration'
CoapDeviceTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceTransportConfiguration'
- type: object
properties:
powerMode:
type: string
enum:
- PSM
- DRX
- E_DRX
psmActivityTimer:
type: integer
format: int64
edrxCycle:
type: integer
format: int64
pagingTransmissionWindow:
type: integer
format: int64
CoapDeviceTypeConfiguration:
discriminator:
propertyName: coapDeviceType
properties:
coapDeviceType:
type: string
required:
- coapDeviceType
ColumnMapping:
type: object
properties:
type:
type: string
enum:
- NAME
- TYPE
- LABEL
- SHARED_ATTRIBUTE
- SERVER_ATTRIBUTE
- TIMESERIES
- ACCESS_TOKEN
- X509
- MQTT_CLIENT_ID
- MQTT_USER_NAME
- MQTT_PASSWORD
- LWM2M_CLIENT_ENDPOINT
- LWM2M_CLIENT_SECURITY_CONFIG_MODE
- LWM2M_CLIENT_IDENTITY
- LWM2M_CLIENT_KEY
- LWM2M_CLIENT_CERT
- LWM2M_BOOTSTRAP_SERVER_SECURITY_MODE
- LWM2M_BOOTSTRAP_SERVER_PUBLIC_KEY_OR_ID
- LWM2M_BOOTSTRAP_SERVER_SECRET_KEY
- LWM2M_SERVER_SECURITY_MODE
- LWM2M_SERVER_CLIENT_PUBLIC_KEY_OR_ID
- LWM2M_SERVER_CLIENT_SECRET_KEY
- SNMP_HOST
- SNMP_PORT
- SNMP_VERSION
- SNMP_COMMUNITY_STRING
- IS_GATEWAY
- DESCRIPTION
- ROUTING_KEY
- SECRET
key:
type: string
ComplexFilterPredicate:
allOf:
- $ref: '#/components/schemas/KeyFilterPredicate'
- type: object
properties:
operation:
type: string
enum:
- AND
- OR
predicates:
type: array
items: {}
- type: object
properties:
operation:
type: string
enum:
- AND
- OR
predicates:
type: array
items:
oneOf:
- $ref: '#/components/schemas/BooleanFilterPredicate'
- $ref: '#/components/schemas/ComplexFilterPredicate'
- $ref: '#/components/schemas/NumericFilterPredicate'
- $ref: '#/components/schemas/StringFilterPredicate'
CustomTimeSchedule:
allOf:
- $ref: '#/components/schemas/AlarmSchedule'
- type: object
properties:
timezone:
type: string
items:
type: array
items:
$ref: '#/components/schemas/CustomTimeScheduleItem'
CustomTimeScheduleItem:
type: object
properties:
enabled:
type: boolean
dayOfWeek:
type: integer
format: int32
startsOn:
type: integer
format: int64
endsOn:
type: integer
format: int64
CustomerId:
type: object
properties:
id:
type: string
format: uuid
description: ID of the entity, time-based UUID v1
example: 784f394c-42b6-435a-983c-b7beff2784f9
entityType:
type: string
description: string
enum:
- CUSTOMER
example: CUSTOMER
required:
- entityType
- id
DashboardId:
type: object
properties:
id:
type: string
format: uuid
description: ID of the entity, time-based UUID v1
example: 784f394c-42b6-435a-983c-b7beff2784f9
entityType:
type: string
description: string
enum:
- DASHBOARD
example: DASHBOARD
required:
- entityType
- id
DefaultCoapDeviceTypeConfiguration:
allOf:
- $ref: '#/components/schemas/CoapDeviceTypeConfiguration'
- type: object
properties:
transportPayloadTypeConfiguration:
oneOf:
- $ref: '#/components/schemas/JsonTransportPayloadConfiguration'
- $ref: '#/components/schemas/ProtoTransportPayloadConfiguration'
DefaultDeviceConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceConfiguration'
DefaultDeviceProfileConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileConfiguration'
DefaultDeviceProfileTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileTransportConfiguration'
DefaultDeviceTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceTransportConfiguration'
Device:
type: object
properties:
id:
$ref: '#/components/schemas/DeviceId'
description: JSON object with the Device Id. Specify this field to update the Device. Referencing non-existing Device Id will cause error. Omit this field to create new Device.
createdTime:
type: integer
format: int64
description: Timestamp of the device creation, in milliseconds
example: 1609459200000
readOnly: true
tenantId:
$ref: '#/components/schemas/TenantId'
description: JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.
readOnly: true
customerId:
$ref: '#/components/schemas/CustomerId'
description: JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.
readOnly: true
name:
type: string
description: Unique Device Name in scope of Tenant
example: A4B72CCDFF33
type:
type: string
description: Device Profile Name
example: Temperature Sensor
label:
type: string
description: Label that may be used in widgets
example: Room 234 Sensor
deviceProfileId:
$ref: '#/components/schemas/DeviceProfileId'
description: JSON object with Device Profile Id.
firmwareId:
$ref: '#/components/schemas/OtaPackageId'
description: JSON object with Ota Package Id.
softwareId:
$ref: '#/components/schemas/OtaPackageId'
description: JSON object with Ota Package Id.
version:
type: integer
format: int64
additionalInfo:
$ref: '#/components/schemas/JsonNode'
description: Additional parameters of the device
deviceData:
$ref: '#/components/schemas/DeviceData'
description: JSON object with content specific to type of transport in the device profile.
required:
- deviceProfileId
- name
DeviceConfiguration:
discriminator:
propertyName: type
properties:
type:
type: string
required:
- type
DeviceCredentials:
type: object
description: A JSON value representing the device credentials.
properties:
id:
$ref: '#/components/schemas/DeviceCredentialsId'
description: 'The Id is automatically generated during device creation. Use ''getDeviceCredentialsByDeviceId'' to obtain the id based on device id. Use ''updateDeviceCredentials'' to update device
credentials. '
example: 784f394c-42b6-435a-983c-b7beff2784f9
readOnly: true
createdTime:
type: integer
format: int64
description: Timestamp of the device credentials creation, in milliseconds
example: 1609459200000
deviceId:
$ref: '#/components/schemas/DeviceId'
description: JSON object with the device Id.
credentialsType:
type: string
description: Type of the credentials
enum:
- ACCESS_TOKEN
- X509_CERTIFICATE
- MQTT_BASIC
- LWM2M_CREDENTIALS
credentialsId:
type: string
description: Unique Credentials Id per platform instance. Used to lookup credentials from the database. By default, new access token for your device. Depends on the type of the credentials.
example: Access token or other value that depends on the credentials type
credentialsValue:
type: string
description: Value of the credentials. Null in case of ACCESS_TOKEN credentials type. Base64 value in case of X509_CERTIFICATE. Complex object in case of MQTT_BASIC and LWM2M_CREDENTIALS
example: Null in case of ACCESS_TOKEN. See model definition.
version:
type: integer
format: int64
required:
- credentialsId
- deviceId
- id
DeviceCredentialsId:
type: object
properties:
id:
type: string
format: uuid
description: string
example: 784f394c-42b6-435a-983c-b7beff2784f9
required:
- id
DeviceData:
type: object
properties:
configuration:
description: Device configuration for device profile type. DEFAULT is only supported value for now
oneOf:
- $ref: '#/components/schemas/DefaultDeviceConfiguration'
transportConfiguration:
description: Device transport configuration used to connect the device
oneOf:
- $ref: '#/components/schemas/CoapDeviceTransportConfiguration'
- $ref: '#/components/schemas/DefaultDeviceTransportConfiguration'
- $ref: '#/components/schemas/Lwm2mDeviceTransportConfiguration'
- $ref: '#/components/schemas/MqttDeviceTransportConfiguration'
- $ref: '#/components/schemas/SnmpDeviceTransportConfiguration'
DeviceId:
type: object
properties:
id:
type: string
format: uuid
description: ID of the entity, time-based UUID v1
example: 784f394c-42b6-435a-983c-b7beff2784f9
entityType:
type: string
description: string
enum:
- DEVICE
example: DEVICE
required:
- entityType
- id
DeviceInfo:
type: object
properties:
id:
$ref: '#/components/schemas/DeviceId'
description: JSON object with the Device Id. Specify this field to update the Device. Referencing non-existing Device Id will cause error. Omit this field to create new Device.
createdTime:
type: integer
format: int64
description: Timestamp of the device creation, in milliseconds
example: 1609459200000
readOnly: true
tenantId:
$ref: '#/components/schemas/TenantId'
description: JSON object with Tenant Id. Use 'assignDeviceToTenant' to change the Tenant Id.
readOnly: true
customerId:
$ref: '#/components/schemas/CustomerId'
description: JSON object with Customer Id. Use 'assignDeviceToCustomer' to change the Customer Id.
readOnly: true
name:
type: string
description: Unique Device Name in scope of Tenant
example: A4B72CCDFF33
type:
type: string
description: Device Profile Name
example: Temperature Sensor
label:
type: string
description: Label that may be used in widgets
example: Room 234 Sensor
deviceProfileId:
$ref: '#/components/schemas/DeviceProfileId'
description: JSON object with Device Profile Id.
firmwareId:
$ref: '#/components/schemas/OtaPackageId'
description: JSON object with Ota Package Id.
softwareId:
$ref: '#/components/schemas/OtaPackageId'
description: JSON object with Ota Package Id.
version:
type: integer
format: int64
customerTitle:
type: string
description: Title of the Customer that owns the device.
readOnly: true
customerIsPublic:
type: boolean
description: Indicates special 'Public' Customer that is auto-generated to use the devices on public dashboards.
readOnly: true
deviceProfileName:
type: string
description: Name of the corresponding Device Profile.
readOnly: true
active:
type: boolean
description: Device active flag.
readOnly: true
additionalInfo:
$ref: '#/components/schemas/JsonNode'
description: Additional parameters of the device
deviceData:
$ref: '#/components/schemas/DeviceData'
description: JSON object with content specific to type of transport in the device profile.
required:
- deviceProfileId
- name
DeviceProfile:
type: object
description: A JSON value representing the device profile.
properties:
id:
$ref: '#/components/schemas/DeviceProfileId'
description: JSON object with the device profile Id. Specify this field to update the device profile. Referencing non-existing device profile Id will cause error. Omit this field to create new
device profile.
createdTime:
type: integer
format: int64
description: Timestamp of the profile creation, in milliseconds
example: 1609459200000
readOnly: true
tenantId:
$ref: '#/components/schemas/TenantId'
description: JSON object with Tenant Id that owns the profile.
readOnly: true
name:
type: string
description: Unique Device Profile Name in scope of Tenant.
example: Moisture Sensor
description:
type: string
description: 'Device Profile description. '
image:
type: string
description: 'Either URL or Base64 data of the icon. Used in the mobile application to visualize set of device profiles in the grid view. '
type:
type: string
description: Type of the profile. Always 'DEFAULT' for now. Reserved for future use.
enum:
- DEFAULT
transportType:
type: string
description: Type of the transport used to connect the device. Default transport supports HTTP, CoAP and MQTT.
enum:
- DEFAULT
- MQTT
- COAP
- LWM2M
- SNMP
provisionType:
type: string
description: Provisioning strategy.
enum:
- DISABLED
- ALLOW_CREATE_NEW_DEVICES
- CHECK_PRE_PROVISIONED_DEVICES
- X509_CERTIFICATE_CHAIN
defaultRuleChainId:
$ref: '#/components/schemas/RuleChainId'
description: Reference to the rule chain. If present, the specified rule chain will be used to process all messages related to device, including telemetry, attribute updates, etc. Otherwise, the
root rule chain will be used to process those messages.
defaultDashboardId:
$ref: '#/components/schemas/DashboardId'
description: Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to device details.
defaultQueueName:
type: string
description: Rule engine queue name. If present, the specified queue will be used to store all unprocessed messages related to device, including telemetry, attribute updates, etc. Otherwise, the
'Main' queue will be used to store those messages.
provisionDeviceKey:
type: string
description: Unique provisioning key used by 'Device Provisioning' feature.
firmwareId:
$ref: '#/components/schemas/OtaPackageId'
description: 'Reference to the firmware OTA package. If present, the specified package will be used as default device firmware. '
softwareId:
$ref: '#/components/schemas/OtaPackageId'
description: 'Reference to the software OTA package. If present, the specified package will be used as default device software. '
defaultEdgeRuleChainId:
$ref: '#/components/schemas/RuleChainId'
description: Reference to the edge rule chain. If present, the specified edge rule chain will be used on the edge to process all messages related to device, including telemetry, attribute updates,
etc. Otherwise, the edge root rule chain will be used to process those messages.
version:
type: integer
format: int64
default:
type: boolean
description: Used to mark the default profile. Default profile is used when the device profile is not specified during device creation.
profileData:
$ref: '#/components/schemas/DeviceProfileData'
description: Complex JSON object that includes addition device profile configuration (transport, alarm rules, etc).
DeviceProfileAlarm:
type: object
properties:
id:
type: string
description: String value representing the alarm rule id
example: highTemperatureAlarmID
alarmType:
type: string
description: String value representing type of the alarm
example: High Temperature Alarm
createRules:
type: object
additionalProperties:
$ref: '#/components/schemas/AlarmRule'
description: Complex JSON object representing create alarm rules. The unique create alarm rule can be created for each alarm severity type. There can be 5 create alarm rules configured per a single
alarm type. See method implementation notes and AlarmRule model for more details
clearRule:
$ref: '#/components/schemas/AlarmRule'
description: JSON object representing clear alarm rule
propagate:
type: boolean
description: Propagation flag to specify if alarm should be propagated to parent entities of alarm originator
example: true
propagateToOwner:
type: boolean
description: Propagation flag to specify if alarm should be propagated to the owner (tenant or customer) of alarm originator
example: true
propagateToTenant:
type: boolean
description: Propagation flag to specify if alarm should be propagated to the tenant entity
example: true
propagateRelationTypes:
type: array
description: JSON array of relation types that should be used for propagation. By default, 'propagateRelationTypes' array is empty which means that the alarm will be propagated based on any relation
type to parent entities. This parameter should be used only in case when 'propagate' parameter is set to true, otherwise, 'propagateRelationTypes' array will be ignored.
items:
type: string
DeviceProfileConfiguration:
discriminator:
propertyName: type
properties:
type:
type: string
required:
- type
DeviceProfileData:
type: object
properties:
configuration:
description: JSON object of device profile configuration
oneOf:
- $ref: '#/components/schemas/DefaultDeviceProfileConfiguration'
transportConfiguration:
description: JSON object of device profile transport configuration
oneOf:
- $ref: '#/components/schemas/CoapDeviceProfileTransportConfiguration'
- $ref: '#/components/schemas/DefaultDeviceProfileTransportConfiguration'
- $ref: '#/components/schemas/Lwm2mDeviceProfileTransportConfiguration'
- $ref: '#/components/schemas/MqttDeviceProfileTransportConfiguration'
- $ref: '#/components/schemas/SnmpDeviceProfileTransportConfiguration'
provisionConfiguration:
description: JSON object of provisioning strategy type per device profile
oneOf:
- $ref: '#/components/schemas/AllowCreateNewDevicesDeviceProfileProvisionConfiguration'
- $ref: '#/components/schemas/CheckPreProvisionedDevicesDeviceProfileProvisionConfiguration'
- $ref: '#/components/schemas/DisabledDeviceProfileProvisionConfiguration'
- $ref: '#/components/schemas/X509CertificateChainProvisionConfiguration'
alarms:
type: array
description: JSON array of alarm rules configuration per device profile
items:
$ref: '#/components/schemas/DeviceProfileAlarm'
DeviceProfileId:
type: object
properties:
id:
type: string
format: uuid
description: ID of the entity, time-based UUID v1
example: 784f394c-42b6-435a-983c-b7beff2784f9
entityType:
type: string
description: string
enum:
- DEVICE_PROFILE
example: DEVICE_PROFILE
required:
- entityType
- id
DeviceProfileInfo:
type: object
properties:
id:
$ref: '#/components/schemas/EntityId'
description: 'JSON object with the entity Id. '
tenantId:
$ref: '#/components/schemas/TenantId'
description: Tenant id.
name:
type: string
description: Entity Name
image:
type: string
description: 'Either URL or Base64 data of the icon. Used in the mobile application to visualize set of device profiles in the grid view. '
defaultDashboardId:
$ref: '#/components/schemas/DashboardId'
description: Reference to the dashboard. Used in the mobile application to open the default dashboard when user navigates to device details.
type:
type: string
description: Type of the profile. Always 'DEFAULT' for now. Reserved for future use.
enum:
- DEFAULT
transportType:
type: string
description: Type of the transport used to connect the device. Default transport supports HTTP, CoAP and MQTT.
enum:
- DEFAULT
- MQTT
- COAP
- LWM2M
- SNMP
DeviceProfileProvisionConfiguration:
type: object
discriminator:
propertyName: type
properties:
provisionDeviceSecret:
type: string
type:
type: string
required:
- type
DeviceProfileTransportConfiguration:
discriminator:
propertyName: type
properties:
type:
type: string
required:
- type
DeviceSearchQuery:
type: object
description: The device search query JSON
properties:
parameters:
$ref: '#/components/schemas/RelationsSearchParameters'
description: Main search parameters.
relationType:
type: string
description: Type of the relation between root entity and device (e.g. 'Contains' or 'Manages').
deviceTypes:
type: array
description: Array of device types to filter the related entities (e.g. 'Temperature Sensor', 'Smoke Sensor').
items:
type: string
DeviceTransportConfiguration:
discriminator:
propertyName: type
properties:
type:
type: string
required:
- type
DisabledDeviceProfileProvisionConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileProvisionConfiguration'
DurationAlarmConditionSpec:
allOf:
- $ref: '#/components/schemas/AlarmConditionSpec'
- type: object
properties:
unit:
type: string
enum:
- NANOSECONDS
- MICROSECONDS
- MILLISECONDS
- SECONDS
- MINUTES
- HOURS
- DAYS
predicate:
$ref: '#/components/schemas/FilterPredicateValueLong'
DynamicValueBoolean:
type: object
properties:
sourceType:
type: string
enum:
- CURRENT_TENANT
- CURRENT_CUSTOMER
- CURRENT_USER
- CURRENT_DEVICE
sourceAttribute:
type: string
inherit:
type: boolean
resolvedValue:
type: boolean
DynamicValueDouble:
type: object
properties:
sourceType:
type: string
enum:
- CURRENT_TENANT
- CURRENT_CUSTOMER
- CURRENT_USER
- CURRENT_DEVICE
sourceAttribute:
type: string
inherit:
type: boolean
resolvedValue:
type: number
format: double
DynamicValueInteger:
type: object
properties:
sourceType:
type: string
enum:
- CURRENT_TENANT
- CURRENT_CUSTOMER
- CURRENT_USER
- CURRENT_DEVICE
sourceAttribute:
type: string
inherit:
type: boolean
resolvedValue:
type: integer
format: int32
DynamicValueLong:
type: object
properties:
sourceType:
type: string
enum:
- CURRENT_TENANT
- CURRENT_CUSTOMER
- CURRENT_USER
- CURRENT_DEVICE
sourceAttribute:
type: string
inherit:
type: boolean
resolvedValue:
type: integer
format: int64
DynamicValueString:
type: object
properties:
sourceType:
type: string
enum:
- CURRENT_TENANT
- CURRENT_CUSTOMER
- CURRENT_USER
- CURRENT_DEVICE
sourceAttribute:
type: string
inherit:
type: boolean
resolvedValue:
type: string
EfentoCoapDeviceTypeConfiguration:
allOf:
- $ref: '#/components/schemas/CoapDeviceTypeConfiguration'
EntityId:
type: object
properties:
id:
type: string
format: uuid
description: ID of the entity, time-based UUID v1
example: 784f394c-42b6-435a-983c-b7beff2784f9
entityType:
type: string
enum:
- TENANT
- CUSTOMER
- USER
- DASHBOARD
- ASSET
- DEVICE
- ALARM
- RULE_CHAIN
- RULE_NODE
- ENTITY_VIEW
- WIDGETS_BUNDLE
- WIDGET_TYPE
- TENANT_PROFILE
- DEVICE_PROFILE
- ASSET_PROFILE
- API_USAGE_STATE
- TB_RESOURCE
- OTA_PACKAGE
- EDGE
- RPC
- QUEUE
- NOTIFICATION_TARGET
- NOTIFICATION_TEMPLATE
- NOTIFICATION_REQUEST
- NOTIFICATION
- NOTIFICATION_RULE
- QUEUE_STATS
- OAUTH2_CLIENT
- DOMAIN
- MOBILE_APP
- MOBILE_APP_BUNDLE
- CALCULATED_FIELD
- JOB
- ADMIN_SETTINGS
- AI_MODEL
- API_KEY
example: DEVICE
required:
- entityType
- id
EntityInfo:
type: object
properties:
id:
$ref: '#/components/schemas/EntityId'
description: 'JSON object with the entity Id. '
name:
type: string
description: Entity Name
EntitySubtype:
type: object
properties:
tenantId:
$ref: '#/components/schemas/TenantId'
entityType:
type: string
enum:
- TENANT
- CUSTOMER
- USER
- DASHBOARD
- ASSET
- DEVICE
- ALARM
- RULE_CHAIN
- RULE_NODE
- ENTITY_VIEW
- WIDGETS_BUNDLE
- WIDGET_TYPE
- TENANT_PROFILE
- DEVICE_PROFILE
- ASSET_PROFILE
- API_USAGE_STATE
- TB_RESOURCE
- OTA_PACKAGE
- EDGE
- RPC
- QUEUE
- NOTIFICATION_TARGET
- NOTIFICATION_TEMPLATE
- NOTIFICATION_REQUEST
- NOTIFICATION
- NOTIFICATION_RULE
- QUEUE_STATS
- OAUTH2_CLIENT
- DOMAIN
- MOBILE_APP
- MOBILE_APP_BUNDLE
- CALCULATED_FIELD
- JOB
- ADMIN_SETTINGS
- AI_MODEL
- API_KEY
type:
type: string
FilterPredicateValueBoolean:
type: object
properties:
defaultValue:
type: boolean
userValue:
type: boolean
dynamicValue:
$ref: '#/components/schemas/DynamicValueBoolean'
FilterPredicateValueDouble:
type: object
properties:
defaultValue:
type: number
format: double
userValue:
type: number
format: double
dynamicValue:
$ref: '#/components/schemas/DynamicValueDouble'
FilterPredicateValueInteger:
type: object
properties:
defaultValue:
type: integer
format: int32
userValue:
type: integer
format: int32
dynamicValue:
$ref: '#/components/schemas/DynamicValueInteger'
FilterPredicateValueLong:
type: object
properties:
defaultValue:
type: integer
format: int64
userValue:
type: integer
format: int64
dynamicValue:
$ref: '#/components/schemas/DynamicValueLong'
FilterPredicateValueString:
type: object
properties:
defaultValue:
type: string
userValue:
type: string
dynamicValue:
$ref: '#/components/schemas/DynamicValueString'
JsonNode:
description: A value representing the any type (object or primitive)
examples:
- {}
JsonTransportPayloadConfiguration:
allOf:
- $ref: '#/components/schemas/TransportPayloadTypeConfiguration'
KeyFilterPredicate:
discriminator:
propertyName: type
properties:
type:
type: string
required:
- type
LwM2MBootstrapServerCredential:
discriminator:
propertyName: securityMode
properties:
securityMode:
type: string
required:
- securityMode
LwM2mVersion:
type: object
properties:
supported:
type: boolean
Lwm2mDeviceProfileTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileTransportConfiguration'
- type: object
properties:
observeAttr:
$ref: '#/components/schemas/TelemetryMappingConfiguration'
bootstrapServerUpdateEnable:
type: boolean
bootstrap:
type: array
items:
oneOf:
- $ref: '#/components/schemas/NoSecLwM2MBootstrapServerCredential'
- $ref: '#/components/schemas/PSKLwM2MBootstrapServerCredential'
- $ref: '#/components/schemas/RPKLwM2MBootstrapServerCredential'
- $ref: '#/components/schemas/X509LwM2MBootstrapServerCredential'
clientLwM2mSettings:
$ref: '#/components/schemas/OtherConfiguration'
Lwm2mDeviceTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceTransportConfiguration'
- type: object
properties:
powerMode:
type: string
enum:
- PSM
- DRX
- E_DRX
psmActivityTimer:
type: integer
format: int64
edrxCycle:
type: integer
format: int64
pagingTransmissionWindow:
type: integer
format: int64
Mapping:
type: object
properties:
columns:
type: array
items:
$ref: '#/components/schemas/ColumnMapping'
delimiter:
type: string
update:
type: boolean
header:
type: boolean
MqttDeviceProfileTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileTransportConfiguration'
- type: object
properties:
deviceTelemetryTopic:
type: string
deviceAttributesTopic:
type: string
deviceAttributesSubscribeTopic:
type: string
transportPayloadTypeConfiguration:
oneOf:
- $ref: '#/components/schemas/JsonTransportPayloadConfiguration'
- $ref: '#/components/schemas/ProtoTransportPayloadConfiguration'
sparkplug:
type: boolean
sparkplugAttributesMetricNames:
type: array
items:
type: string
uniqueItems: true
sendAckOnValidationException:
type: boolean
MqttDeviceTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceTransportConfiguration'
NoSecLwM2MBootstrapServerCredential:
allOf:
- $ref: '#/components/schemas/LwM2MBootstrapServerCredential'
- type: object
properties:
shortServerId:
type: integer
format: int32
description: Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set
when the Bootstrap-Server Resource has a value of 'false'. The values ID:0 and ID:65535 values MUST NOT be used for identifying the LwM2M Server.
example: 123
readOnly: true
bootstrapServerIs:
type: boolean
description: Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server
Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.
example: true
readOnly: true
host:
type: string
description: Host for 'No Security' mode
example: 0.0.0.0
readOnly: true
port:
type: integer
format: int32
description: 'Port for Lwm2m Server: ''No Security'' mode: Lwm2m Server or Bootstrap Server'
example: '''5685'' or ''5687'''
readOnly: true
clientHoldOffTime:
type: integer
format: int32
description: Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This
information is relevant for use with a Bootstrap-Server only.)
example: 1
readOnly: true
serverPublicKey:
type: string
description: 'Server Public Key for ''Security'' mode (DTLS): RPK or X509. Format: base64 encoded'
example: 'MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat
+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA=='
readOnly: true
serverCertificate:
type: string
description: 'Server Public Key for ''Security'' mode (DTLS): X509. Format: base64 encoded'
example: 'MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs
xEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM
JbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/
BAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp
AWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw='
readOnly: true
bootstrapServerAccountTimeout:
type: integer
format: int32
description: Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)
example: 0
readOnly: true
lifetime:
type: integer
format: int32
description: Specify the lifetime of the registration in seconds.
example: 300
readOnly: true
defaultMinPeriod:
type: integer
format: int32
description: "The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn\u2019\
t exist, the default value is 0."
example: 1
readOnly: true
notifIfDisabled:
type: boolean
description: "If true, the LwM2M Client stores \u201CNotify\u201D operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server\
\ account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored \u201CNotify\u201D operations to the Server. If false, the LwM2M Client discards all the \u201CNotify\u201D\
\ operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true."
example: true
readOnly: true
binding:
type: string
description: This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that
transport for the Current Binding Mode.
example: U
readOnly: true
NumericFilterPredicate:
allOf:
- $ref: '#/components/schemas/KeyFilterPredicate'
- type: object
properties:
operation:
type: string
enum:
- EQUAL
- NOT_EQUAL
- GREATER
- LESS
- GREATER_OR_EQUAL
- LESS_OR_EQUAL
value:
$ref: '#/components/schemas/FilterPredicateValueDouble'
ObjectAttributes:
type: object
properties:
dim:
type: integer
format: int64
ssid:
type: integer
format: int64
uri:
type: string
ver:
$ref: '#/components/schemas/Version'
lwm2m:
$ref: '#/components/schemas/LwM2mVersion'
pmin:
type: integer
format: int64
pmax:
type: integer
format: int64
gt:
type: number
format: double
lt:
type: number
format: double
st:
type: number
format: double
epmin:
type: integer
format: int64
epmax:
type: integer
format: int64
OtaPackage:
type: object
properties:
id:
$ref: '#/components/schemas/OtaPackageId'
description: JSON object with the ota package Id. Specify existing ota package Id to update the ota package. Referencing non-existing ota package id will cause error. Omit this field to create
new ota package.
createdTime:
type: integer
format: int64
description: Timestamp of the ota package creation, in milliseconds
example: 1609459200000
readOnly: true
tenantId:
$ref: '#/components/schemas/TenantId'
description: JSON object with Tenant Id. Tenant Id of the ota package can't be changed.
readOnly: true
deviceProfileId:
$ref: '#/components/schemas/DeviceProfileId'
description: JSON object with Device Profile Id. Device Profile Id of the ota package can't be changed.
readOnly: true
type:
type: string
description: OTA Package type.
enum:
- FIRMWARE
- SOFTWARE
example: FIRMWARE
readOnly: true
title:
type: string
description: OTA Package title.
example: fw
readOnly: true
version:
type: string
description: OTA Package version.
example: 1.0
readOnly: true
tag:
type: string
description: OTA Package tag.
example: fw_1.0
readOnly: true
url:
type: string
description: OTA Package url.
example: http://thingsboard.org/fw/1
readOnly: true
hasData:
type: boolean
description: Indicates OTA Package 'has data'. Field is returned from DB ('true' if data exists or url is set). If OTA Package 'has data' is 'false' we can not assign the OTA Package to the Device
or Device Profile.
example: true
readOnly: true
fileName:
type: string
description: OTA Package file name.
example: fw_1.0
readOnly: true
contentType:
type: string
description: OTA Package content type.
example: APPLICATION_OCTET_STREAM
readOnly: true
checksumAlgorithm:
type: string
description: OTA Package checksum algorithm.
enum:
- MD5
- SHA256
- SHA384
- SHA512
- CRC32
- MURMUR3_32
- MURMUR3_128
example: CRC32
readOnly: true
checksum:
type: string
description: OTA Package checksum.
example: '0xd87f7e0c'
readOnly: true
dataSize:
type: integer
format: int64
description: OTA Package data size.
example: 8
readOnly: true
data:
type: object
properties:
short:
type: integer
format: int32
char:
type: string
int:
type: integer
format: int32
long:
type: integer
format: int64
float:
type: number
format: float
double:
type: number
format: double
direct:
type: boolean
readOnly:
type: boolean
name:
type: string
readOnly: true
additionalInfo:
$ref: '#/components/schemas/JsonNode'
description: OTA Package description.
example: Description for the OTA Package fw_1.0
OtaPackageId:
type: object
properties:
id:
type: string
format: uuid
description: ID of the entity, time-based UUID v1
example: 784f394c-42b6-435a-983c-b7beff2784f9
entityType:
type: string
description: string
enum:
- OTA_PACKAGE
example: OTA_PACKAGE
required:
- entityType
- id
OtaPackageInfo:
type: object
properties:
id:
$ref: '#/components/schemas/OtaPackageId'
description: JSON object with the ota package Id. Specify existing ota package Id to update the ota package. Referencing non-existing ota package id will cause error. Omit this field to create
new ota package.
createdTime:
type: integer
format: int64
description: Timestamp of the ota package creation, in milliseconds
example: 1609459200000
readOnly: true
tenantId:
$ref: '#/components/schemas/TenantId'
description: JSON object with Tenant Id. Tenant Id of the ota package can't be changed.
readOnly: true
deviceProfileId:
$ref: '#/components/schemas/DeviceProfileId'
description: JSON object with Device Profile Id. Device Profile Id of the ota package can't be changed.
readOnly: true
type:
type: string
description: OTA Package type.
enum:
- FIRMWARE
- SOFTWARE
example: FIRMWARE
readOnly: true
title:
type: string
description: OTA Package title.
example: fw
readOnly: true
version:
type: string
description: OTA Package version.
example: 1.0
readOnly: true
tag:
type: string
description: OTA Package tag.
example: fw_1.0
readOnly: true
url:
type: string
description: OTA Package url.
example: http://thingsboard.org/fw/1
readOnly: true
hasData:
type: boolean
description: Indicates OTA Package 'has data'. Field is returned from DB ('true' if data exists or url is set). If OTA Package 'has data' is 'false' we can not assign the OTA Package to the Device
or Device Profile.
example: true
readOnly: true
fileName:
type: string
description: OTA Package file name.
example: fw_1.0
readOnly: true
contentType:
type: string
description: OTA Package content type.
example: APPLICATION_OCTET_STREAM
readOnly: true
checksumAlgorithm:
type: string
description: OTA Package checksum algorithm.
enum:
- MD5
- SHA256
- SHA384
- SHA512
- CRC32
- MURMUR3_32
- MURMUR3_128
example: CRC32
readOnly: true
checksum:
type: string
description: OTA Package checksum.
example: '0xd87f7e0c'
readOnly: true
dataSize:
type: integer
format: int64
description: OTA Package data size.
example: 8
readOnly: true
name:
type: string
readOnly: true
additionalInfo:
$ref: '#/components/schemas/JsonNode'
description: OTA Package description.
example: Description for the OTA Package fw_1.0
OtherConfiguration:
type: object
properties:
useObject19ForOtaInfo:
type: boolean
fwUpdateStrategy:
type: integer
format: int32
swUpdateStrategy:
type: integer
format: int32
clientOnlyObserveAfterConnect:
type: integer
format: int32
powerMode:
type: string
enum:
- PSM
- DRX
- E_DRX
psmActivityTimer:
type: integer
format: int64
edrxCycle:
type: integer
format: int64
pagingTransmissionWindow:
type: integer
format: int64
fwUpdateResource:
type: string
swUpdateResource:
type: string
defaultObjectIDVer:
type: string
PSKLwM2MBootstrapServerCredential:
allOf:
- $ref: '#/components/schemas/LwM2MBootstrapServerCredential'
- type: object
properties:
shortServerId:
type: integer
format: int32
description: Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set
when the Bootstrap-Server Resource has a value of 'false'. The values ID:0 and ID:65535 values MUST NOT be used for identifying the LwM2M Server.
example: 123
readOnly: true
bootstrapServerIs:
type: boolean
description: Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server
Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.
example: true
readOnly: true
host:
type: string
description: Host for 'No Security' mode
example: 0.0.0.0
readOnly: true
port:
type: integer
format: int32
description: 'Port for Lwm2m Server: ''No Security'' mode: Lwm2m Server or Bootstrap Server'
example: '''5685'' or ''5687'''
readOnly: true
clientHoldOffTime:
type: integer
format: int32
description: Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This
information is relevant for use with a Bootstrap-Server only.)
example: 1
readOnly: true
serverPublicKey:
type: string
description: 'Server Public Key for ''Security'' mode (DTLS): RPK or X509. Format: base64 encoded'
example: 'MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat
+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA=='
readOnly: true
serverCertificate:
type: string
description: 'Server Public Key for ''Security'' mode (DTLS): X509. Format: base64 encoded'
example: 'MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs
xEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM
JbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/
BAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp
AWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw='
readOnly: true
bootstrapServerAccountTimeout:
type: integer
format: int32
description: Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)
example: 0
readOnly: true
lifetime:
type: integer
format: int32
description: Specify the lifetime of the registration in seconds.
example: 300
readOnly: true
defaultMinPeriod:
type: integer
format: int32
description: "The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn\u2019\
t exist, the default value is 0."
example: 1
readOnly: true
notifIfDisabled:
type: boolean
description: "If true, the LwM2M Client stores \u201CNotify\u201D operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server\
\ account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored \u201CNotify\u201D operations to the Server. If false, the LwM2M Client discards all the \u201CNotify\u201D\
\ operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true."
example: true
readOnly: true
binding:
type: string
description: This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that
transport for the Current Binding Mode.
example: U
readOnly: true
PageDataDevice:
type: object
properties:
data:
type: array
description: Array of the entities
items:
$ref: '#/components/schemas/Device'
readOnly: true
totalPages:
type: integer
format: int32
description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria
readOnly: true
totalElements:
type: integer
format: int64
description: Total number of elements in all available pages
readOnly: true
hasNext:
type: boolean
description: '''false'' value indicates the end of the result set'
readOnly: true
PageDataDeviceInfo:
type: object
properties:
data:
type: array
description: Array of the entities
items:
$ref: '#/components/schemas/DeviceInfo'
readOnly: true
totalPages:
type: integer
format: int32
description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria
readOnly: true
totalElements:
type: integer
format: int64
description: Total number of elements in all available pages
readOnly: true
hasNext:
type: boolean
description: '''false'' value indicates the end of the result set'
readOnly: true
PageDataDeviceProfile:
type: object
properties:
data:
type: array
description: Array of the entities
items:
$ref: '#/components/schemas/DeviceProfile'
readOnly: true
totalPages:
type: integer
format: int32
description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria
readOnly: true
totalElements:
type: integer
format: int64
description: Total number of elements in all available pages
readOnly: true
hasNext:
type: boolean
description: '''false'' value indicates the end of the result set'
readOnly: true
PageDataDeviceProfileInfo:
type: object
properties:
data:
type: array
description: Array of the entities
items:
$ref: '#/components/schemas/DeviceProfileInfo'
readOnly: true
totalPages:
type: integer
format: int32
description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria
readOnly: true
totalElements:
type: integer
format: int64
description: Total number of elements in all available pages
readOnly: true
hasNext:
type: boolean
description: '''false'' value indicates the end of the result set'
readOnly: true
PageDataOtaPackageInfo:
type: object
properties:
data:
type: array
description: Array of the entities
items:
$ref: '#/components/schemas/OtaPackageInfo'
readOnly: true
totalPages:
type: integer
format: int32
description: Total number of available pages. Calculated based on the 'pageSize' request parameter and total number of entities that match search criteria
readOnly: true
totalElements:
type: integer
format: int64
description: Total number of elements in all available pages
readOnly: true
hasNext:
type: boolean
description: '''false'' value indicates the end of the result set'
readOnly: true
PowerSavingConfiguration:
type: object
properties:
powerMode:
type: string
enum:
- PSM
- DRX
- E_DRX
psmActivityTimer:
type: integer
format: int64
edrxCycle:
type: integer
format: int64
pagingTransmissionWindow:
type: integer
format: int64
ProtoTransportPayloadConfiguration:
allOf:
- $ref: '#/components/schemas/TransportPayloadTypeConfiguration'
- type: object
properties:
deviceTelemetryProtoSchema:
type: string
deviceAttributesProtoSchema:
type: string
deviceRpcRequestProtoSchema:
type: string
deviceRpcResponseProtoSchema:
type: string
enableCompatibilityWithJsonPayloadFormat:
type: boolean
useJsonPayloadFormatForDefaultDownlinkTopics:
type: boolean
RPKLwM2MBootstrapServerCredential:
allOf:
- $ref: '#/components/schemas/LwM2MBootstrapServerCredential'
- type: object
properties:
shortServerId:
type: integer
format: int32
description: Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set
when the Bootstrap-Server Resource has a value of 'false'. The values ID:0 and ID:65535 values MUST NOT be used for identifying the LwM2M Server.
example: 123
readOnly: true
bootstrapServerIs:
type: boolean
description: Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server
Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.
example: true
readOnly: true
host:
type: string
description: Host for 'No Security' mode
example: 0.0.0.0
readOnly: true
port:
type: integer
format: int32
description: 'Port for Lwm2m Server: ''No Security'' mode: Lwm2m Server or Bootstrap Server'
example: '''5685'' or ''5687'''
readOnly: true
clientHoldOffTime:
type: integer
format: int32
description: Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This
information is relevant for use with a Bootstrap-Server only.)
example: 1
readOnly: true
serverPublicKey:
type: string
description: 'Server Public Key for ''Security'' mode (DTLS): RPK or X509. Format: base64 encoded'
example: 'MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat
+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA=='
readOnly: true
serverCertificate:
type: string
description: 'Server Public Key for ''Security'' mode (DTLS): X509. Format: base64 encoded'
example: 'MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs
xEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM
JbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/
BAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp
AWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw='
readOnly: true
bootstrapServerAccountTimeout:
type: integer
format: int32
description: Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)
example: 0
readOnly: true
lifetime:
type: integer
format: int32
description: Specify the lifetime of the registration in seconds.
example: 300
readOnly: true
defaultMinPeriod:
type: integer
format: int32
description: "The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn\u2019\
t exist, the default value is 0."
example: 1
readOnly: true
notifIfDisabled:
type: boolean
description: "If true, the LwM2M Client stores \u201CNotify\u201D operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server\
\ account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored \u201CNotify\u201D operations to the Server. If false, the LwM2M Client discards all the \u201CNotify\u201D\
\ operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true."
example: true
readOnly: true
binding:
type: string
description: This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that
transport for the Current Binding Mode.
example: U
readOnly: true
RelationsSearchParameters:
type: object
properties:
rootId:
type: string
format: uuid
description: Root entity id to start search from.
example: 784f394c-42b6-435a-983c-b7beff2784f9
rootType:
type: string
description: Type of the root entity.
enum:
- TENANT
- CUSTOMER
- USER
- DASHBOARD
- ASSET
- DEVICE
- ALARM
- RULE_CHAIN
- RULE_NODE
- ENTITY_VIEW
- WIDGETS_BUNDLE
- WIDGET_TYPE
- TENANT_PROFILE
- DEVICE_PROFILE
- ASSET_PROFILE
- API_USAGE_STATE
- TB_RESOURCE
- OTA_PACKAGE
- EDGE
- RPC
- QUEUE
- NOTIFICATION_TARGET
- NOTIFICATION_TEMPLATE
- NOTIFICATION_REQUEST
- NOTIFICATION
- NOTIFICATION_RULE
- QUEUE_STATS
- OAUTH2_CLIENT
- DOMAIN
- MOBILE_APP
- MOBILE_APP_BUNDLE
- CALCULATED_FIELD
- JOB
- ADMIN_SETTINGS
- AI_MODEL
- API_KEY
direction:
type: string
description: Type of the root entity.
enum:
- FROM
- TO
relationTypeGroup:
type: string
description: Type of the relation.
enum:
- COMMON
- DASHBOARD
- RULE_CHAIN
- RULE_NODE
- EDGE
- EDGE_AUTO_ASSIGN_RULE_CHAIN
maxLevel:
type: integer
format: int32
description: Maximum level of the search depth.
fetchLastLevelOnly:
type: boolean
description: Fetch entities that match the last level of search. Useful to find Devices that are strictly 'maxLevel' relations away from the root entity.
RepeatingAlarmConditionSpec:
allOf:
- $ref: '#/components/schemas/AlarmConditionSpec'
- type: object
properties:
predicate:
$ref: '#/components/schemas/FilterPredicateValueInteger'
RuleChainId:
type: object
properties:
id:
type: string
format: uuid
description: ID of the entity, time-based UUID v1
example: 784f394c-42b6-435a-983c-b7beff2784f9
entityType:
type: string
description: string
enum:
- RULE_CHAIN
example: RULE_CHAIN
required:
- entityType
- id
SaveDeviceWithCredentialsRequest:
type: object
description: The JSON object with device and credentials. See method description above for example.
properties:
device:
$ref: '#/components/schemas/Device'
description: The JSON with device entity.
credentials:
$ref: '#/components/schemas/DeviceCredentials'
description: The JSON with credentials entity.
required:
- credentials
- device
SaveOtaPackageInfoRequest:
type: object
description: A JSON value representing the OTA Package.
properties:
id:
$ref: '#/components/schemas/OtaPackageId'
description: JSON object with the ota package Id. Specify existing ota package Id to update the ota package. Referencing non-existing ota package id will cause error. Omit this field to create
new ota package.
createdTime:
type: integer
format: int64
description: Timestamp of the ota package creation, in milliseconds
example: 1609459200000
readOnly: true
tenantId:
$ref: '#/components/schemas/TenantId'
description: JSON object with Tenant Id. Tenant Id of the ota package can't be changed.
readOnly: true
deviceProfileId:
$ref: '#/components/schemas/DeviceProfileId'
description: JSON object with Device Profile Id. Device Profile Id of the ota package can't be changed.
readOnly: true
type:
type: string
description: OTA Package type.
enum:
- FIRMWARE
- SOFTWARE
example: FIRMWARE
readOnly: true
title:
type: string
description: OTA Package title.
example: fw
readOnly: true
version:
type: string
description: OTA Package version.
example: 1.0
readOnly: true
tag:
type: string
description: OTA Package tag.
example: fw_1.0
readOnly: true
url:
type: string
description: OTA Package url.
example: http://thingsboard.org/fw/1
readOnly: true
hasData:
type: boolean
description: Indicates OTA Package 'has data'. Field is returned from DB ('true' if data exists or url is set). If OTA Package 'has data' is 'false' we can not assign the OTA Package to the Device
or Device Profile.
example: true
readOnly: true
fileName:
type: string
description: OTA Package file name.
example: fw_1.0
readOnly: true
contentType:
type: string
description: OTA Package content type.
example: APPLICATION_OCTET_STREAM
readOnly: true
checksumAlgorithm:
type: string
description: OTA Package checksum algorithm.
enum:
- MD5
- SHA256
- SHA384
- SHA512
- CRC32
- MURMUR3_32
- MURMUR3_128
example: CRC32
readOnly: true
checksum:
type: string
description: OTA Package checksum.
example: '0xd87f7e0c'
readOnly: true
dataSize:
type: integer
format: int64
description: OTA Package data size.
example: 8
readOnly: true
usesUrl:
type: boolean
description: Indicates OTA Package uses url. Should be 'true' if uses url or 'false' if will be used data.
example: true
readOnly: true
name:
type: string
readOnly: true
additionalInfo:
$ref: '#/components/schemas/JsonNode'
description: OTA Package description.
example: Description for the OTA Package fw_1.0
SharedAttributesSettingSnmpCommunicationConfig:
allOf:
- $ref: '#/components/schemas/SnmpCommunicationConfig'
- type: object
properties:
mappings:
type: array
items:
$ref: '#/components/schemas/SnmpMapping'
SimpleAlarmConditionSpec:
allOf:
- $ref: '#/components/schemas/AlarmConditionSpec'
SnmpCommunicationConfig:
type: object
discriminator:
propertyName: spec
properties:
spec:
type: string
enum:
- TELEMETRY_QUERYING
- CLIENT_ATTRIBUTES_QUERYING
- SHARED_ATTRIBUTES_SETTING
- TO_DEVICE_RPC_REQUEST
- TO_SERVER_RPC_REQUEST
SnmpDeviceProfileTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileTransportConfiguration'
- type: object
properties:
timeoutMs:
type: integer
format: int32
retries:
type: integer
format: int32
communicationConfigs:
type: array
items:
oneOf:
- $ref: '#/components/schemas/ClientAttributesQueryingSnmpCommunicationConfig'
- $ref: '#/components/schemas/SharedAttributesSettingSnmpCommunicationConfig'
- $ref: '#/components/schemas/TelemetryQueryingSnmpCommunicationConfig'
- $ref: '#/components/schemas/ToDeviceRpcRequestSnmpCommunicationConfig'
- $ref: '#/components/schemas/ToServerRpcRequestSnmpCommunicationConfig'
SnmpDeviceTransportConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceTransportConfiguration'
- type: object
properties:
host:
type: string
port:
type: integer
format: int32
protocolVersion:
type: string
enum:
- V1
- V2C
- V3
community:
type: string
username:
type: string
securityName:
type: string
contextName:
type: string
authenticationProtocol:
type: string
enum:
- SHA_1
- SHA_224
- SHA_256
- SHA_384
- SHA_512
- MD5
authenticationPassphrase:
type: string
privacyProtocol:
type: string
enum:
- DES
- AES_128
- AES_192
- AES_256
privacyPassphrase:
type: string
engineId:
type: string
SnmpMapping:
type: object
properties:
oid:
type: string
key:
type: string
dataType:
type: string
enum:
- BOOLEAN
- LONG
- DOUBLE
- STRING
- JSON
SpecificTimeSchedule:
allOf:
- $ref: '#/components/schemas/AlarmSchedule'
- type: object
properties:
timezone:
type: string
daysOfWeek:
type: array
items:
type: integer
format: int32
uniqueItems: true
startsOn:
type: integer
format: int64
endsOn:
type: integer
format: int64
StringFilterPredicate:
allOf:
- $ref: '#/components/schemas/KeyFilterPredicate'
- type: object
properties:
operation:
type: string
enum:
- EQUAL
- NOT_EQUAL
- STARTS_WITH
- ENDS_WITH
- CONTAINS
- NOT_CONTAINS
- IN
- NOT_IN
value:
$ref: '#/components/schemas/FilterPredicateValueString'
ignoreCase:
type: boolean
TelemetryMappingConfiguration:
type: object
properties:
keyName:
type: object
additionalProperties:
type: string
observe:
type: array
items:
type: string
uniqueItems: true
attribute:
type: array
items:
type: string
uniqueItems: true
telemetry:
type: array
items:
type: string
uniqueItems: true
attributeLwm2m:
type: object
additionalProperties:
$ref: '#/components/schemas/ObjectAttributes'
initAttrTelAsObsStrategy:
type: boolean
observeStrategy:
type: string
enum:
- 'SINGLE (0): One resource equals one single observe request'
- 'COMPOSITE_ALL (1): All resources in one composite observe request'
- 'COMPOSITE_BY_OBJECT (2): Grouped composite observe requests by object'
TelemetryQueryingSnmpCommunicationConfig:
allOf:
- $ref: '#/components/schemas/SnmpCommunicationConfig'
- type: object
properties:
mappings:
type: array
items:
$ref: '#/components/schemas/SnmpMapping'
queryingFrequencyMs:
type: integer
format: int64
TenantId:
type: object
properties:
id:
type: string
format: uuid
description: ID of the entity, time-based UUID v1
example: 784f394c-42b6-435a-983c-b7beff2784f9
entityType:
type: string
description: string
enum:
- TENANT
example: TENANT
required:
- entityType
- id
ToDeviceRpcRequestSnmpCommunicationConfig:
allOf:
- $ref: '#/components/schemas/SnmpCommunicationConfig'
- type: object
properties:
mappings:
type: array
items:
$ref: '#/components/schemas/SnmpMapping'
ToServerRpcRequestSnmpCommunicationConfig:
allOf:
- $ref: '#/components/schemas/SnmpCommunicationConfig'
- type: object
properties:
mappings:
type: array
items:
$ref: '#/components/schemas/SnmpMapping'
TransportPayloadTypeConfiguration:
discriminator:
propertyName: transportPayloadType
properties:
transportPayloadType:
type: string
required:
- transportPayloadType
Version: {}
X509CertificateChainProvisionConfiguration:
allOf:
- $ref: '#/components/schemas/DeviceProfileProvisionConfiguration'
- type: object
properties:
certificateRegExPattern:
type: string
allowCreateNewDevicesByX509Certificate:
type: boolean
X509LwM2MBootstrapServerCredential:
allOf:
- $ref: '#/components/schemas/LwM2MBootstrapServerCredential'
- type: object
properties:
shortServerId:
type: integer
format: int32
description: Server short Id. Used as link to associate server Object Instance. This identifier uniquely identifies each LwM2M Server configured for the LwM2M Client. This Resource MUST be set
when the Bootstrap-Server Resource has a value of 'false'. The values ID:0 and ID:65535 values MUST NOT be used for identifying the LwM2M Server.
example: 123
readOnly: true
bootstrapServerIs:
type: boolean
description: Is Bootstrap Server or Lwm2m Server. The LwM2M Client MAY be configured to use one or more LwM2M Server Account(s). The LwM2M Client MUST have at most one LwM2M Bootstrap-Server
Account. (*) The LwM2M client MUST have at least one LwM2M server account after completing the boot sequence specified.
example: true
readOnly: true
host:
type: string
description: Host for 'No Security' mode
example: 0.0.0.0
readOnly: true
port:
type: integer
format: int32
description: 'Port for Lwm2m Server: ''No Security'' mode: Lwm2m Server or Bootstrap Server'
example: '''5685'' or ''5687'''
readOnly: true
clientHoldOffTime:
type: integer
format: int32
description: Client Hold Off Time. The number of seconds to wait before initiating a Client Initiated Bootstrap once the LwM2M Client has determined it should initiate this bootstrap mode. (This
information is relevant for use with a Bootstrap-Server only.)
example: 1
readOnly: true
serverPublicKey:
type: string
description: 'Server Public Key for ''Security'' mode (DTLS): RPK or X509. Format: base64 encoded'
example: 'MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEAZ0pSaGKHk/GrDaUDnQZpeEdGwX7m3Ws+U/kiVat
+44sgk3c8g0LotfMpLlZJPhPwJ6ipXV+O1r7IZUjBs3LNA=='
readOnly: true
serverCertificate:
type: string
description: 'Server Public Key for ''Security'' mode (DTLS): X509. Format: base64 encoded'
example: 'MMIICODCCAd6gAwIBAgIUI88U1zowOdrxDK/dOV+36gJxI2MwCgYIKoZIzj0EAwIwejELMAkGA1UEBhMCVUs
xEjAQBgNVBAgTCUt5aXYgY2l0eTENMAsGA1UEBxMES3lpdjEUMBIGA1UEChMLVGhpbmdzYm9hcmQxFzAVBgNVBAsMDkRFVkVMT1BFUl9URVNUMRkwFwYDVQQDDBBpbnRlcm1lZGlhdGVfY2EwMB4XDTIyMDEwOTEzMDMwMFoXDTI3MDEwODEzMDMwMFowFDESMBAGA1UEAxM
JbG9jYWxob3N0MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEUO3vBo/JTv0eooY7XHiKAIVDoWKFqtrU7C6q8AIKqpLcqhCdW+haFeBOH3PjY6EwaWkY04Bir4oanU0s7tz2uKOBpzCBpDAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDAYDVR0TAQH/
BAIwADAdBgNVHQ4EFgQUEjc3Q4a0TxzP/3x3EV4fHxYUg0YwHwYDVR0jBBgwFoAUuSquGycMU6Q0SYNcbtSkSD3TfH0wLwYDVR0RBCgwJoIVbG9jYWxob3N0LmxvY2FsZG9tYWlugglsb2NhbGhvc3SCAiAtMAoGCCqGSM49BAMCA0gAMEUCIQD7dbZObyUaoDiNbX+9fUNp
AWrD7N7XuJUwZ9FcN75R3gIgb2RNjDkHoyUyF1YajwkBk+7XmIXNClmizNJigj908mw='
readOnly: true
bootstrapServerAccountTimeout:
type: integer
format: int32
description: Bootstrap Server Account Timeout (If the value is set to 0, or if this resource is not instantiated, the Bootstrap-Server Account lifetime is infinite.)
example: 0
readOnly: true
lifetime:
type: integer
format: int32
description: Specify the lifetime of the registration in seconds.
example: 300
readOnly: true
defaultMinPeriod:
type: integer
format: int32
description: "The default value the LwM2M Client should use for the Minimum Period of an Observation in the absence of this parameter being included in an Observation. If this Resource doesn\u2019\
t exist, the default value is 0."
example: 1
readOnly: true
notifIfDisabled:
type: boolean
description: "If true, the LwM2M Client stores \u201CNotify\u201D operations to the LwM2M Server while the LwM2M Server account is disabled or the LwM2M Client is offline. After the LwM2M Server\
\ account is enabled or the LwM2M Client is online, the LwM2M Client reports the stored \u201CNotify\u201D operations to the Server. If false, the LwM2M Client discards all the \u201CNotify\u201D\
\ operations or temporarily disables the Observe function while the LwM2M Server is disabled or the LwM2M Client is offline. The default value is true."
example: true
readOnly: true
binding:
type: string
description: This Resource defines the transport binding configured for the LwM2M Client. If the LwM2M Client supports the binding specified in this Resource, the LwM2M Client MUST use that
transport for the Current Binding Mode.
example: U
readOnly: true
securitySchemes:
HTTP login form:
type: http
description: Enter Username / Password
scheme: loginPassword
bearerFormat: /api/auth/login|X-Authorization
API key form:
type: apiKey
description: 'Enter the API key value with ''ApiKey'' prefix in format: **ApiKey **
Example: **ApiKey tb_5te51SkLRYpjGrujUGwqkjFvooWBlQpVe2An2Dr3w13wjfxDW**
**NOTE**: Use only ONE authentication method at a time. If both are authorized, JWT auth takes the priority.
'
name: X-Authorization
in: header