Rigado Edge Direct API API Reference
Edge Direct is Rigado's set of tools for provisioning gateways, orchestrating updates, and monitoring performance.
All endpoints require API Key authentication. Keys can be obtained with the Rigado CLI. Token and secret are set in these two headers:
X-Rigado-API-Token
and X-Rigado-API-Secret
Requests are then made to https://api.rigado.com/v1
followed by the resource path you are requesting.
Responses are always in JSON, except for errors, which are returned as strings with an appropriate status code.
Example:
curl -H "X-Rigado-API-Token: token" -H "X-Rigado-API-Secret: secret" https://api.rigado.com/v1/apps
For a more in-depth guide on using API keys, see https://docs.rigado.com/en/legacy/edge-direct/apikey.html
API Endpoint
https://api.rigado.com/v1
Schemes: https
Version: 1.0-94bfb4e
OpenAPI v2.0 Specification: openapi_v2.json
Authentication
api_secret
api_token
gateways
PUT /admin/gateways/{serial}/configurations/reapply
The gateway serial number
Successfully reapplied configurations
Missing parameters or unsupported configuration type requested
Unauthorized
Forbidden, organization does not support Sites feature
No SiteConfigurations found
Error
GET /gateways
Returns a list of Gateways
if true, include the most recent GatewayMetrics object for each Gateway
if provided, only include gateways in the named site. "unassigned" is also valid
A list of Gateways
Unauthorized
Error fetching or marshaling Gateways, or Gateway metrics
Response Example (200 OK)
{
"gateways": [
{
"alive": true,
"appsStatus": [
{
"channel": "edge",
"health": {
"code": "\"errorWaitAPIKey\"",
"message": "\"Waiting for API key\"",
"status": "okay",
"timestamp": "2020-05-05T23:47:39.474454697Z"
},
"installState": "string",
"name": "my-fancy-app",
"refresh": {
"downloadSize": 5337088,
"revision": "133",
"version": "3.3.1"
},
"revision": "130",
"status": "enabled",
"version": "3.2.99z"
}
],
"configurations": {
"configurations": [
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
]
},
"connections": [
{
"active": true,
"interface": "eth0",
"ip": "192.168.30.150",
"name": "acme-wifi",
"primary": true,
"ssid": "ACME Node 4 5GHz"
}
],
"eapModeChannel": "string",
"health": true,
"interfaceHealth": true,
"interfaces": [
{
"cell": {
"apn": "vzwinternet",
"imei": "861108034511146",
"phoneNumber": "+19715999705",
"sim": "89148000003237460246"
},
"interfaceType": "ethernet",
"ips": [
"192.168.30.150"
],
"mac": "51:5b:c3:2f:94:43",
"mtu": 1500,
"name": "eth0"
}
],
"lastCheckedIn": "string",
"lastMetrics": {
"cpu": {
"load15min": "1.20",
"load1hr": "2.04",
"load1min": "0.87",
"percent": 32.45
},
"disk": {
"available": 6640248,
"used": 358400
},
"endedAt": "2018-08-09T00:15:02Z",
"freq": "integer (int64)",
"interfaces": [
{
"interface": "eth0",
"ips": [
"string"
],
"received": 1233,
"rssi": -51,
"sent": 32
}
],
"memory": {}
}
}
]
}
GET /gateways/{serial}
Returns a specific Gateway
The Gateway's unit serial number
A single Gateway
Unauthorized
Gateway not found
Error marshaling Gateway response
Response Example (200 OK)
{
"alive": true,
"appsStatus": [
{
"channel": "edge",
"health": {
"code": "\"errorWaitAPIKey\"",
"message": "\"Waiting for API key\"",
"status": "okay",
"timestamp": "2020-05-05T23:47:39.474454697Z"
},
"installState": "string",
"name": "my-fancy-app",
"refresh": {
"downloadSize": 5337088,
"revision": "133",
"version": "3.3.1"
},
"revision": "130",
"status": "enabled",
"version": "3.2.99z"
}
],
"configurations": {
"configurations": [
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
]
},
"connections": [
{
"active": true,
"interface": "eth0",
"ip": "192.168.30.150",
"name": "acme-wifi",
"primary": true,
"ssid": "ACME Node 4 5GHz"
}
],
"eapModeChannel": "string",
"health": true,
"interfaceHealth": true,
"interfaces": [
{
"cell": {
"apn": "vzwinternet",
"imei": "861108034511146",
"phoneNumber": "+19715999705",
"sim": "89148000003237460246"
},
"interfaceType": "ethernet",
"ips": [
"192.168.30.150"
],
"mac": "51:5b:c3:2f:94:43",
"mtu": 1500,
"name": "eth0"
}
],
"lastCheckedIn": "string",
"lastMetrics": {
"cpu": {
"load15min": "1.20",
"load1hr": "2.04",
"load1min": "0.87",
"percent": 32.45
},
"disk": {
"available": 6640248,
"used": 358400
},
"endedAt": "2018-08-09T00:15:02Z",
"freq": "integer (int64)",
"interfaces": [
{
"interface": "eth0",
"ips": [
"string"
],
"received": 1233,
"rssi": -51,
"sent": 32
}
],
"memory": {
"available": 385584,
"buffers": 47276032
}
}
}
PUT /gateways/{serial}/config
Sends configuration data to a Gateway
An object describing the configuration for a Gateway
The Gateway's unit serial number
Request Example
{
"apps": {
"my-favorite-app": {
"values": {
"extra.logging.enabled": false,
"parameter.name": "important value",
"password": "abc12345"
}
},
"my-other-app": {
"values": {
"worker.count": 33
}
}
},
"network": {
"Wireless-WPA2-PSK-DHCP": {
"autoconnectPriority": 40,
"ipv4": {
"method": "auto"
},
"wireless": {
"ssid": "my-network",
"security": {
"password": "secret-password",
"keyManagement": "wpa-psk"
}
}
}
},
"time": {
"ntp": {
"backup": "pool.ntp.org",
"server": "ntp.ubuntu.com"
},
"zone": "America/Los_Angeles"
}
}
On successful processing of GatewayConfig
GatewayConfig sent, but Gateway appears offline, so it might not have worked
Error reading request body, Gateway doesn't exist, config data invalid, or gateway is assigned to a site
Unauthorized
Gateway or Apps not found
Error sending Config to Gateway
GET /gateways/{serial}/configuration
Gets the Gateway's current configuration
The Gateway's unit serial number
A set of Gateway configurations
Unauthorized
Gateway not found
Unexpected error
Response Example (200 OK)
{
"configurations": [
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
]
}
PUT /gateways/{serial}/eapmode
Sends a configuration to a Gateway to enable or disable EAP Mode ("Early Access Program").
Enabling or disabling EAP Mode may cause the Gateway to reboot multiple times over the course of up to an hour. IMPORTANT: Enabling EAP Mode on a Gateway with a cellular connection is likely to cause multiple large downloads on that connection.
The Gateway must be online in order to receive this command.
In EAP mode, a gateway will automatically periodically update its system snaps (core, cascade-kernel, etc). Gateways in this mode will also switch the channel these system snaps track. The default channel they will switch to is candidate
.
Whether the request enables or disables EAP mode is determined by the presence or absence of a field named enable
in the request body. If a field named enable
is present, and its value is true
, the request will enable EAP mode. If the request body does not include a field named enable
, or the value of that field is false
, the request will disable EAP mode. Note that a request with an empty request body {}
or a missing request body does not contain a field named enable
, and will disable EAP mode.
When enabling EAP mode, an optional channel
parameter in the request body can be used to specify the channel system snaps should track. Valid values are edge
, beta
and candidate
. Note that a value of stable
is disallowed. If the request body does not include the channel
parameter or includes the channel
parameter with the empty string as its value the channel defaults to candidate
.
When disabling EAP mode, the value of the channel
parameter, if provided, is ignored.
An object describing the EAP Mode settings
The Gateway's unit serial number
Request Example
{
"channel": "beta",
"enable": true
}
EAP Mode configuration successfully sent to Gateway
Error reading request body, Gateway offline, EAP Mode not supported on Gateway, or EAP Mode config invalid
Unauthorized
Gateway not found
Error sending Config to Gateway
PUT /gateways/{serial}/location
Updates Location of a Gateway
- location: string
-
The physical location of the gateway, as defined by the client
The Gateway's unit serial number
Request Example
{
"location": "string"
}
A Gateway object
Bad Request. Parameters not configured correctly
Unauthorized
Gateway not found
Error fetching, saving, or marshaling Gateway or Gateway metrics
Response Example (200 OK)
{
"alive": true,
"appsStatus": [
{
"channel": "edge",
"health": {
"code": "\"errorWaitAPIKey\"",
"message": "\"Waiting for API key\"",
"status": "okay",
"timestamp": "2020-05-05T23:47:39.474454697Z"
},
"installState": "string",
"name": "my-fancy-app",
"refresh": {
"downloadSize": 5337088,
"revision": "133",
"version": "3.3.1"
},
"revision": "130",
"status": "enabled",
"version": "3.2.99z"
}
],
"configurations": {
"configurations": [
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
]
},
"connections": [
{
"active": true,
"interface": "eth0",
"ip": "192.168.30.150",
"name": "acme-wifi",
"primary": true,
"ssid": "ACME Node 4 5GHz"
}
],
"eapModeChannel": "string",
"health": true,
"interfaceHealth": true,
"interfaces": [
{
"cell": {
"apn": "vzwinternet",
"imei": "861108034511146",
"phoneNumber": "+19715999705",
"sim": "89148000003237460246"
},
"interfaceType": "ethernet",
"ips": [
"192.168.30.150"
],
"mac": "51:5b:c3:2f:94:43",
"mtu": 1500,
"name": "eth0"
}
],
"lastCheckedIn": "string",
"lastMetrics": {
"cpu": {
"load15min": "1.20",
"load1hr": "2.04",
"load1min": "0.87",
"percent": 32.45
},
"disk": {
"available": 6640248,
"used": 358400
},
"endedAt": "2018-08-09T00:15:02Z",
"freq": "integer (int64)",
"interfaces": [
{
"interface": "eth0",
"ips": [
"string"
],
"received": 1233,
"rssi": -51,
"sent": 32
}
],
"memory": {
"available": 385584,
"buffers": 47276032
}
}
}
GET /gateways/{serial}/logs
Responds with the list of current gateway log requests
The Gateway's unit serial number
A an array of GatewayLogRequest
Unauthorized
Gateway not found
Error writing response
Response Example (200 OK)
{
"gatewayLogRequests": [
{
"created": "2018-08-09T00:15:02Z",
"id": "1d23c456-f782-9a6c-9105-29c61eee8ab4",
"logType": "last100",
"logsReceived": "2018-08-09T01:16:02Z",
"serial": "C123456789-00000",
"status": "ready",
"unit": "snap.rigado-deviceops.service.service",
"updated": "2018-08-09T01:15:02Z"
}
]
}
POST /gateways/{serial}/logs
Creates a request for Logs from a Gateway
- logType: string
-
One of "all" (all available lines in the log, up to 50MB), "last100" (last 100 lines), or "lastHour" (last hour, default)
- unit: string
-
The system unit to request logs for. Empty string returns all logs.
The serial of the Gateway to request logs from
Request Example
{
"logType": "string",
"unit": "string"
}
GatewayLogRequest created successfully
Unauthorized
Gateway not found
Error requesting logs or saving or marshaling GatewayLogRequest
Response Content-Types: application/json
Response Example (201 Created)
{
"created": "2018-08-09T00:15:02Z",
"id": "1d23c456-f782-9a6c-9105-29c61eee8ab4",
"logType": "last100",
"logsReceived": "2018-08-09T01:16:02Z",
"serial": "C123456789-00000",
"status": "ready",
"unit": "snap.rigado-deviceops.service.service",
"updated": "2018-08-09T01:15:02Z"
}
GET /gateways/{serial}/logs/{requestId}
Responds with the file data corresponding to the gateway log request ID
The Gateway's unit serial number
The log request ID generated when requesting logs
The log request has been processed and logs are available. Raw log data is returned.
The log request has been accepted and is still processing. Logs are not available yet.
Unauthorized
Gateway or log request ID not found
Error writing response
GET /gateways/{serial}/metrics
Responds with an array of GatewayMetrics each representing one minute of the last 24 hours
The Gateway's unit serial number
A an array of GatewayMetrics
Unauthorized
Gateway not found
Error marshaling Gateway response
Response Example (200 OK)
{
"metrics": [
{
"cpu": {
"load15min": "1.20",
"load1hr": "2.04",
"load1min": "0.87",
"percent": 32.45
},
"disk": {
"available": 6640248,
"used": 358400
},
"endedAt": "2018-08-09T00:15:02Z",
"freq": "integer (int64)",
"interfaces": [
{
"interface": "eth0",
"ips": [
"string"
],
"received": 1233,
"rssi": -51,
"sent": 32
}
],
"memory": {
"available": 385584,
"buffers": 47276032,
"cached": 179704,
"free": 177880,
"total": "integer (int64)"
},
"received": "2018-08-09T00:15:02Z",
"serial": "C123456789-00000",
"startedAt": "2018-08-09T00:15:02Z",
"timestamp": "2018-08-09T00:15:02Z",
"upSince": "2018-08-09T00:15:02Z"
}
]
}
POST /gateways/{serial}/network-reset
Sends a network-reset request to a Gateway
The serial of the Gateway to reset the network of
Will override a closed maintenance window
OK
Unauthorized
Error sending reboot request
POST /gateways/{serial}/reboot
Sends a reboot request to a Gateway
The serial of the Gateway to reboot
Will override a closed maintenance window
OK
Unauthorized
Error sending reboot request
apps
GET /apps
Returns a list of Apps
A list of Apps
Unauthorized
Error fetching or marshaling Apps
Response Example (200 OK)
{
"apps": [
{
"description": "This app is wonderful",
"managed": false,
"name": "my-fancy-app",
"releaseStatus": {
"beta": 3,
"candidate": 2,
"edge": 0,
"stable": 1
},
"summary": "Performs basic app functions"
}
]
}
POST /apps
Creates an App
- dryRun: boolean
-
if dryRun is true, just test for availability of the app name
- name: string
-
unique name of the new app
Request Example
{
"dryRun": "boolean",
"name": "string"
}
A successful response if the request was a dryRun
App created successfully
Unauthorized
Organization not found
Error registering app name, or saving or marshaling AppRevision
Response Content-Types: application/json
Response Example (201 Created)
{
"description": "This app is wonderful",
"managed": false,
"name": "my-fancy-app",
"releaseStatus": {
"beta": 3,
"candidate": 2,
"edge": 0,
"stable": 1
},
"summary": "Performs basic app functions"
}
GET /apps/{name}
Returns an App
unique name of the app
App
Unauthorized
App not found
Error fetching or marshaling Apps
Response Example (200 OK)
{
"description": "This app is wonderful",
"managed": false,
"name": "my-fancy-app",
"releaseStatus": {
"beta": 3,
"candidate": 2,
"edge": 0,
"stable": 1
},
"summary": "Performs basic app functions"
}
apprevisions
GET /apps/revisions
Returns a list of AppRevisions
A list of AppRevisions
Unauthorized
Error fetching or marshaling App Revisions
Response Example (200 OK)
{
"appRevisions": [
{
"architecture": "armhf",
"binaryFileSize": 10242342,
"channels": [
{
"channel": "stable",
"released": true
}
],
"created": "2018-08-09T00:15:02Z",
"name": "my-great-app",
"organization": "1d23c456-f782-9a6c-9105-29c61eee8ab4",
"revision": "33",
"updated": "2018-08-09T01:15:02Z",
"version": "1.0.1"
}
]
}
GET /apps/snaps/revisions
Returns a list of SnapRevisions
if true, clear cache and return fresh snap revisions for organization
A list of SnapRevisions
Unauthorized
Error fetching or marshaling Snap Revisions
Response Example (200 OK)
{
"snapRevisions": {
"cascade-kernel": {
"beta": 102,
"candidate": 101,
"edge": 103,
"stable": 100
},
"core": {
"beta": 102,
"candidate": 101,
"edge": 103,
"stable": 100
}
}
}
GET /apps/{name}/revisions/{revision}
Returns an AppRevision
The App name
The Revision number
An AppRevision
Unauthorized
App revision not found
Error fetching or marshaling App Revision
Response Example (200 OK)
{
"architecture": "armhf",
"binaryFileSize": 10242342,
"channels": [
{
"channel": "stable",
"released": true
}
],
"created": "2018-08-09T00:15:02Z",
"name": "my-great-app",
"organization": "1d23c456-f782-9a6c-9105-29c61eee8ab4",
"revision": "33",
"updated": "2018-08-09T01:15:02Z",
"version": "1.0.1"
}
POST /apps/{name}/revisions/{revision}
Releases an AppRevision to Channels
- channels: string[]
-
The channels to release the App to
-
string
The App name
The AppRevision number
Request Example
{
"channels": [
"string"
]
}
An AppRevision object
Invalid revision, app is managed by another organization, or missing or invalid channels parameter
Unauthorized
Organization, App, or App Revision not found
Error fetching App, fetching or marshaling Gateways, or saving or releasing AppRevision
Response Example (200 OK)
{
"architecture": "armhf",
"binaryFileSize": 10242342,
"channels": [
{
"channel": "stable",
"released": true
}
],
"created": "2018-08-09T00:15:02Z",
"name": "my-great-app",
"organization": "1d23c456-f782-9a6c-9105-29c61eee8ab4",
"revision": "33",
"updated": "2018-08-09T01:15:02Z",
"version": "1.0.1"
}
auth
POST /auth/domain
Responds with provider name for given provider ID (domain) or with error if such provider not registered in the ED system
- domain: string
-
provider id (also known as domain)
Request Example
{
"domain": "string"
}
provider name
incorrect domain name
domain is not registered
Error marshaling result
Response Example (200 OK)
"string"
bundles
GET /bundles
Returns a list of Bundles
A list of Bundles
Unauthorized
Error fetching or marshaling Bundles
Response Example (200 OK)
{
"bundles": [
{
"apps": [
{
"channel": "stable",
"name": "my-fancy-app"
}
],
"description": "Midwest Region",
"id": "9923c456-f782-9a6c-9105-29c61eee8ab4",
"name": "Midwest",
"organization": "3423c456-f782-9a6c-9105-29c61eee8ab4",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
]
}
]
}
POST /bundles
Creates a Bundle
- description: string
-
The description of the Bundle
- name: string
-
The name of the Bundle to create
Request Example
{
"description": "string",
"name": "string"
}
A Bundle object
Missing parameters, or Bundle already exists
Unauthorized
Error saving, fetching, or marshaling Bundle
Response Example (200 OK)
{
"apps": [
{
"channel": "stable",
"name": "my-fancy-app"
}
],
"description": "Midwest Region",
"id": "9923c456-f782-9a6c-9105-29c61eee8ab4",
"name": "Midwest",
"organization": "3423c456-f782-9a6c-9105-29c61eee8ab4",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
]
}
PUT /bundles/{name}
Updates the Apps for a Bundle
An object describing what to update in the Bundle
The name of the Bundle to update
Request Example
{
"apps": [
{
"channel": "stable",
"name": "my-fancy-app"
}
],
"description": "Southwest Region",
"name": "Southwest",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
]
}
A Bundle object
Error reading request body, Bundle already exists, Bundle name invalid, vendor not supported, duplicate App, duplicate Tag
Unauthorized
Bundle, App, or Tag not found
Error saving or fetching Bundle, App or Tag
Response Example (200 OK)
{
"apps": [
{
"channel": "stable",
"name": "my-fancy-app"
}
],
"description": "Midwest Region",
"id": "9923c456-f782-9a6c-9105-29c61eee8ab4",
"name": "Midwest",
"organization": "3423c456-f782-9a6c-9105-29c61eee8ab4",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
]
}
DELETE /bundles/{name}
Deletes a Bundle
The name of the Bundle to delete
Bundle deleted successfully
Unauthorized
Bundle not found
Error deleting Bundle
POST /bundles/{name}/apps
Assigns an App to a Bundle
- app: string
-
The name of the App to assign to the Bundle
- channel: string
-
The channel of the App to assign to the Bundle
The name of the Bundle to assign the App to
Request Example
{
"app": "string",
"channel": "string"
}
A Bundle object
Missing parameters
Unauthorized
App, Channel, or Bundle not found
Error saving, fetching or marshaling Bundle
Response Example (200 OK)
{
"apps": [
{
"channel": "stable",
"name": "my-fancy-app"
}
],
"description": "Midwest Region",
"id": "9923c456-f782-9a6c-9105-29c61eee8ab4",
"name": "Midwest",
"organization": "3423c456-f782-9a6c-9105-29c61eee8ab4",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
]
}
DELETE /bundles/{name}/apps/{app}
Removes an App from a Bundle
The name of the Bundle
The name of the App
A Bundle object
Unauthorized
App or Bundle not found
Internal Server Error
Response Example (200 OK)
{
"apps": [
{
"channel": "stable",
"name": "my-fancy-app"
}
],
"description": "Midwest Region",
"id": "9923c456-f782-9a6c-9105-29c61eee8ab4",
"name": "Midwest",
"organization": "3423c456-f782-9a6c-9105-29c61eee8ab4",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
]
}
configuration-variables
GET /configuration-variables/gateway/{serial}
Returns a list of GatewayConfigurationVariables
The Gateway's unit serial number
A list of GatewayConfigurationVariables
Missing parameters, or Gateway name not allowed
Unauthorized
Forbidden, organization does not support Sites feature
Gateway or Bundle not found
Error saving or fetching GatewayConfigurationVariable
Response Example (200 OK)
{
"configurationVariables": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
PUT /configuration-variables/gateway/{serial}
Updates a single GatewayConfigurationVariable
An object describing a GatewayConfigurationVariable being updated
The Gateway's unit serial number
Will override a closed maintenance window
Request Example
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
A GatewayConfigurationVariable object
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
Gateway not found
Error saving or fetching GatewayConfigurationVariable
Response Example (200 OK)
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
POST /configuration-variables/gateway/{serial}
Creates a single GatewayConfigurationVariable
An object describing a GatewayConfigurationVariable being created
The Gateway's unit serial number
Will override a closed maintenance window
Request Example
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
A GatewayConfigurationVariable object
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
Error saving or fetching Gateway, or in calculating dependencies
Response Example (200 OK)
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
POST /configuration-variables/gateway/{serial}/batch
Creates/Updates or Deletes several GatewayConfigurationVariables
An object describing a list of GatewayConfigurationVariables for update
The Gateway's unit serial number
Will override a closed maintenance window
Request Example
{
"create": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"delete": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"update": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
A GatewayConfigurationVariablesList object
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
Gateway not found
Error saving or fetching GatewayConfigurationVariable
Response Example (200 OK)
{
"configurationVariables": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
DELETE /configuration-variables/gateway/{serial}/{name}
Deletes a single GatewayConfigurationVariable
The Gateway's unit serial number
The GatewayConfigurationVariable's name
Will override a closed maintenance window
GatewayConfigurationVariable deleted successfully
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
GatewayConfigurationVariable not found
Error saving or fetching Gateway, or in calculating dependencies
POST /configuration-variables/organization
Creates a new OrganizationConfigurationVariable
An object describing an OrganizationConfigurationVariable being created
Request Example
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"usedBy": [
"string"
]
}
A OrganizationConfigurationVariable object
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
Error saving or fetching OrganizationConfigurationVariable, or in calculating dependencies
Response Example (200 OK)
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"usedBy": [
"string"
]
}
GET /configuration-variables/organization/
Returns a list of OrganizationConfigurationVariables
A list of OrganizationConfigurationVariables
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
Error saving or fetching OrganizationConfigurationVariables, or in calculating dependencies
Response Example (200 OK)
{
"configurationVariables": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"usedBy": [
"string"
]
}
]
}
DELETE /configuration-variables/organization/{name}
Deletes a single OrganizationConfigurationVariable
The OrganizationConfigurationVariable's name
OrganizationConfigurationVariable deleted successfully
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
Conflict
Error saving or fetching OrganizationConfigurationVariable, or in calculating dependencies
GET /configuration-variables/site/{siteName}
Returns a list of SiteConfigurationVariables
The name of the Site to get SiteConfigurationVariables for
A list of SiteConfigurationVariables
Missing parameters, or Site name not allowed
Unauthorized
Forbidden, organization does not support Sites feature
Site not found
Error saving or fetching SiteConfigurationVariable
Response Example (200 OK)
{
"configurationVariables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
PUT /configuration-variables/site/{siteName}
Updates a single SiteConfigurationVariable
An object describing a SiteConfigurationVariable being updated
The name of the Site to update SiteConfigurationVariable from
Will override a closed maintenance window
Request Example
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
A SiteConfigurationVariable object
Missing parameters, or Site name not allowed
Unauthorized
Forbidden, organization does not support Sites feature
Site not found
Error saving or fetching SiteConfigurationVariable
Response Example (200 OK)
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
POST /configuration-variables/site/{siteName}
Creates a new SiteConfigurationVariable
An object describing a SiteConfigurationVariable being created
The name of the Site to assign SiteConfigurationVariable to
Will override a closed maintenance window
Request Example
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
A SiteConfigurationVariable object
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
Error saving or fetching Site, or in calculating dependencies
Response Example (200 OK)
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
POST /configuration-variables/site/{siteName}/batch
Creates/Updates or Deletes several GatewayConfigurationVariables
An object describing a list of SiteConfigurationVariables for update
The name of the Site to create/update/delete SiteConfigurationVariable from
Will override a closed maintenance window
Request Example
{
"create": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"delete": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"update": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
A SiteConfigurationVariablesList object
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
Site not found
Error saving or fetching SiteConfigurationVariable
Response Example (200 OK)
{
"configurationVariables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
DELETE /configuration-variables/site/{siteName}/{name}
Deletes a single SiteConfigurationVariable
The name of the Site to delete SiteConfigurationVariable from
The SiteConfigurationVariable's name
Will override a closed maintenance window
SiteConfigurationVariable deleted successfully
Missing parameters
Unauthorized
Forbidden, organization does not support Sites feature
SiteConfigurationVariable not found
Error saving or fetching SiteConfigurationVariable, or in calculating dependencies
configurations
GET /configurations
Responds with an array of ConfigurationStates based on the query parameters provided
The Gateway's unit serial number
if true, include the most recent DesiredConfiguration object for each Gateway; must be true if type is not provided
the type of configuration to be retrieved
A list of ConfigurationStates
Unauthorized
Gateway not found
Error marshaling response
Response Example (200 OK)
{
"configurations": [
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
]
}
POST /configurations
Sends configuration data to a Gateway
An object describing the configuration for a Gateway. A configuration for network settings cannot include configurations for the connection default-ethernet-dhcp
.
The Gateway's unit serial number
If true, just performs simple validation of the form of provided settings
Request Example
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
Configuration successfully handled for Gateway
Configuration sent to non-stateful Gateway. Gateway appears offline, so it might not have worked
Error reading request body, or config data invalid, configuration feature not supported on Gateway or for Org, or Gateway is in a Site
Unauthorized
Gateway or Apps not found
Error managing Config for Gateway
device
GET /devices-lookup/mac/{mac}
Returns a Device Lookup entry corresponding to a specified MAC address
The Device's MAC address
A single Device
Parameter is bad
Unauthorized
Device not found
Error marshaling Device response
Response Example (200 OK)
{
"deviceType": "string",
"mac": "string",
"serial": "E2O84402070,TSPR03"
}
Returns a Device Lookup entry corresponding to a specified serial number.
The Device's serial number
A single Device
Parameter is bad
Unauthorized
Device not found
Error marshaling Device response
Response Example (200 OK)
{
"deviceType": "string",
"mac": "string",
"serial": "E2O84402070,TSPR03"
}
GET /devices/{deviceID}
Returns the device associated with the requested device ID
The Device ID (commonly the MAC address)
the specific GW that is reporting the device
A Single Device's Context
Bad Request
Unauthorized
Device not found
Response Example (200 OK)
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"device": {
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
},
"props": [
{
"deviceID": "string",
"gateway": "string",
"lastUpdated": "string",
"name": "string",
"org": "string",
"value": "object"
}
],
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
devices
GET /devices/gateway/{serial}
Returns all devices seen by the specified gateway
The Gateway Serial
A Gateway's view of the devices it can see
Bad request
Unauthorized
Gateway not found
Response Example (200 OK)
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"gateway": "string",
"orgID": "string",
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
GET /devices/organization
Returns all devices seen by the org
An Organization's view of the devices it can see
Unauthorized
Org not found
Response Example (200 OK)
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"org": "string",
"orgID": "string",
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
GET /devices/site/{site}
Returns all devices seen at the specified Site
The Site
A Site's view of the devices it can see
Bad request
Unauthorized
Site not found
Response Example (200 OK)
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"orgID": "string",
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"site": "string",
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
download
GET /download
Returns an expiring URL to download a file
The file to download
A downloadable url
Unauthorized
file not found
Error generating download link
sites
GET /sites
Returns a list of Sites
if true, include all the current and scheduled configurations for this site
A list of Sites
Unauthorized
Forbidden, organization does not support Sites feature
Error
Response Example (200 OK)
{
"sites": [
{
"Variables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
],
"created": "string",
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"gateways": [
"string"
],
"gatewaysSummary": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"health": "boolean",
"offline": "integer (int64)",
"online": "integer (int64)",
"pending": "integer (int64)",
"unhealthy": [
"string"
]
},
"location": "\"Portland, OR, USA\"",
"maintenanceWindow": {
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
},
"name": "20th Floor",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
],
"timezone": "\"America/Los_Angeles\"",
"updated": "string",
"updatedBy": "string"
}
]
}
POST /sites
Creates a new Site
The Site to create
the name of the site to copy the Maintenance Window from
Request Example
{
"Variables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
],
"created": "string",
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"gateways": [
"string"
],
"gatewaysSummary": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"health": "boolean",
"offline": "integer (int64)",
"online": "integer (int64)",
"pending": "integer (int64)",
"unhealthy": [
"string"
]
},
"location": "\"Portland, OR, USA\"",
"maintenanceWindow": {
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
},
"name": "20th Floor",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
],
"timezone": "\"America/Los_Angeles\"",
"updated": "string",
"updatedBy": "string"
}
A single Site
Error reading request body, Site details invalid, or Site already exists
Unauthorized
Forbidden, organization does not support Sites feature
Site not found
Error
Response Example (200 OK)
{
"Variables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
],
"created": "string",
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"gateways": [
"string"
],
"gatewaysSummary": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"health": "boolean",
"offline": "integer (int64)",
"online": "integer (int64)",
"pending": "integer (int64)",
"unhealthy": [
"string"
]
},
"location": "\"Portland, OR, USA\"",
"maintenanceWindow": {
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
},
"name": "20th Floor",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
],
"timezone": "\"America/Los_Angeles\"",
"updated": "string",
"updatedBy": "string"
}
GET /sites/{name}
Returns a single Site
The Site's name
A single Site
Unauthorized
Forbidden, organization does not support Sites feature
Site not found
Error
Response Example (200 OK)
{
"Variables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
],
"created": "string",
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"gateways": [
"string"
],
"gatewaysSummary": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"health": "boolean",
"offline": "integer (int64)",
"online": "integer (int64)",
"pending": "integer (int64)",
"unhealthy": [
"string"
]
},
"location": "\"Portland, OR, USA\"",
"maintenanceWindow": {
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
},
"name": "20th Floor",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
],
"timezone": "\"America/Los_Angeles\"",
"updated": "string",
"updatedBy": "string"
}
Updates a single Site. Use this endpoint to update a Site's description,
gateway behavior, location, or timezone-location.
An object describing the update to perform on the Site
The Site's name
Request Example
{
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"location": "\"Portland, OR, USA\"",
"timezone": "string"
}
A single Site
Error reading request body, Site details invalid
Unauthorized
Forbidden, organization does not support Sites feature
Site not found
Error
Response Example (200 OK)
{
"Variables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
],
"created": "string",
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"gateways": [
"string"
],
"gatewaysSummary": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"health": "boolean",
"offline": "integer (int64)",
"online": "integer (int64)",
"pending": "integer (int64)",
"unhealthy": [
"string"
]
},
"location": "\"Portland, OR, USA\"",
"maintenanceWindow": {
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
},
"name": "20th Floor",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
],
"timezone": "\"America/Los_Angeles\"",
"updated": "string",
"updatedBy": "string"
}
DELETE /sites/{name}
Deletes a single Site
The Site's name
Verify marking all Gateways currently in the Site to be unassigned from it before deletion
Verify assigning all Gateways to a new Site before deletion
Site deleted successfully
Unauthorized
Forbidden, organization does not support Sites feature
Site not found
Error
GET /sites/{name}/configurations
Returns a list of SiteConfigurations
The Site's name
if true, include only the configurations currently applicable to gateways in the site
if true, include only the configurations that will be applied to gateways in the site at the next maintenance window
the type of configuration to be retrieved
A list of SiteConfigurations that are currently applied or scheduled to be applied in the next maintenance window
Missing parameters or unsupported configuration type requested
Unauthorized
Forbidden, organization does not support Sites feature
No SiteConfigurations found
Error
Response Example (200 OK)
{
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
]
}
PUT /sites/{name}/configurations
Creates a new SiteConfiguration
The Site's name
the type of configuration to be copied
the name of the site to copy the configuration of
Will override a closed maintenance window
A single SiteConfiguration
Missing parameters, requested or copy from site doesn't exist
Unauthorized
Forbidden, organization does not support Sites feature
Error
Response Example (200 OK)
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
POST /sites/{name}/configurations
Creates a new SiteConfiguration
The SiteConfiguration to create
The Site's name
Will override a closed maintenance window
Request Example
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
A single SiteConfiguration
Error reading request body, SiteConfiguration details invalid, Site doesn't exist
Unauthorized
Forbidden, organization does not support Sites feature
Error
Response Example (200 OK)
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
PUT /sites/{name}/configurations/reapply
Reapplies current configurations
The Site's name
Success
Missing parameters, requested or copy from site doesn't exist
Unauthorized
Forbidden, organization does not support Sites feature
Error
PUT /sites/{name}/gateways/{serial}
Assigns a Gateway to a Site
The Site name
The Gateway serial
Verify reassignment
Whether to 'add' or 'remove' the GW from the site
Gateway successfully added to Site
Gateway is already in the Site, Gateway's version of rigado-deviceops is too old to support Sites
Unauthorized
Forbidden, organization does not support Sites feature
Site or Gateway not found
Error saving Gateway
PUT /sites/{name}/maintenance-window
Updates a single Site's Maintenance Window. Use this endpoint to update a Site Maintenance Window's duration or cadence
The updated Maintenance Window to save
The Site's name
Request Example
{
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
}
A single Site
Error reading request body, Maintenance Window details invalid
Unauthorized
Forbidden, organization does not support Sites feature
Site not found
Error
Response Example (200 OK)
{
"Variables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
],
"created": "string",
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"gateways": [
"string"
],
"gatewaysSummary": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"health": "boolean",
"offline": "integer (int64)",
"online": "integer (int64)",
"pending": "integer (int64)",
"unhealthy": [
"string"
]
},
"location": "\"Portland, OR, USA\"",
"maintenanceWindow": {
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
},
"name": "20th Floor",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
],
"timezone": "\"America/Los_Angeles\"",
"updated": "string",
"updatedBy": "string"
}
tags
version
GET /version
Returns the version information for the server
VersionInfo
Error marshalling version info
Response Example (200 OK)
{
"buildTime": "string",
"environment": "string",
"gitHash": "string",
"versionNumber": "string"
}
whoami
GET /whoami
Responds with information about the authenticated API key or User
A WhoAmI object
Unauthorized
Organization Not Found
Error marshaling response
Response Example (200 OK)
{
"authenticatedBy": "[email protected]",
"organization": "example: 1d23c456-f782-9a6c-9105-29c61eee8ab4",
"organizationName": "Happy Corp."
}
Schema Definitions
App: object
Describes a unique Application, which can have many AppRevisions.
- description: string
-
Publisher provided description of the App, automatically pulled from the latest AppRevision
- managed: boolean
-
Indicates that this App is managed by an external publisher, and is unavailable for user provided updates
- name: string
-
Unique name of the App
- releaseStatus: AppReleaseStatus
- summary: string
-
Publisher provided summary of the App, automatically pulled from the latest AppRevision
Example
{
"description": "This app is wonderful",
"managed": false,
"name": "my-fancy-app",
"releaseStatus": {
"beta": 3,
"candidate": 2,
"edge": 0,
"stable": 1
},
"summary": "Performs basic app functions"
}
AppHealth: object
AppHealth describes the heath of a particular App on a Gateway
- code: string
-
Code - Machine readable string related to the error
- message: string
-
Message - String describing the state as set by the application
- status: string
-
Status - One of 'okay', 'waiting', 'blocked' or 'error'
- timestamp: string
-
Timestamp in UTC when the status was reported
Example
{
"code": "\"errorWaitAPIKey\"",
"message": "\"Waiting for API key\"",
"status": "okay",
"timestamp": "2020-05-05T23:47:39.474454697Z"
}
AppReleaseStatus: object
Describes which (if any) revisions are released on each of the four channels for this App.
- beta: integer (int64)
-
The revision released on the Beta channel for this app. 0 if no released revision
- candidate: integer (int64)
-
The revision released on the Candidate channel for this app. 0 if no released revision
- edge: integer (int64)
-
The revision released on the Edge channel for this app. 0 if no released revision
- stable: integer (int64)
-
The revision released on the Stable channel for this app. 0 if no released revision
Example
{
"beta": 3,
"candidate": 2,
"edge": 0,
"stable": 1
}
AppRevision: object
Represents a particular revision/version of an App; a distinct binary upload. The revision ID is system generated, while the version is publisher provided.
- architecture: string
-
Architecture of the binary associated with this AppRevision
- binaryFileSize: integer (int64)
-
Binary file size in bytes
- channels: ChannelReleaseStatus
-
Channels that this AppRevision was released to
-
ChannelReleaseStatus - created: string
-
Time the AppRevision was created
- name: string
-
The unique name of the App
- organization: string
-
Deprecated: UUID of the organization that this AppRevision belongs to
- revision: string
-
A system generated (auto-incremented) ID
- updated: string
-
Time the AppRevision was last updated
- version: string
-
Version of this AppRevision (provided by the App publisher)
Example
{
"architecture": "armhf",
"binaryFileSize": 10242342,
"channels": [
{
"channel": "stable",
"released": true
}
],
"created": "2018-08-09T00:15:02Z",
"name": "my-great-app",
"organization": "1d23c456-f782-9a6c-9105-29c61eee8ab4",
"revision": "33",
"updated": "2018-08-09T01:15:02Z",
"version": "1.0.1"
}
AppToInstall: object
Describes an App and Channel combination that a Gateway installs.
- channel: string
-
Channel of the App to install
- name: string
-
Name of the App to install
Example
{
"channel": "stable",
"name": "my-fancy-app"
}
ApplyError: object
ApplyError represents the timestamp and error message from an error resulting from an attempt to apply a config
- message: string
- occurred: integer (int64)
- source: string
Example
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
AuditTrail: object
- action: string
- actor: string
-
The user/client/impersonator or service that initiated the action
- category: string
- errorDetails: string
- maintenanceWindowOverride: boolean
- metadata: object
-
Represent audit trail defails for example version and type of a new configuration, serials of affected gateways, site name, change requested for a maintenance window or tag, app name, etc.
- organization: string
- subCategory: string
- targetID: string
- triggeredAt: string
-
time.RFC3339
Example
{
"action": "string",
"actor": "string",
"category": "string",
"errorDetails": "string",
"maintenanceWindowOverride": "boolean",
"metadata": "object",
"organization": "3423c456-f782-9a6c-9105-29c61eee8ab4",
"subCategory": "string",
"targetID": "string",
"triggeredAt": "string"
}
AuditTrailList: object
SiteConfigurationsList represents a list of Site Configurations
- auditTrail: AuditTrail
-
AuditTrail
Example
{
"auditTrail": [
{
"action": "string",
"actor": "string",
"category": "string",
"errorDetails": "string",
"maintenanceWindowOverride": "boolean",
"metadata": "object",
"organization": "3423c456-f782-9a6c-9105-29c61eee8ab4",
"subCategory": "string",
"targetID": "string",
"triggeredAt": "string"
}
]
}
Bundle: object
Represents a bundle of Apps to apply to Gateways that have specific Tags.
- apps: AppToInstall
-
List of Apps to install on the Gateways that match this Bundle's Tags
-
AppToInstall - description: string
-
User provided description of this Bundle
- id: string
-
The unique ID (UUID) of the Bundle
- name: string
-
Friendly name of the Bundle. Names must have fewer than 32 characters, and must not have any special characters.
- organization: string
-
Deprecated: Unique ID (UUID) of the Organization that this Bundle belongs to
- tags: Tag
-
List of Tags to use to match Gateways to this Bundle
-
Tag
Example
{
"apps": [
{
"channel": "stable",
"name": "my-fancy-app"
}
],
"description": "Midwest Region",
"id": "9923c456-f782-9a6c-9105-29c61eee8ab4",
"name": "Midwest",
"organization": "3423c456-f782-9a6c-9105-29c61eee8ab4",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
]
}
BundleUpdate: object
Describes an update to a Bundle.
- apps: AppToInstall
-
Apps is the list of Apps to install on the Gateways that match this Bundle's Tags
-
AppToInstall - description: string
-
New description for this Bundle
- name: string
-
New friendly name for this Bundle
- tags: Tag
-
Tags is the list of Tags to use to match Gateways to this Bundle
-
Tag
Example
{
"apps": [
{
"channel": "stable",
"name": "my-fancy-app"
}
],
"description": "Southwest Region",
"name": "Southwest",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
]
}
CPUMetrics: object
A 1 minute sample of CPU metrics for a Gateway.
- load15min: string
-
The 15 minute load average
- load1hr: string
-
The 1 hour load average
- load1min: string
-
The 1 minute load average
- percent: number (double)
-
CPU usage as percentage
Example
{
"load15min": "1.20",
"load1hr": "2.04",
"load1min": "0.87",
"percent": 32.45
}
Cadence: object
Cadence represents the parameters of a regularly-occurring event
- dayOfMonth: integer (int64) 1 ≤ x ≤ 28
-
Day of the month, just for Quarterly and Monthly cadences, when WeekOfMonth and DayOfWeek are NOT used.
- dayOfWeek: integer (int64) 1 ≤ x ≤ 7
-
Day of the week, for all cadence types except Ongoing. If used for Monthly or Quarterly, requires the use of WeekOfMonth and is mutually exclusive of DayOfMonth. A 1 denotes Sunday.
- description: string
-
A short description of the cadence, computed from its other values
- hourOfDay: integer (int64) 0 ≤ x ≤ 23
-
Hour of the day, in UTC time.
- label: string
-
The type of cadence
- monthOfQuarter: integer (int64) 1 ≤ x ≤ 3
-
Month of quarter, 1 = Jan/April/July/Oct, 2 = Feb/May/Aug/Nov, etc.
- weekOfMonth: integer (int64) 1 ≤ x ≤ 4
-
Week of the month, just for Quarterly and Monthly cadences. Requires the use of DayOfWeek, and mutually exclusive of DayOfMonth.
Example
{
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
}
ChannelReleaseStatus: object
Describes release of a revision to a particular Channel.
- channel: string
-
Channel that the AppRevision was released to
- released: boolean
-
True if the corresponding AppRevision is currently the release at the head of the channel, and therefore would be installed on Gateways subscribing to that channel
Example
{
"channel": "stable",
"released": true
}
ConfigurationState: object
Describes a configuration request to a gateway. There are different configuration types, such as NETWORK and TIME.
- errors: ApplyError
-
Errors, if any, resulting from attempts to apply the configurations on the gateway. Reported for the most recent configuration request made of a given type for a gateway.
-
ApplyError - meta: string
-
Meta detail relevant to the most recent desired configuration request Only applicable to NETWORK type configurations Valid values are "MANUALLY_RESET", which means a manual reset triggered on the hardware reset all previous network configs, and "APPLY_AFTER_RESET", which indicates that a new complete NETWORK configuration is being requested after a manual reset. This allows for the resubmission of the last requested config without change
- settings: Settings
- state: State
- type: ConfigRequest
- updated: string
-
The time this configuration request was last modified. Reported for the most recent configuration request made of a given type for a gateway. Reported in UTC in RFC3339 format.
- version: integer (int64)
-
Desired Config Version Number of the configuration
Example
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
ConfigurationStatesList: object
- configurations: ConfigurationState
-
ConfigurationState
Example
{
"configurations": [
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
]
}
ConfigurationStatusTally: object
This only applies to SiteConfigurations where Current is true.
- applied: integer (int64)
- errored: integer (int64)
- pending: integer (int64)
Example
{
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
}
Device: object
Device represents an instance of a Bluetooth device as reported by a gateway
- Assigned: boolean
- advInterval: integer (int64)
- errors: ErrorWithTime
-
ErrorWithTime - firstSeen: string
- gateway: string
- groups: string[]
-
string - health: string
- id: string
- lastAdv: object
- lastRSSI: integer (int64)
- lastSeen: string
- lastUpdated: string
- mac: string
- org: string
- presence: string
- site: string
- smoothedRSSI: integer (int64)
- snapshotInterval: string
- type: string
Example
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
DeviceContext: object
DeviceContext represents the context of a single device, with a single instance as well as other places the GW is assigned or seen
- assigned: Device
-
Device - device: Device
- props: DeviceProp
-
DeviceProp - seen: Device
-
Device - stats: DevicesStats
Example
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"device": {
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
},
"props": [
{
"deviceID": "string",
"gateway": "string",
"lastUpdated": "string",
"name": "string",
"org": "string",
"value": "object"
}
],
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
DeviceLookup: object
DeviceLookup represents a DeviceLookup Lookup entry - a mapping of MAC address to serial number and vice-versa.
- deviceType: string
-
The type of the device (sensor) such as RS40 or similar
- mac: string
-
MAC address of the device. Follows standard MAC address formatting and furthermore is lowercase and without colons.
- serial: string
-
Serial number of the device (sensor). The following schema applies: is 18 characters in total starts with E2O or SCAS which is followed by numbers ends with ,TSPR03
Example
{
"deviceType": "string",
"mac": "string",
"serial": "E2O84402070,TSPR03"
}
DeviceProp: object
- deviceID: string
- gateway: string
- lastUpdated: string
- name: string
- org: string
- value: object
Example
{
"deviceID": "string",
"gateway": "string",
"lastUpdated": "string",
"name": "string",
"org": "string",
"value": "object"
}
DevicesContext: object
- assigned: Device
-
Device - seen: Device
-
Device - stats: DevicesStats
Example
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
DevicesStats: object
- fail: integer (uint64)
- ok: integer (uint64)
- seen: integer (uint64)
- warn: integer (uint64)
Example
{
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
DiskMetrics: object
A 1 minute sample of Disk metrics for a Gateway.
- available: integer (int64)
-
Available disk space in KB
- used: integer (int64)
-
Used disk space in KB
Example
{
"available": 6640248,
"used": 358400
}
ErrorWithTime: object
- error: string
- tag: string
- time: string (date-time)
Example
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
GWDevicesContext: object
GWDevicesContext represents the device context for a single gateway. It includes all devices that are assigned and seen
- assigned: Device
-
Device - gateway: string
- orgID: string
- seen: Device
-
Device - stats: DevicesStats
Example
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"gateway": "string",
"orgID": "string",
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
Gateway: object
Represents a physical Gateway device.
- alive: boolean
-
Describes whether this Gateway has checked in recently and is considered to be alive
- appsStatus: GatewayAppStatus
-
List of Apps installed on this Gateway
-
GatewayAppStatus - configurations: ConfigurationStatesList
- connections: GatewayNetworkConnection
-
List of network connections this Gateway has
-
GatewayNetworkConnection - eapModeChannel: string
-
The channel a Gateway is tracking during EAP Mode (Early Access Program). If this field is not present in the Gateway object, the Gateway is not in EAP Mode.
- health: boolean
-
Describes whether this Gateway is healthy according to health of all it's parts
- interfaceHealth: boolean
-
Describes whether this Gateway has hci1 interface and it is up
- interfaces: GatewayNetworkInterface
-
List of network interfaces this Gateway has
-
GatewayNetworkInterface - lastCheckedIn: string
-
When a gateway last sent a checkin message
- lastMetrics: GatewayMetrics
- location: string
-
Physical location of the Gateway as described by a user
- metadata: object
-
Metadata about the Gateway, in key/value pair form
- orgName: string
-
The name of the Organization that this gateway belongs to
- organization: string
-
Deprecated: Unique ID (UUID) of the Organization that this Gateway belongs to
- pipelineHealth: GatewayPipelineHealth
- serial: string
-
Serial number of the Gateway
- site: string
-
The name of the site this gateway is in, if any
- siteTags: Tag
-
The tags on the site this gateway is in
-
Tag - statefulConfigTypes: Type
-
A list of which specific config types are supported by the GW
-
Type - storeAccess: boolean
-
Whether this Gateway is able to connect to the store identified by storeId to access Apps
- storeId: string
-
The StoreID that this Gateway will install Apps from
- supportsStatefulConfig: boolean
-
Whether or not this gateway supports stateful configuration types
- tags: Tag
-
List of Tags attached to this Gateway
-
Tag - type: GWModel
- users: string[]
-
The users available for SSH access to the Gateway
-
string
Example
{
"alive": true,
"appsStatus": [
{
"channel": "edge",
"health": {
"code": "\"errorWaitAPIKey\"",
"message": "\"Waiting for API key\"",
"status": "okay",
"timestamp": "2020-05-05T23:47:39.474454697Z"
},
"installState": "string",
"name": "my-fancy-app",
"refresh": {
"downloadSize": 5337088,
"revision": "133",
"version": "3.3.1"
},
"revision": "130",
"status": "enabled",
"version": "3.2.99z"
}
],
"configurations": {
"configurations": [
{
"errors": [
{
"message": "string",
"occurred": "integer (int64)",
"source": "string"
}
],
"meta": "string",
"settings": {
"ConfigType": "string",
"Validate": "string"
},
"state": "string",
"type": "string",
"updated": "string",
"version": "integer (int64)"
}
]
},
"connections": [
{
"active": true,
"interface": "eth0",
"ip": "192.168.30.150",
"name": "acme-wifi",
"primary": true,
"ssid": "ACME Node 4 5GHz"
}
],
"eapModeChannel": "string",
"health": true,
"interfaceHealth": true,
"interfaces": [
{
"cell": {
"apn": "vzwinternet",
"imei": "861108034511146",
"phoneNumber": "+19715999705",
"sim": "89148000003237460246"
},
"interfaceType": "ethernet",
"ips": [
"192.168.30.150"
],
"mac": "51:5b:c3:2f:94:43",
"mtu": 1500,
"name": "eth0"
}
],
"lastCheckedIn": "string",
"lastMetrics": {
"cpu": {
"load15min": "1.20",
"load1hr": "2.04",
"load1min": "0.87",
"percent": 32.45
},
"disk": {
"available": 6640248,
"used": 358400
},
"endedAt": "2018-08-09T00:15:02Z",
"freq": "integer (int64)",
"interfaces": [
{
"interface": "eth0",
"ips": [
"string"
],
"received": 1233,
"rssi": -51,
"sent": 32
}
],
"memory": {
"available": 385584,
"buffers": 47276032,
"cached": 179704
}
}
}
GatewayAppRefresh: object
Describes information about the available update to an app.
- downloadSize: integer (int64)
-
The download size of the update, in bytes
- revision: string
-
The revision of the update
- version: string
-
The Version of the update
Example
{
"downloadSize": 5337088,
"revision": "133",
"version": "3.3.1"
}
GatewayAppStatus: object
Describes the status of a particular App on a Gateway.
- channel: string
-
Channel of the App that the Gateway is subscribed to for updates
- health: AppHealth
- installState: string
-
Deprecated: Install status of the app. Use Gateway Events endpoint instead.
- name: string
-
Name of the App
- refresh: GatewayAppRefresh
- revision: string
-
Revision of the App
- status: string
-
Information about whether the App is currently enabled or not. A value of "enabled" means the App is installed and active on the Gateway. A value of "disabled" means the App is installed on the Gateway but disabled.
- version: string
-
Version of the App
Example
{
"channel": "edge",
"health": {
"code": "\"errorWaitAPIKey\"",
"message": "\"Waiting for API key\"",
"status": "okay",
"timestamp": "2020-05-05T23:47:39.474454697Z"
},
"installState": "string",
"name": "my-fancy-app",
"refresh": {
"downloadSize": 5337088,
"revision": "133",
"version": "3.3.1"
},
"revision": "130",
"status": "enabled",
"version": "3.2.99z"
}
GatewayCellMetadata: object
GatewayCellMetadata represents the metadata for the cellular network connection on a Gateway Represents the cellular network interface on a Gateway
- apn: string
-
The APN (access point network) setting determines the connection between the gateway and the carrier's network and internet
- imei: string
-
The IMEI (international mobile equipment identity) identifies a mobile phone
- phoneNumber: string
-
The phone number of the mobile phone
- sim: string
-
The SIM as identified by a ICCID (integrated circuit card identifier)
Example
{
"apn": "vzwinternet",
"imei": "861108034511146",
"phoneNumber": "+19715999705",
"sim": "89148000003237460246"
}
GatewayConfig: object
Describes configuration for a gateway. Configuration of App settings, Networking, and Time is supported.
Each app has a set of key/value pairs that is sent to the configuration hook of the app on the Gateway. Note that these are not ordered lists, and could be processed in any order. If order is required, send multiple configuration requests.
Network configuration is provided in the pattern of Ubuntu Network Manager, but nested values are nested in JSON objects rather than with dot notation.
- apps: GatewayConfigApps
- network: GatewayConfigNetwork
- time: GatewayConfigTime
Example
{
"apps": {
"my-favorite-app": {
"values": {
"extra.logging.enabled": false,
"parameter.name": "important value",
"password": "abc12345"
}
},
"my-other-app": {
"values": {
"worker.count": 33
}
}
},
"network": {
"Wireless-WPA2-PSK-DHCP": {
"autoconnectPriority": 40,
"ipv4": {
"method": "auto"
},
"wireless": {
"ssid": "my-network",
"security": {
"password": "secret-password",
"keyManagement": "wpa-psk"
}
}
}
},
"time": {
"ntp": {
"backup": "pool.ntp.org",
"server": "ntp.ubuntu.com"
},
"zone": "America/Los_Angeles"
}
}
GatewayConfigApp: object
Contains a set of key-value pairs for configuring a single app. These key value pairs are sent to the Gateway, which sends these key value pairs to the application's configure hook.
- values: object
-
A map of of key value pairs that configure an app
Example
{
"values": {
"extra.logging.enabled": false,
"parameter.name": "important value",
"password": "abc12345"
}
}
GatewayConfigApps: object
Maps application names to their configuration, which is represented by a AppConfig object. See AppConfig for more information.
Example
{
"my-favorite-app": {
"values": {
"extra.logging.enabled": false,
"parameter.name": "important value",
"password": "abc12345"
}
},
"my-other-app": {
"values": {
"worker.count": 33
}
}
}
GatewayConfigNetwork: object
Maps a user provided unique ID for a connection to its configuration. Based on configuration of the Linux NetworkManager. Used for adding or modifying connections. The structure of the map is string keys mapped to NetworkConnection value objects. Each entry represents a uniquely named connection.
Example
{
"Wireless-WPA2-PSK-DHCP": {
"autoconnectPriority": 40,
"ipv4": {
"method": "auto"
},
"wireless": {
"ssid": "my-network",
"security": {
"password": "secret-password",
"keyManagement": "wpa-psk"
}
}
}
}
GatewayConfigNetworkCellular: object
Describes the configuration for cellular connections.
- apn: string
-
The access point name for cellular connection required: tru
- password: string
-
Password used for cellular authentication
- username: string
-
Username used for cellular authentication
Example
{
"apn": "apn1",
"password": "password",
"username": "username"
}
GatewayConfigNetworkConnection: object
Describes configuration for adding or modifying one network connection on a Gateway.
- autoconnectPriority: integer (int32)
-
The autoconnect priority. Connections with higher priority will be preferred. Defaults to 0. The higher number means higher priority.
- cellular: GatewayConfigNetworkCellular
- eap: GatewayConfigNetworkEAP
- ipv4: GatewayConfigNetworkIPv4
- wireless: GatewayConfigNetworkWireless
Example
{
"autoconnectPriority": 40,
"cellular": {
"apn": "apn1",
"password": "password",
"username": "username"
},
"eap": {
"identity": "username",
"method": [
"string"
],
"password": "password",
"phase1-fast-provisioning": "3 (string)",
"phase2auth": "mschapv2"
},
"ipv4": {
"dns": [
"8.8.8.8"
],
"mayFail": true,
"method": "manual",
"routeMetric": 1,
"staticAddress": {
"gateway": "192.168.1.1",
"ip": "192.168.1.118",
"subnetMask": "8"
}
},
"wireless": {
"band": "string",
"channel": "integer (uint32)",
"security": {
"keyManagement": "wpa-psk",
"password": "super-secret-123"
},
"ssid": "office-wifi-5GHz"
}
}
GatewayConfigNetworkEAP: object
Describes the configuration for Wi-Fi EAP connections.
- identity: string
-
Identity string for EAP authentication methods. Often the user's user or login name
- method: string[]
-
BETA - The allowed EAP methods to be used when authenticating to the network with 802.1x. Valid methods are: "leap", "md5", "tls", "peap", "ttls", "pwd", and "fast". This field is required if EAP config is provided.
-
string - password: string
-
Password used for EAP authentication methods
- phase1-fast-provisioning: string
-
Phase1FastProvisioning enables in-line provisioning of EAP-FAST credentials when FAST is specified as the EAP method. "0" (disabled), "1" (allow unauthenticated provisioning), "2" (allow authenticated provisioning), and "3" (allow both authenticated and unauthenticated provisioning).
- phase2auth: string
-
Specifies the allowed "phase 2" inner non-EAP authentication methods when an EAP method that uses an inner TLS tunnel is specified in the "eap" property. Recognized non-EAP "phase 2" methods are "pap", "chap", "mschap", "mschapv2", "gtc", "otp", "md5", and "tls". Each "phase 2" inner method requires specific parameters for successful authentication
Example
{
"identity": "username",
"method": [
"string"
],
"password": "password",
"phase1-fast-provisioning": "3 (string)",
"phase2auth": "mschapv2"
}
GatewayConfigNetworkIPv4: object
Describes the configuration for an IPv4 address
- dns: string[]
-
List of DNS servers. Optional.
-
string - mayFail: boolean
-
When true, allows overall network configuration to proceed even if the configuration specified by this property times out. Defaults to true.
- method: string
-
One of "auto", "manual", and "link-local".
- routeMetric: integer (int64)
-
The default metric for routes that don't explicitly specify a metric. The default value -1 means that the metric is chosen automatically based on the device type. The metric applies to dynamic routes, manual (static) routes that don't have an explicit metric setting, address prefix routes, and the default route. Supports values of -1 and 1-1024.
- staticAddress: GatewayConfigNetworkIPv4StaticAddress
Example
{
"dns": [
"8.8.8.8"
],
"mayFail": true,
"method": "manual",
"routeMetric": 1,
"staticAddress": {
"gateway": "192.168.1.1",
"ip": "192.168.1.118",
"subnetMask": "8"
}
}
GatewayConfigNetworkIPv4StaticAddress: object
Describes the configuration for an IPv4 Static IP address
- gateway: string
-
The Gateway IP address.
- ip: string
-
The IP address.
- subnetMask: string
-
The subnet mask in integer form.
Example
{
"gateway": "192.168.1.1",
"ip": "192.168.1.118",
"subnetMask": "8"
}
GatewayConfigNetworkWireless: object
Describes the configuration for the Wi-Fi interface.
- band: string
-
802.11 frequency band of the network. One of "a" for 5GHz 802.11a or "bg" for 2.4GHz 802.11. This will lock associations to the Wi-Fi network to the specific band, i.e. if "a" is specified, the device will not associate with the same network in the 2.4GHz band even if the network's settings are compatible.
- channel: integer (uint32)
-
Wireless channel to use for the Wi-Fi connection. The device will only join a Wi-Fi network on the specified channel. Because channel numbers overlap between bands, this property also requires the "band" property to be set.
- security: GatewayConfigNetworkWirelessSecurity
- ssid: string
-
SSID of the Wi-Fi network.
Example
{
"band": "string",
"channel": "integer (uint32)",
"security": {
"keyManagement": "wpa-psk",
"password": "super-secret-123"
},
"ssid": "office-wifi-5GHz"
}
GatewayConfigNetworkWirelessSecurity: object
Describes the configuration for Wi-Fi connection security.
- keyManagement: string
-
Key management used for the connection. One of "none" (WEP), "ieee8021x" (Dynamic WEP), "wpa-none" (Ad-Hoc WPA-PSK), "wpa-psk" (infrastructure WPA-PSK), or "wpa-eap" (WPA-Enterprise). This property must be set for any Wi-Fi connection that uses security. Defaults to "wpa-psk".
- password: string
-
Pre-Shared-Key for WPA networks. If the key is 64-characters long, it must contain only hexadecimal characters and is interpreted as a hexadecimal WPA key. Otherwise, the key must be between 8 and 63 ASCII characters (as specified in the 802.11i standard) and is interpreted as a WPA passphrase, and is hashed to derive the actual WPA-PSK used when connecting to the Wi-Fi network.
Example
{
"keyManagement": "wpa-psk",
"password": "super-secret-123"
}
GatewayConfigTime: object
Describes time configuration for a gateway. Enables setting NTP servers, as well as specifying the timezone of the gateway.
- ntp: GatewayConfigTimeNTP
- zone: string
-
A timezone string. Must be available in the tz database ( https://www.iana.org/time-zones)
Example
{
"ntp": {
"backup": "pool.ntp.org",
"server": "ntp.ubuntu.com"
},
"zone": "America/Los_Angeles"
}
GatewayConfigTimeNTP: object
Describes NTP server configuration for a gateway. Enables setting a preferred and a backup server.
- backup: string
-
The backup server to use
- server: string
-
The preferred server to use
Example
{
"backup": "pool.ntp.org",
"server": "ntp.ubuntu.com"
}
GatewayConfigurationVariable: object
- name: string
-
Name (key) of configuration variable
- sensitive: boolean
-
Whether the variable values are sensitive and therefore redacted
- type: string
-
Type of configuration variable (not modifiable)
- value: object
-
The value of the configuration variable. Should be a valid JSON object.
Example
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
GatewayConfigurationVariableBatchUpdate: object
- create: GatewayConfigurationVariable
-
Array of items that have to be added to the gateway
-
GatewayConfigurationVariable - delete: GatewayConfigurationVariable
-
Array of items that have to be deleted from the gateway
-
GatewayConfigurationVariable - update: GatewayConfigurationVariable
-
Array of items that have to be updated for the gateway
-
GatewayConfigurationVariable
Example
{
"create": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"delete": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"update": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
GatewayConfigurationVariablesList: object
- configurationVariables: GatewayConfigurationVariable
-
GatewayConfigurationVariable
Example
{
"configurationVariables": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
GatewayEAPModeConfig: object
Describes configuration for enabling EAP Mode for a Gateway.
- channel: string
-
The channel that system snaps should follow. Optional (default value "candidate")
- enable: boolean
-
Whether to enable or disable EAP Mode on the Gateway
Example
{
"channel": "beta",
"enable": true
}
GatewayError: object
Represents an error event a Gateway experienced.
- action: string
- error: string
Example
{
"action": "string",
"error": "string"
}
GatewayEvent: object
Represents an event that occurred on a Gateway, described by the Type & Subtype.
- data: object
-
The extra data associated with the event (specific to the event type)
- serial: string
-
The serial number of the Gateway
- subType: string
-
The subtype of event that occurred
- timestamp: string
-
The time the event occurred
- type: string
-
The type of event that occurred
Example
{
"data": "object",
"serial": "C123456789-00000",
"subType": "INSTALLED",
"timestamp": "2018-08-09T00:15:02Z",
"type": "APP_INSTALL_STATE"
}
GatewayLogRequest: object
Represents a request to fetch logs from a Gateway. After a log request is created, it needs to be monitored until logs are ready to download.
- created: string
-
Time the Log Request was created
- id: string
-
The Unique ID (UUID) of the Log Request
- logType: string
-
The type of log request; One of "all" (all available lines in the log, up to 50MB), "last100" (last 100 lines), or "lastHour" (last hour, default)
- logsReceived: string
-
Time that logs were received from the Gateway
- serial: string
-
Serial is the serial number of the Gateway
- status: string
-
Current status of the log request, one of "requested", "ready", or "error"
- unit: string
-
The software unit the Log Request is requesting logs for
- updated: string
-
Time the Log Request was last updated
Example
{
"created": "2018-08-09T00:15:02Z",
"id": "1d23c456-f782-9a6c-9105-29c61eee8ab4",
"logType": "last100",
"logsReceived": "2018-08-09T01:16:02Z",
"serial": "C123456789-00000",
"status": "ready",
"unit": "snap.rigado-deviceops.service.service",
"updated": "2018-08-09T01:15:02Z"
}
GatewayMetrics: object
A 1 minute sample of system metrics for a Gateway.
- cpu: CPUMetrics
- disk: DiskMetrics
- endedAt: string
-
Deprecated: the time metrics collection ended on the gateway
- freq: integer (int64)
-
Frequency represents the interval in seconds on which metrics are reported by the gateway
- interfaces: NetworkMetrics
-
Network Metrics for each network interface
-
NetworkMetrics - memory: MemoryMetrics
- received: string
-
Deprecated: The time metrics were received by the server
- serial: string
-
Serial number of the Gateway
- startedAt: string
-
Deprecated: the time metrics collection began on the gateway
- timestamp: string
-
Time that the metrics were captured on the Gateway
- upSince: string
-
Time representing the last boot time of the Gateway
Example
{
"cpu": {
"load15min": "1.20",
"load1hr": "2.04",
"load1min": "0.87",
"percent": 32.45
},
"disk": {
"available": 6640248,
"used": 358400
},
"endedAt": "2018-08-09T00:15:02Z",
"freq": "integer (int64)",
"interfaces": [
{
"interface": "eth0",
"ips": [
"string"
],
"received": 1233,
"rssi": -51,
"sent": 32
}
],
"memory": {
"available": 385584,
"buffers": 47276032,
"cached": 179704,
"free": 177880,
"total": "integer (int64)"
},
"received": "2018-08-09T00:15:02Z",
"serial": "C123456789-00000",
"startedAt": "2018-08-09T00:15:02Z",
"timestamp": "2018-08-09T00:15:02Z",
"upSince": "2018-08-09T00:15:02Z"
}
GatewayNetworkConnection: object
Represents a Gateway's network connection.
- active: boolean
-
Whether or not this connection is active on the Gateway
- interface: string
-
The interface this connection uses
- ip: string
-
The IP address last assigned to the Gateway using this connection
- name: string
-
The name of the connection
- primary: boolean
-
Whether or not this connection is primary on the Gateway
- ssid: string
-
The SSID of the Wi-Fi network (if applicable)
Example
{
"active": true,
"interface": "eth0",
"ip": "192.168.30.150",
"name": "acme-wifi",
"primary": true,
"ssid": "ACME Node 4 5GHz"
}
GatewayNetworkInterface: object
GatewayNetworkInterface represents a single network interface on a Gateway Represents a single network interface on a Gateway.
- cell: GatewayCellMetadata
- interfaceType: string
-
The friendly name of the type of interface
- ips: string[]
-
The IP addresses associated with the interface
-
string - mac: string
-
The MAC address of the interface
- mtu: integer (int64)
-
The MTU (maximum transmission unit) of the interface, in bytes
- name: string
-
The name of the interface
Example
{
"cell": {
"apn": "vzwinternet",
"imei": "861108034511146",
"phoneNumber": "+19715999705",
"sim": "89148000003237460246"
},
"interfaceType": "ethernet",
"ips": [
"192.168.30.150"
],
"mac": "51:5b:c3:2f:94:43",
"mtu": 1500,
"name": "eth0"
}
GatewayPipelineHealth: object
- cloudConnectors: object
-
Contains unhealthy cloud connectors if any
- health: string
- pipelines: object
-
Contains unhealthy pipelines if any
Example
{
"cloudConnectors": "object",
"health": "string",
"pipelines": "object"
}
MaintenanceWindow: object
MaintenanceWindow represents a MaintenanceWindow object
- cadence: Cadence
- durationMinutes: integer (int64)
-
Duration of MW in minutes
- nextOpening: string
-
The next opening of the maintenance window, as computed from its Cadence (in RFC3339 format)
- openNow: boolean
-
if the MW is open at the time the info is requested
Example
{
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
}
MemoryMetrics: object
A 1 minute sample of Memory metrics for a Gateway.
- available: integer (int64)
-
Available memory in KB
- buffers: integer (int64)
-
Memory used for buffers in KB
- cached: integer (int64)
-
Memory used for caches in KB
- free: integer (int64)
-
Free amount of memory in KB
- total: integer (int64)
-
Total amount of memory in KB
Example
{
"available": 385584,
"buffers": 47276032,
"cached": 179704,
"free": 177880,
"total": "integer (int64)"
}
NetworkMetrics: object
A 1 minute sample of metrics for a particular network interface on a Gateway.
- interface: string
-
Interface name
- ips: string[]
-
List of the IP addresses bound to this address
-
string - received: integer (int64)
-
KB received since boot or network reset
- rssi: integer (int64)
-
Received Signal Strength Indicator is the measure of the power present in the received radio signal
- sent: integer (int64)
-
KB sent since boot or network reset
Example
{
"interface": "eth0",
"ips": [
"string"
],
"received": 1233,
"rssi": -51,
"sent": 32
}
OrgDevicesContext: object
OrgDevicesContext represents the device context for an org. It includes all devices that are assigned and seen
- assigned: Device
-
Device - org: string
- orgID: string
- seen: Device
-
Device - stats: DevicesStats
Example
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"org": "string",
"orgID": "string",
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
OrganizationConfigurationVariable: object
- name: string
-
Name (key) of configuration variable
- sensitive: boolean
-
Whether the variable values are sensitive and therefore redacted
- type: string
-
Type of configuration variable should be either boolean, number, string, array, or object
- usedBy: string[]
-
A list of the names of the users of this configuration variable
-
string
Example
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"usedBy": [
"string"
]
}
OrganizationConfigurationVariablesList: object
- configurationVariables: OrganizationConfigurationVariable
-
OrganizationConfigurationVariable
Example
{
"configurationVariables": [
{
"name": "string",
"sensitive": "boolean",
"type": "string",
"usedBy": [
"string"
]
}
]
}
Site: object
Site represents a physical site where Gateways are installed. Sites are useful for managing the configurations and app deployments of many Gateways at once. A Site may be tagged with Site-level Tags, and all Gateways will inherit those tag values as if those Gateways were tagged.
- Variables: SiteConfigurationVariable
-
The configuration variables applied to the Site
-
SiteConfigurationVariable - configurations: SiteConfiguration
-
The current and scheduled configurations for the Site
-
SiteConfiguration - created: string
-
The creation time of this Site, formatted with RFC3339
- description: string
-
Description of the Site
- gatewayBehavior: SiteGatewayBehavior
- gateways: string[]
-
The Gateways in the Site
-
string - gatewaysSummary: SiteGatewaysSummary
- location: string
-
Informal description of the site's physical location
- maintenanceWindow: MaintenanceWindow
- name: string
-
The name of the Site. Site names must have fewer than 32 characters, and must not have any special characters.
- tags: Tag
-
The tags on the Site
-
Tag - timezone: string
-
The name of the timezone location of the site. Acceptable values are "UTC" or any string recognized by the IANA database.
- updated: string
-
The last time this Site was updated, formatted with RFC3339
- updatedBy: string
-
The last person to update this Site or its settings
Example
{
"Variables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
],
"created": "string",
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"gateways": [
"string"
],
"gatewaysSummary": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"health": "boolean",
"offline": "integer (int64)",
"online": "integer (int64)",
"pending": "integer (int64)",
"unhealthy": [
"string"
]
},
"location": "\"Portland, OR, USA\"",
"maintenanceWindow": {
"cadence": {
"dayOfMonth": "integer (int64)",
"dayOfWeek": "integer (int64)",
"description": "string",
"hourOfDay": "integer (int64)",
"label": "string",
"monthOfQuarter": "integer (int64)",
"weekOfMonth": "integer (int64)"
},
"durationMinutes": "integer (int64)",
"nextOpening": "string",
"openNow": "boolean"
},
"name": "20th Floor",
"tags": [
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
],
"timezone": "\"America/Los_Angeles\"",
"updated": "string",
"updatedBy": "string"
}
SiteConfiguration: object
Configuration of App Settings, Networking, and Time is supported.
- current: boolean
-
Whether the configuration is the one currently applicable to gateways in the site
- scheduled: boolean
-
Whether the configuration is the one that will be applied to gateways in the site during the next maintenance window
- settings: object
-
The actual configuration settings for the site. Communicated over the wire as standard JSON. May contain references to configuration variables.
- siteName: string
-
The name of the Site. Site names must have fewer than 32 characters, and must not have any special characters.
- status: ConfigurationStatusTally
- type: ConfigRequest
- version: integer (int64)
-
Version number of the configuration
Example
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
SiteConfigurationVariable: object
- name: string
-
Name (key) of configuration variable
- required: boolean
-
Is that variable required to be overridden on gateway level
- sensitive: boolean
-
Whether the variable values are sensitive and therefore redacted
- type: string
-
Type of configuration variable (not modifiable)
- value: object
-
Is a value required for each gateway in this site, defined either through a default value defined on the site or values defined on each gateway individually. Should be a valid JSON object.
Example
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
SiteConfigurationVariableBatchUpdate: object
- create: SiteConfigurationVariable
-
Array of items that have to be added to the site
-
SiteConfigurationVariable - delete: SiteConfigurationVariable
-
Array of items that have to be deleted from the site
-
SiteConfigurationVariable - update: SiteConfigurationVariable
-
Array of items that have to be updated for the site
-
SiteConfigurationVariable
Example
{
"create": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"delete": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
],
"update": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
SiteConfigurationVariablesList: object
- configurationVariables: SiteConfigurationVariable
-
SiteConfigurationVariable
Example
{
"configurationVariables": [
{
"name": "string",
"required": "boolean",
"sensitive": "boolean",
"type": "string",
"value": "object"
}
]
}
SiteConfigurationsList: object
SiteConfigurationsList represents a list of Site Configurations
- configurations: SiteConfiguration
-
SiteConfiguration
Example
{
"configurations": [
{
"current": "boolean",
"scheduled": "boolean",
"settings": "object",
"siteName": "20th Floor",
"status": {
"applied": "integer (int64)",
"errored": "integer (int64)",
"pending": "integer (int64)"
},
"type": "string",
"version": "integer (int64)"
}
]
}
SiteDevicesContext: object
SiteDevicesContext represents the device context for a site. It includes all devices that are assigned and seen
- assigned: Device
-
Device - orgID: string
- seen: Device
-
Device - site: string
- stats: DevicesStats
Example
{
"assigned": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"orgID": "string",
"seen": [
{
"Assigned": "boolean",
"advInterval": "integer (int64)",
"errors": [
{
"error": "string",
"tag": "string",
"time": "string (date-time)"
}
],
"firstSeen": "string",
"gateway": "string",
"groups": [
"string"
],
"health": "string",
"id": "string",
"lastAdv": "object",
"lastRSSI": "integer (int64)",
"lastSeen": "string",
"lastUpdated": "string",
"mac": "string",
"org": "string",
"presence": "string",
"site": "string",
"smoothedRSSI": "integer (int64)",
"snapshotInterval": "string",
"type": "string"
}
],
"site": "string",
"stats": {
"fail": "integer (uint64)",
"ok": "integer (uint64)",
"seen": "integer (uint64)",
"warn": "integer (uint64)"
}
}
SiteGatewayBehavior: object
- configureAfterMaintenanceWindow: boolean
Example
{
"configureAfterMaintenanceWindow": "boolean"
}
SiteGatewaysSummary: object
- applied: integer (int64)
-
The number of Gateways that have applied configs (excluding errors & pending)
- errored: integer (int64)
-
The number of Gateways that have errored configs (takes precedence over pending and applied configs)
- health: boolean
-
The resulting health status of all Gateways
- offline: integer (int64)
-
The number of Gateways that are currently offline
- online: integer (int64)
-
The number of Gateways that are currently online
- pending: integer (int64)
-
The number of Gateways that have pending configs (excluding errors)
- unhealthy: string[]
-
The list with serials of unhealthy Gateways
-
string
Example
{
"applied": "integer (int64)",
"errored": "integer (int64)",
"health": "boolean",
"offline": "integer (int64)",
"online": "integer (int64)",
"pending": "integer (int64)",
"unhealthy": [
"string"
]
}
SiteUpdate: object
- description: string
-
Description of the Site
- gatewayBehavior: SiteGatewayBehavior
- location: string
-
Site location
- timezone: string
-
The name of the timezone location of the site
Example
{
"description": "string",
"gatewayBehavior": {
"configureAfterMaintenanceWindow": "boolean"
},
"location": "\"Portland, OR, USA\"",
"timezone": "string"
}
SnapRevisions: object
Maps application names to channels and their revision numbers.
Example
{
"cascade-kernel": {
"beta": 102,
"candidate": 101,
"edge": 103,
"stable": 100
},
"core": {
"beta": 102,
"candidate": 101,
"edge": 103,
"stable": 100
}
}
Tag: object
Represents a key/value pair, to associate with a Bundle or Gateway.
- forSite: boolean
-
Whether the tag is for a Site
- key: string
-
The key of the Tag. Tag keys must have fewer than 32 characters, and must not have any special characters.
- value: string
-
The value of the Tag
Example
{
"forSite": "boolean",
"key": "Department",
"value": "Accounting"
}
VersionInfo: object
Information about the software that the API server is running.
- buildTime: string
- environment: string
- gitHash: string
- versionNumber: string
Example
{
"buildTime": "string",
"environment": "string",
"gitHash": "string",
"versionNumber": "string"
}
WhoAmI: object
Describes the currently authenticated session.
- authenticatedBy: string
-
Contains either the user email address or API token that has authenticated the current session
- organization: string
-
Deprecated: ID (UUID) of the Organization for the current session
- organizationName: string
-
The name of the Organization for the current session
Example
{
"authenticatedBy": "[email protected]",
"organization": "example: 1d23c456-f782-9a6c-9105-29c61eee8ab4",
"organizationName": "Happy Corp."
}