CreateThing

Creates a new Thing with ID com.acme:xdk_53 that uses an existing Policy with ID com.acme:the_policy_id.

{
  "topic": "com.acme/xdk_53/things/twin/commands/create",
  "headers": {},
  "path": "/",
  "value": {
    "thingId": "com.acme:xdk_53",
    "policyId": "com.acme:the_policy_id",
    "attributes": {
      "location": {
        "latitude": 44.673856,
        "longitude": 8.261719
      }
    },
    "features": {
      "accelerometer": {
        "properties": {
          "x": 3.141,
          "y": 2.718,
          "z": 1,
          "unit": "g"
        }
      }
    }
  }
}

CreateThingResponse

{
  "topic": "com.acme/xdk_53/things/twin/commands/create",
  "headers": {},
  "path": "/",
  "value": {
    "thingId": "com.acme:xdk_53",
    "policyId": "com.acme:the_policy_id",
    "attributes": {
      "location": {
        "latitude": 44.673856,
        "longitude": 8.261719
      }
    },
    "features": {
      "accelerometer": {
        "properties": {
          "x": 3.141,
          "y": 2.718,
          "z": 1,
          "unit": "g"
        }
      }
    }
  },
  "status": 201
}

ThingCreated

{
  "topic": "com.acme/xdk_53/things/twin/events/created",
  "headers": {},
  "path": "/",
  "value": {
    "thingId": "com.acme:xdk_53",
    "policyId": "com.acme:the_policy_id",
    "attributes": {
      "location": {
        "latitude": 44.673856,
        "longitude": 8.261719
      }
    },
    "features": {
      "accelerometer": {
        "properties": {
          "x": 3.141,
          "y": 2.718,
          "z": 1,
          "unit": "g"
        }
      }
    }
  },
  "revision": 1
}

Alternative CreateThing commands

If you want to copy an existing Policy instead of creating a new one by yourself or reference an existing Policy, you can adjust the CreateThing command like demonstrated in the following examples.

CreateThing with copied Policy by Policy ID

Creates a new Thing with ID com.acme:xdk_53 with a Policy copied from the Policy with ID com.acme:the_policy_id_to_copy.

{
  "topic": "com.acme/xdk_53/things/twin/commands/create",
  "headers": {},
  "path": "/",
  "value": {
    "thingId": "com.acme:xdk_53",
    "policyId": "com.acme:the_policy_id",
    "_copyPolicyFrom": "com:acme:the_policy_id_to_copy"
  }
}

CreateThing with copied Policy by Thing reference

Creates a new Thing with ID com.acme:xdk_53 with a Policy copied from a Thing with ID com.acme:xdk_52.

{
  "topic": "com.acme/xdk_53/things/twin/commands/create",
  "headers": {},
  "path": "/",
  "value": {
    "thingId": "com.acme:xdk_53",
    "policyId": "com.acme:the_policy_id",
    "_copyPolicyFrom": "{{ ref:things/com:acme:xdk_52/policyId }}"
  }
}