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
string
The system's unique ID.
edge_id
string
ID of the preferred engine node to run on.
name
string
The system's primary identifier.
zones
array
Zone IDs that this system is a member of.
modules
array
Module ID's that this system contains.
description
string
Markdown formatted text that describes the system.
string
Calendar email that represents this system. Typically used for room scheduling / bookings.
capacity
integer
Number of people this space can accommodate.
features
string
List of features in the room for searching and filtering spaces.
bookable
boolean
Flag for signifying the space is bookable.
installed_ui_devices
integer
Expected number of fixed installation touch panels.
settings
object
JSON object representing the system's configuration.
created_at
integer
Timestamp of creation.
support_url
string
A URL linking to the primary interface for controlling this system.
version
integer
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
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.
(
and )
Provide precedence.
~N
Specifies edit distance (fuzziness) after a word.
~N
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
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
id
string
ID of the system to retrieve.
Query Parameters
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
id
string
ID of the system to update.
Request Body
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
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
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
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
id
string
ID of the system to execute within.a
Request Body
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
id
string
ID of the system the module is in.
Query Parameters
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
id
string
ID of the system that the module is in.
Query Parameters
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
id
string
ID of the system to query.
Query Parameters
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
id
string
ID of the system to query.
Last updated