All topics
contain the <channel>
which may be either twin
or live
.
For the meaning of those two channels see Protocol specification.
Create a Thing
This command creates the thing specified by the <namespace>
and <thingId>
in the topic defined by the JSON in the
value.
The ACL of the created Thing
must include at least one subject authorized to READ, WRITE and ADMINISTRATE permissions.
If no ACL is provided within the command, a default ACL with an entry for the authorized subject with all permissions
set to true will be created.
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/create |
path | / |
value | The complete thing as JSON object, see Ditto protocol payload (JSON). |
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/create |
|
path | / |
|
value | The created Thing as JSON object, see Ditto protocol payload (JSON). | |
status | code | |
201 |
Success - the thing was created successfully. | |
409 |
Conflict - a thing with the given ID already exists. | |
See Thing Error Responses for examples of other error responses. |
Event
The event emitted by Ditto after a thing was created.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | / |
value | The created thing as JSON object, see Ditto protocol payload (JSON) |
Example: Create a Thing.
Create or modify a Thing
This command modifies the thing specified by the <namespace>
and <thingId>
in the topic
with the JSON in the
value
, if it already exists. Otherwise, the thing is created.
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | / |
value | The complete thing as JSON. see Ditto protocol payload (JSON) |
For modifying an existing thing, the authorized subject needs WRITE permission.
If the update is targeting the ACL,
the authorized subject additionally needs ADMINISTRATE permission.
If the thing does not yet exist, the same rules apply as described for the create command.
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
|
path | / |
|
value | The created Thing as JSON object, see Ditto protocol payload (JSON). This field is not available, if the Thing already existed. | |
status | code | |
201 |
Success - the Thing was created successfully. | |
204 |
Success - the Thing was modified successfully. | |
403 |
Not Modifiable - The Thing could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | |
404 |
Not Found - The Thing was not found or requester had insufficient permissions. | |
See Thing Error Responses for examples of other error responses. |
Event
The event emitted by Ditto after a thing was modified.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | / |
value | The modified Thing as JSON see Ditto protocol payload (JSON). |
Example: Modify a Thing
In case a thing was created, the event described for the create command will be emitted.
Create or modify all Attributes of a Thing
Create or modify the Attributes of a Thing identified by the <namespace>
and <thingId>
in the topic
.
The Attributes will be replaced by the JSON in the value
.
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | /attributes |
value | The attributes of the thing as JSON, see property attributes of Things JSON schema. See Ditto protocol payload (JSON). |
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
|
path | /attributes |
|
value | The created attributes as JSON, see property attributes of Things JSON schema. See Ditto protocol payload (JSON).. This field is not available, if the thing already contained attributes. |
|
status | code | |
201 |
Success - Attributes were created successfully. | |
204 |
Success - Attributes were modified successfully. | |
403 |
Not Modifiable - The Attributes could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | |
404 |
Not Found - The Thing or Attributes were not found or requester had insufficient permissions. | |
See Thing Error Responses for examples of other error responses. |
Event
If the thing already contained attributes before the command was applied and they were thus overwritten, a modified
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | /attributes |
value | The modified attributes of the thing as JSON, see property attributes of the Things JSON schema. See Ditto protocol payload (JSON). |
Example: Modify Attributes
If the thing did not yet contain attributes before the command was applied, a created
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | /attributes |
value | The created Attributes of the Thing as JSON, see property attributes of the Things JSON schema at Ditto protocol payload (JSON). |
Example: Create Attributes
Create or modify a single Attribute of a Thing
Create or modify a specific attribute identified by the <attributePath>
of the Thing.
The attribute will be created in case it doesn’t exist yet, otherwise the thing attribute is updated.
The attribute (JSON) can be referenced hierarchically by applying JSON Pointer notation (RFC-6901).
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | /attributes/<attributePath> |
value | The specific attribute of the Thing as JSON. |
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
|
path | /attributes/<attributePath> |
|
value | The created attribute as JSON. This field is not available, if the attribute already existed. | |
status | code | |
201 |
Success - The Attribute was created successfully. | |
204 |
Success - The Attribute was modified successfully. | |
403 |
Not Modifiable - The Attribute could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | |
404 |
Not Found - The Thing or Attribute was not found or requester had insufficient permissions. | |
See Thing Error Responses for examples of other error responses. |
Event
If the attribute already existed before the command was applied and it was thus overwritten by the command, a
modified
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | /attributes/<attributePath> |
value | The modified Attribute of the Thing as JSON value. |
Example: Modify a single Attribute
If the attribute did not yet exist before the command was applied, a created
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | /attributes/<attributePath> |
value | The created Attribute of the Thing as JSON value. |
Example: Create a single Attribute
Create or modify a single definition of a Thing
Create or modify a definition of the Thing. The definition will be created in case it doesn’t exist yet, otherwise the thing definition is updated.
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | /definition |
value | The specific definition of the Thing as JSON string value. |
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
|
path | /definition |
|
value | The created definition as JSON string value. This field is not available, if the definition already existed. | |
status | code | |
201 |
Success - The definition was created successfully. | |
204 |
Success - The definition was modified successfully. | |
403 |
Not Modifiable - The definition could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | |
404 |
Not Found - The Thing or definition was not found or requester had insufficient permissions. | |
See Thing Error Responses for examples of other error responses. |
Event
If the definition already existed before the command was applied and it was thus overwritten by the command, a
modified
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | /definition |
value | The modified definition of the Thing as JSON string value. |
Example: Modify a definition
If the definition did not yet exist before the command was applied, a created
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | /definition |
value | The created definition of the Thing as JSON string value. |
Example: Create a definition
Create or modify all Features of a Thing
Create or modify the Features of a Thing identified by the <namespace>
and the <thingId>
in the topic.
The list of Features will be replaced by the JSON in the value
.
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | /features |
value | All Features of the Thing as JSON, see property features of Things JSON schema. See Ditto protocol payload (JSON). |
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
|
path | /features |
|
value | The created Features as JSON, see property features of Things JSON schema at Ditto protocol payload (JSON). This field is not available, if the thing already contained features. |
|
status | code | |
201 |
Success - The Features were created successfully. | |
204 |
Success - The Features were modified successfully. | |
403 |
Not Modifiable - The Features could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | |
404 |
Not Found - The Thing or Features were not found or requester had insufficient permissions. | |
See Thing Error Responses for examples of other error responses. |
Event
If the thing already contained Features before the command was applied and they were thus overwritten, a
modified
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | /features |
value | All Features of the Thing as JSON, see property features of the Things JSON schema. See Ditto protocol payload (JSON). |
Example: Modify Features
If the thing did not yet contain Features before the command was applied, a created
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | /features |
value | All Features of the Thing as JSON, see property features of the Things JSON schema at Ditto protocol payload (JSON). |
Example: Create Features
Create or modify single Feature of a Thing
Create or modify a specific Feature (identified by the Feature ID in the path
) of the Thing (identified by the <namespace>
and the <thingId>
in the topic).
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | /features/<featureId> |
value | The specific Feature of the Thing as JSON. See Ditto protocol payload (JSON). |
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
|
path | /features/<featureId> |
|
value | The created Feature as JSON. See Ditto protocol payload (JSON). This field is not available, if the Feature already existed. | |
status | code | |
201 |
Success - The Feature was created successfully. | |
204 |
Success - the Feature was modified successfully. | |
403 |
Not Modifiable - The Feature could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | |
404 |
Not Found - The Thing or Feature was not found or requester had insufficient permissions. | |
See Thing Error Responses for examples of other error responses. |
Event
If the Feature already existed before the command was applied and it was thus overwritten by the command, a
modified
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | /features/<featureId> |
value | The modified Feature of the Thing as JSON. See Ditto protocol payload (JSON). |
Example: Modify a single Feature
If the Feature did not yet exist before the command was applied, a created
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | /features/<featureId> |
value | The created Feature of the Thing as JSON. see Ditto protocol payload (JSON). |
Example: Create a single Feature
Create or modify Definition of a Feature
Create or modify the Definition of a Feature (identified by the Feature ID in the path
) of the Thing (identified by the <namespace>
and the <thingId>
in the topic
).
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | /features/<featureId>/definition |
value | The Definition of the Feature as JSON array, see property definition of Things JSON schema. See Ditto protocol payload (JSON). |
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
|
path | /features/<featureId>/definition |
|
value | The created Definition of the Feature as JSON array, see property definition of Things JSON schema at Ditto protocol payload (JSON). This field is not available, if the Definition already existed. |
|
status | code | |
201 |
Success - the Definition was created successfully. | |
204 |
Success - the Definition was modified successfully. | |
403 |
Not Modifiable - The Definition could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | |
404 |
Not Found - The Thing, Feature or Definition was not found or requester had insufficient permissions. | |
See Thing Error Responses for examples of other error responses. |
Event
If the Feature Definition already existed before the command was applied and it was thus overwritten by the command, a
modified
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | /features/<featureId>/definition |
value | The modified Definition of the Feature as JSON array, see property properties of the Things JSON schema. See Ditto protocol payload (JSON). |
Example: Modify Feature Definition
If the Feature Definition did not yet exist before the command was applied, a created
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | /features/<featureId>/definition |
value | The created Definition of the Feature as JSON array, see property definition of the Things JSON schema at Ditto protocol payload (JSON). |
Example: Create Feature Definition
Modify all Properties of a Feature
Create or modify the Properties of a Feature (identified by the Feature ID in the path
) of the Thing (identified by the <namespace>
and the <thingId>
in the topic
).
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | /features/<featureId>/properties |
value | The Properties of the Feature as JSON, see property properties of Things JSON schema. See Ditto protocol payload (JSON). |
Response
Field | Value | |
---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
|
path | /features/<featureId>/properties |
|
value | The created Properties of the Feature as JSON object, see property properties of Things JSON schema at Ditto protocol payload (JSON). This field is not available, if Feature already contained Properties. |
|
status | code | |
201 |
Success - the Properties were created successfully. | |
204 |
Success - the Properties were modified successfully. | |
403 |
Not Modifiable - The Properties could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | |
404 |
Not Found - The Properties were not found or requester had insufficient permissions. | |
See Thing Error Responses for examples of other error responses. |
Event
If the Feature already contained Properties before the command was applied and they were thus overwritten by the
command, a modified
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | /features/<featureId>/properties |
value | The modified Properties of the Feature as JSON, see property properties of the Things JSON schema. See Ditto protocol payload (JSON). |
Example: Modify Feature Properties
If the Feature did not yet contain Properties before the command was applied, a created
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | /features/<featureId>/properties |
value | The created Properties of the Feature as JSON object, see property properties of the Things JSON schema at Ditto protocol payload (JSON). |
Example: Create Feature Properties
Create or modify a single Property of a Feature
Create or modify a specific Property (identified by <propertyPath>
) of a Feature (identified by the <featureId>
in the path
).
The Property will be created if it doesn’t exist or else updated.
The Property (JSON) can be referenced hierarchically by applying JSON Pointer notation (RFC-6901).
Command
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
path | /features/<featureId>/properties/<propertyPath> |
value | The specific Property of the Feature as JSON. |
Response
Field | Value | ||
---|---|---|---|
topic | <namespace>/<thingName>/things/<channel>/commands/modify |
||
path | /features/<featureId>/properties/<propertyPath> |
||
value | The created Property of the Feature as JSON. This field is not available, if the Property already existed. | ||
status | code | ||
201 |
Success - the Property was created successfully. | ||
204 |
Success - the Property was modified successfully. | ||
403 |
Not Modifiable - The Property could not be modified as the requester had insufficient permissions (‘WRITE’ is required). | ||
404 |
Not Found - The Thing or Property was not found or requester had insufficient permissions. | ||
See Thing Error Responses for examples of other error responses. |
Event
If the Feature Property already existed before the command was applied and it was thus overwritten by the command, a
modified
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/modified |
path | /features/<featureId>/properties/<propertyPath> |
value | The modified Property of the Thing as JSON. |
Example: Modify a single Feature Property
If the Feature Property did not yet exist before the command was applied, a created
event will be emitted.
Field | Value |
---|---|
topic | <namespace>/<thingName>/things/<channel>/events/created |
path | /features/<featureId>/properties/<propertyPath> |
value | The created Property of the Thing as JSON. |
Example: Create a single Feature Property