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, 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.
POST
/v1/property/
¶Create a new property.
Request Headers: | |
---|---|
|
|
Status Codes: |
|
POST /v1/property HTTP/1.1
Host: localhost:8768
Content-Type: application/json
{
"properties":[
{
"key":"12345",
"name":"testName",
"parent":"testParent",
"asset_sub_id":"testAssetSubId",
"scene":"testScene",
"actions": [
{
"name": "testAction",
"description": "this is a description",
"keyframes": [
{
"frame":1,
"values":[
{
"value":100.0,
"left_type":"vector",
"left_x":10.0,
"left_y":5.0,
"right_type":"free",
"right_x":4.0,
"right_y":3.0
}
]
}
]
}
],
"values":[
{
"value":100.0,
"left_type":"vector",
"left_x":10.0,
"left_y":5.0,
"right_type":"free",
"right_x":4.0,
"right_y":3.0
}
]
}
]
}
curl -i -X POST http://localhost:8768/v1/property -H 'Content-Type: application/json' --data-raw '{"properties": [{"name": "testName", "parent": "testParent", "scene": "testScene", "actions": [{"name": "testAction", "keyframes": [{"frame": 1, "values": [{"left_type": "vector", "value": 100.0, "left_x": 10.0, "left_y": 5.0, "right_x": 4.0, "right_y": 3.0, "right_type": "free"}]}], "description": "this is a description"}], "values": [{"left_type": "vector", "value": 100.0, "left_x": 10.0, "left_y": 5.0, "right_x": 4.0, "right_y": 3.0, "right_type": "free"}], "asset_sub_id": "testAssetSubId", "key": "12345"}]}'
HTTP/1.1 200 OK
Location: http://localhost:8768/v1/property
Content-Type: application/json
{
"num_records": 1,
"objects": [
{
"key": "jklmnop"
}
]
}
POST
/v1/property/{property_key}
¶Update an existing property.
Request Headers: | |
---|---|
|
|
Status Codes: |
|
POST /v1/property/{key} HTTP/1.1
Host: localhost:8768
Content-Type: application/json
{
"properties":[
{
"name":"anotherName",
"parent":"anotherParent"
}
]
}
curl -i -X POST 'http://localhost:8768/v1/property/{key}' -H 'Content-Type: application/json' --data-raw '{"properties": [{"name": "anotherName", "parent": "anotherParent"}]}'
wget -S -O- 'http://localhost:8768/v1/property/{key}' --header='Content-Type: application/json' --post-data='{"properties": [{"name": "anotherName", "parent": "anotherParent"}]}'
echo '{
"properties": [
{
"name": "anotherName",
"parent": "anotherParent"
}
]
}' | http POST 'http://localhost:8768/v1/property/{key}' Content-Type:application/json
requests.post('http://localhost:8768/v1/property/{key}', headers={'Content-Type': 'application/json'}, json={'properties': [{'name': 'anotherName', 'parent': 'anotherParent'}]})
HTTP/1.1 200 OK
Location: http://localhost:8768/v1/property/{key}
Content-Type: application/json
{
"num_records":1,
"properties":[{"key":"jklmnop"}]
}
GET
/v1/property/
(property_key)¶Get property details in JSON Format.
Status Codes: |
|
---|
GET /v1/property/{key} HTTP/1.1
Host: localhost:8768
curl -i 'http://localhost:8768/v1/property/{key}'
DELETE
/v1/property/
(property_key)¶Delete an property.
Status Codes: |
|
---|
DELETE /v1/property/{key} HTTP/1.1
Host: localhost:8768
curl -i -X DELETE 'http://localhost:8768/v1/property/{key}'
wget -S -O- --method=DELETE 'http://localhost:8768/v1/property/{key}'
http DELETE 'http://localhost:8768/v1/property/{key}'
requests.delete('http://localhost:8768/v1/property/{key}')
GET
/v1/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: |
|
---|
POST /v1/property/query HTTP/1.1
Host: localhost:8768
Content-Type: application/json
{
"properties":[
{
"name":"test"
}
]
}
curl -i -X POST http://localhost:8768/v1/property/query -H 'Content-Type: application/json' --data-raw '{"properties": [{"name": "test"}]}'
POST
/v1/property/{key}/action
¶An action is a named set of keyframes, each holding the value of the property at that frame. This endpoint allows creation of a new action against an existing property.
Status Codes: |
|
---|
POST /v1/property/{key}/action HTTP/1.1
Host: localhost:8768
Content-Type: application/json
{
"name": "testAction",
"description": "this is a description",
"keyframes": [
{
"frame": 1,
"values": [
{
"value": 100,
"left_type": "vector",
"left_x": 10,
"left_y": 5,
"right_type": "free",
"right_x": 4,
"right_y": 3
}
]
}
]
}
curl -i -X POST 'http://localhost:8768/v1/property/{key}/action' -H 'Content-Type: application/json' --data-raw '{"description": "this is a description", "keyframes": [{"frame": 1, "values": [{"left_type": "vector", "value": 100, "left_x": 10, "left_y": 5, "right_x": 4, "right_y": 3, "right_type": "free"}]}], "name": "testAction"}'
HTTP/1.1 200 OK
Location: http://localhost:8768/v1/property
Content-Type: application/json
{
"num_records": 1,
"objects": [
{
"key": "jklmnop"
}
]
}
POST
/v1/property/{key}/action/{name}
¶This endpoint allows for updating fields within an action.
Status Codes: |
|
---|
POST /v1/property/{key}/action/{name} HTTP/1.1
Host: localhost:8768
Content-Type: application/json
{
"name": "testAction",
"description": "this is another description"
}
curl -i -X POST 'http://localhost:8768/v1/property/{key}/action/{name}' -H 'Content-Type: application/json' --data-raw '{"description": "this is another description", "name": "testAction"}'
HTTP/1.1 200 OK
Location: http://localhost:8768/v1/property
Content-Type: application/json
{
"num_records": 1,
"objects": [
{
"key": "jklmnop"
}
]
}
DELETE
/v1/property/{key}/action/{name}
¶This endpoint allows for removing actions from an property.
Status Codes: |
|
---|
DELETE /v1/property/{key}/action/{name} HTTP/1.1
Host: localhost:8768
curl -i -X DELETE 'http://localhost:8768/v1/property/{key}/action/{name}'
HTTP/1.1 200 OK
Location: http://localhost:8768/v1/property
Content-Type: application/json
{
"num_records": 1,
"objects": [
{
"key": "jklmnop"
}
]
}
POST
/v1/property/{key}/action/{name}/keyframe
¶This endpoint allows for adding keyframes to existing actions.
Status Codes: |
|
---|
POST /v1/property/{key}/action/{name}/keyframe HTTP/1.1
Host: localhost:8768
Content-Type: application/json
{
"frame": 1,
"values": [
{
"value": 100,
"left_type": "vector",
"left_x": 10,
"left_y": 5,
"right_type": "free",
"right_x": 4,
"right_y": 3
}
]
}
curl -i -X POST 'http://localhost:8768/v1/property/{key}/action/{name}/keyframe' -H 'Content-Type: application/json' --data-raw '{"frame": 1, "values": [{"left_type": "vector", "value": 100, "left_x": 10, "left_y": 5, "right_x": 4, "right_y": 3, "right_type": "free"}]}'
HTTP/1.1 200 OK
Location: http://localhost:8768/v1/property
Content-Type: application/json
{
"num_records": 1,
"objects": [
{
"key": "jklmnop"
}
]
}
POST
/v1/property/{key}/action/{name}/keyframe/{frame}
¶This endpoint allows for updating elements within a keyframe.
Status Codes: |
|
---|
POST /v1/property/{key}/action/{name}/keyframe/{frame} HTTP/1.1
Host: localhost:8768
Content-Type: application/json
{
"frame": 1,
"values": [
{
"value": 100,
"left_type": "vector",
"left_x": 10,
"left_y": 5,
"right_type": "free",
"right_x": 4,
"right_y": 3
}
]
}
curl -i -X POST 'http://localhost:8768/v1/property/{key}/action/{name}/keyframe/{frame}' -H 'Content-Type: application/json' --data-raw '{"frame": 1, "values": [{"left_type": "vector", "value": 100, "left_x": 10, "left_y": 5, "right_x": 4, "right_y": 3, "right_type": "free"}]}'
HTTP/1.1 200 OK
Location: http://localhost:8768/v1/property
Content-Type: application/json
{
"num_records": 1,
"objects": [
{
"key": "jklmnop"
}
]
}
DELETE
/v1/property/{key}/action/{name}/keyframe/{frame}
¶This endpoint removes a keyframe from an existing action.
Status Codes: |
|
---|
DELETE /v1/property/{key}/action/{name}/keyframe/{frame} HTTP/1.1
Host: localhost:8768
curl -i -X DELETE 'http://localhost:8768/v1/property/{key}/action/{name}/keyframe/{frame}'
HTTP/1.1 200 OK
Location: http://localhost:8768/v1/property
Content-Type: application/json
{
"num_records": 1,
"objects": [
{
"key": "jklmnop"
}
]
}