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

Discovery

GET https://example.com/api/control/systems

Direct queries to the systems endpoint list, or search for existing systems.

Query Parameters

{
    "total": 3,
    "results": [
        {
            "edge_id": "edge-QC03B3OM",
            "name": "Room 1",
            "description": null,
            "email": "room1@example.com",
            "capacity": 10,
            "features": "",
            "bookable": true,
            "installed_ui_devices": 0,
            "zones": [
                "zone-rGhCRp_aUD"
            ],
            "modules": [
                "mod-rJRCVYKVuB",
                "mod-rJRGK21pya",
                "mod-rJRHYsZExU"
            ],
            "settings": {},
            "created_at": 1562041110,
            "support_url": null,
            "version": 5,
            "id": "sys-rJQQlR4Cn7"
        },
        {
            "edge_id": "edge-QC03B3OM",
            "name": "Room 2",
            "description": null,
            "email": "room2@example.com",
            "capacity": 10,
            "features": "",
            "bookable": true,
            "installed_ui_devices": 0,
            "zones": [
                "zone-rGhCRp_aUD"
            ],
            "modules": [
                "mod-rJRJOM27Kb",
                "mod-rJRLE4_PQ7",
                "mod-rJRLwe72Mo"
            ],
            "settings": {},
            "created_at": 1562041127,
            "support_url": null,
            "version": 4,
            "id": "sys-rJQSySsELE"
        },
        {
            "edge_id": "edge-QC03B3OM",
            "name": "Room 3",
            "description": null,
            "email": "room3@example.com",
            "capacity": 4,
            "features": "",
            "bookable": true,
            "installed_ui_devices": 0,
            "zones": [
                "zone-rGhCRp_aUD"
            ],
            "modules": [
                "mod-rJRNrLDPNz",
                "mod-rJRQ~JwE7U",
                "mod-rJRV1qokbH"
            ],
            "settings": {},
            "created_at": 1562041145,
            "support_url": null,
            "version": 4,
            "id": "sys-rJQVPIR9Uf"
        }
    ]
}

Queries default to searching for any of the entered terms (words). A small query language provides the ability to structure complex queries.

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

{
    "edge_id": "edge-QC03B3OM",
    "name": "Example Room",
    "description": "Example room description containing further cotnext",
    "email": "room@example.com",
    "capacity": 10,
    "features": "",
    "bookable": true,
    "installed_ui_devices": 0,
    "zones": [
        "zone-rGhCRp_aUD"
    ],
    "modules": [],
    "settings": {},
    "created_at": 1562041110,
    "support_url": "https://example.com/foo",
    "id": "sys-rJQQlR4Cn7"
}

Retrieve

GET https://example.com/api/control/systems/{id}

Retrieve all metadata associated with the system.

Path Parameters

Query Parameters

{
    "edge_id": "edge-QC03B3OM",
    "name": "Example Room",
    "description": "Example room description containing further context",
    "email": "room@example.com",
    "capacity": 10,
    "features": "",
    "bookable": true,
    "installed_ui_devices": 0,
    "zones": [
        "zone-rGhCRp_aUD"
    ],
    "modules": [
        "mod-rJRCVYKVuB",
        "mod-rJRGK21pya",
        "mod-rJRHYsZExU"
    ],
    "settings": {},
    "created_at": 1562041110,
    "support_url": "https://example.com/foo",
    "version": 3,
    "id": "sys-rJQQlR4Cn7"
}

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

Request Body

{
    "edge_id": "edge-QC03B3OM",
    "name": "Example Room",
    "description": "Example room description containing further context",
    "email": "room@example.com",
    "capacity": 10,
    "features": "",
    "bookable": true,
    "installed_ui_devices": 0,
    "zones": [
        "zone-rGhCRp_aUD"
    ],
    "modules": [],
    "settings": {},
    "created_at": 1562041110,
    "support_url": "https://example.com/foo",
    "id": "sys-rJQQlR4Cn7"
}

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

Interaction

Start

POST https://example.com/api/control/systems/{id}/start

Starts all modules associated with the system.

Path Parameters

Stop

POST https://example.com/api/control/systems/{id}/stop

Stops all modules associated with the system.

Path Parameters

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

Request Body

[]

State

GET https://example.com/api/control/systems/{id}/state

Query the state exposed by a module within the system.

Path Parameters

Query Parameters

{
  "foo": "abc",
  "bar": 42
}

Funcs

GET https://example.com/api/control/systems/{id}/funcs

Query the behaviour exposed by a module within the system.

Path Parameters

Query Parameters

{
  "function_name": {
    "arity": 1,
    "params": [
      "string"
    ]
  }
}

Count

GET https://example.com/api/control/systems/{id}/count

Counts the instances of a driver type within a system.

Path Parameters

Query Parameters

{
  "count": 3
}

Types

GET https://example.com/api/control/systems/{id}/types

Query the types of modules available within a system.

Path Parameters

{
  "Booking": 1,
  "Display": 2,
  "VidConf": 1
}

Last updated