Systems
The /systems
endpoint provides methods for discovering, creating and interacting with systems. For more on the role that systems play, see:
All systems provide a base set of metadata that helps to describe their role and capabilities, as well as provide references to the modules they contain, and the zones they exist in.
Model
Attribute | Type | Description |
id |
| The system's unique ID. |
edge_id |
| ID of the preferred engine node to run on. |
name |
| The system's primary identifier. |
zones |
| Zone IDs that this system is a member of. |
modules |
| Module ID's that this system contains. |
description |
| Markdown formatted text that describes the system. |
| Calendar email that represents this system. Typically used for room scheduling / bookings. | |
capacity |
| Number of people this space can accommodate. |
features |
| List of features in the room for searching and filtering spaces. |
bookable |
| Flag for signifying the space is bookable. |
installed_ui_devices |
| Expected number of fixed installation touch panels. |
settings |
| JSON object representing the system's configuration. |
created_at |
| Timestamp of creation. |
support_url |
| A URL linking to the primary interface for controlling this system. |
version |
| Incremental counter for handling stale updates. |
Discovery
Search
GET
https://example.com/api/control/systems
Direct queries to the systems endpoint list, or search for existing systems.
Query Parameters
Name | Type | Description |
---|---|---|
q | string | A search query for the system metadata. |
limit | integer | Max results to return (default 20). |
offset | integer | The offset within the result set. |
zone_id | string | Limit to systems within this zone. |
module_id | string | Limit to systems that contain this module. |
Queries default to searching for any of the entered terms (words). A small query language provides the ability to structure complex queries.
Operator | Action | |
| Matches both terms. | |
` | ` | Matches either terms. |
| Negates a single token. | |
| Wraps tokens to form a phrase. | |
| Provide precedence. | |
| Specifies edit distance (fuzziness) after a word. | |
| Specifies slop amount (deviation) after a phrase. |
Management
Create
POST
https://example.com/api/control/systems
Defines a new system. Systems names must be unique within the instance they are running on and all systems must have at least one zone associated. All other attributes are optional at the time of creation.
Request Body
Name | Type | Description |
---|---|---|
name | string | |
zones | array | |
edge_id | string | |
description | string | |
string | ||
capacity | integer | |
bookable | boolean | |
installed_ui_devices | integer | |
modules | string | |
settings | string | |
support_url | string |
Retrieve
GET
https://example.com/api/control/systems/{id}
Retrieve all metadata associated with the system.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system to retrieve. |
Query Parameters
Name | Type | Description |
---|---|---|
complete | boolean | Include full models of all modules and zones associated with the system rather than their ID. |
Update
PUT
https://example.com/api/control/systems/{id}
Updates system attributes. Any selection of attributes form the request - unspecified items will keep their current values. All requests must include a version parameter that matches the current system version.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system to update. |
Request Body
Name | Type | Description |
---|---|---|
version | integer | The system metadata version. This must match the current version and increments following each successful update. |
name | string | |
description | string | |
string | ||
capacity | integer | |
bookable | boolean | |
installed_ui_devices | integer | |
zones | array | |
modules | string | |
settings | string | |
support_url | string |
Delete
DELETE
https://example.com/api/control/systems/{id}
Removes a system. This will stop, and remove any modules that are not associated with other systems.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system to retrieve. |
Interaction
Start
POST
https://example.com/api/control/systems/{id}/start
Starts all modules associated with the system.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system to start. |
Stop
POST
https://example.com/api/control/systems/{id}/stop
Stops all modules associated with the system.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system to stop. |
Exec
POST
https://example.com/api/control/systems/{id}/exec
Run behaviour exposed by a module. The associated method will execute and the response returned. If this includes asynchronous or long running behaviour, the result will be awaiting up until a timeout value.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system to execute within.a |
Request Body
Name | Type | Description |
---|---|---|
module | string | Class name of the module. i.e. `Display`, `Bookings` etc |
index | integer | (default 1) Module index in the system. |
method | string | The name of the method to execute. |
args | array | Method arguments. |
State
GET
https://example.com/api/control/systems/{id}/state
Query the state exposed by a module within the system.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system the module is in. |
Query Parameters
Name | Type | Description |
---|---|---|
module | string | Class name of the module. |
index | integer | (default 1) Index of the module. |
lookup | string | A status key of interest. If included, the response filters to this value. |
Funcs
GET
https://example.com/api/control/systems/{id}/funcs
Query the behaviour exposed by a module within the system.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system that the module is in. |
Query Parameters
Name | Type | Description |
---|---|---|
module | string | Class of the module. |
index | integer | (default 1) Index of the module. |
Count
GET
https://example.com/api/control/systems/{id}/count
Counts the instances of a driver type within a system.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system to query. |
Query Parameters
Name | Type | Description |
---|---|---|
module | string | Class name of the modules to count. |
Types
GET
https://example.com/api/control/systems/{id}/types
Query the types of modules available within a system.
Path Parameters
Name | Type | Description |
---|---|---|
id | string | ID of the system to query. |
Last updated