Property API

A Property is a set of between 1 and 4 double values, which may or not be associated to objects. Properties can also support frames and/or timestamps, just like objects, but cannot be locked and have no transformations.

Properties are meant to be interacted with by individual devices, and these changes will be streamed to other devices via the Events API. In addition, Create and Update messages sent to the HTTP API are converted to events and streamed out to registered devices.

Property Creation

POST /v1/scene/(key)/property/

Create a new property.

Request Headers:
 
Status Codes:

http

POST /v1/scene/scene-key/property HTTP/1.1
Host: localhost:8768
Content-Type: application/json

{
  "properties":[
    {
            "key":"12345",
            "name":"testName",
            "parent":"testParent",
            "asset_sub_id":"testAssetSubId",
            "scene":"testScene",
            "frame":1,
            "timestamp":123456789,
            "values":[
                    {
                            "value":100,
                            "left_type":"vector",
                            "left_x":10,
                            "left_y":5,
                            "right_type":"free",
                            "right_x":4,
                            "right_y":3

                    }
            ]
    }
  ]
}

curl

curl -i -X POST http://localhost:8768/v1/scene/scene-key/property -H 'Content-Type: application/json' --data-raw '{"properties": [{"name": "testName", "parent": "testParent", "timestamp": 123456789, "frame": 1, "scene": "testScene", "values": [{"left_type": "vector", "value": 100, "left_x": 10, "left_y": 5, "right_x": 4, "right_y": 3, "right_type": "free"}], "asset_sub_id": "testAssetSubId", "key": "12345"}]}'

response

HTTP/1.1 200 OK
Location: http://localhost:8768/v1/scene/scene-key/property
Content-Type: application/json

{
  "num_records":1,
  "objects":[{"key":"jklmnop"}]
}

Property Update

POST /v1/scene/(key)/property/{property_key}

Update an existing property.

Request Headers:
 
Status Codes:

http

POST /v1/scene/scene-key/property/key HTTP/1.1
Host: localhost:8768
Content-Type: application/json

{
  "properties":[
    {
              "name":"anotherName",
            "parent":"anotherParent"
      }
  ]
}

curl

curl -i -X POST http://localhost:8768/v1/scene/scene-key/property/key -H 'Content-Type: application/json' --data-raw '{"properties": [{"name": "anotherName", "parent": "anotherParent"}]}'

response

HTTP/1.1 200 OK
Location: http://localhost:5885/v1/scene/scene-key/property/key
Content-Type: application/json

{
  "num_records":1,
  "properties":[{"key":"jklmnop"}]
}

Property Retrieval

GET /v1/scene/(key)/property/(property_key)

Get property details in JSON Format.

Status Codes:

http

GET /v1/scene/scene-key/property/key HTTP/1.1
Host: localhost:8768

curl

curl -i http://localhost:8768/v1/scene/scene-key/property/key

response

HTTP/1.1 200 OK
Location: http://localhost:8768/v1/scene/scene-key/property/key
Content-Type: application/json

{
    "msg_type": 10,
    "err_code": 100,
    "num_records": 1,
    "properties": [
        {
            "name": "testName",
            "parent": "testParent",
            "asset_sub_id": "testAssetSubId",
            "scene": "testScene",
            "frame": 1,
            "timestamp": 123456789,
            "values": [
                {
                    "value": 100,
                    "left_type": "vector",
                    "left_x": 10,
                    "left_y": 5,
                    "right_type": "free",
                    "right_x": 4,
                    "right_y": 3
                }
            ]
        }
    ]
}

Property Deletion

DELETE /v1/scene/(key)/property/(property_key)

Delete an property.

Status Codes:

http

DELETE /v1/scene/scene-key/property/key HTTP/1.1
Host: localhost:8768

curl

curl -i -X DELETE http://localhost:8768/v1/scene/scene-key/property/key

Property Query

GET /v1/scene/(key)/property/query

Query for properties which match the input JSON. This will only return as many records as specified in the field ‘num_records’.

Status Codes:

http

POST /v1/scene/scene-key/property/query HTTP/1.1
Host: localhost:5885
Content-Type: application/json

{
  "properties":[
    {
      "name":"test"
    }
  ]
}

curl

curl -i -X POST http://localhost:5885/v1/scene/scene-key/property/query -H 'Content-Type: application/json' --data-raw '{"properties": [{"name": "test"}]}'

response

HTTP/1.1 200 OK
Location: http://localhost:5885/v1/scene/scene-key/property/query
Content-Type: application/json

{
    "msg_type": 10,
    "err_code": 100,
    "num_records": 1,
    "properties": [
        {
            "name": "testName",
            "parent": "testParent",
            "asset_sub_id": "testAssetSubId",
            "scene": "jklmnop",
            "frame": 1,
            "timestamp": 123456789,
            "values": [
                {
                    "value": 100,
                    "left_type": "vector",
                    "left_x": 10,
                    "left_y": 5,
                    "right_type": "free",
                    "right_x": 4,
                    "right_y": 3
                }
            ]
        }
    ]
}