mirror of
https://github.com/Telecominfraproject/wlan-docs.git
synced 2025-11-07 22:23:11 +00:00
GitBook: [#1] No subject
This commit is contained in:
committed by
gitbook-bot
parent
97caf995c6
commit
a3dea0eaea
58
developer-resources/api/README.md
Normal file
58
developer-resources/api/README.md
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
description: OpenWiFi 2.0 SDK
|
||||
---
|
||||
|
||||
# SDK API
|
||||
|
||||
OpenWiFi services follow the OpenAPI 3.0 definition. The complete API is described here: [OpenWiFi SDK OpenAPI](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/master/openapi/owgw.yaml)
|
||||
|
||||
## Devices
|
||||
|
||||
OpenWiFi devices are Access Points or Switches (and other forms in the future), that support the uCentral configuration schema. Devices contact a controller using the uCentral protocol.
|
||||
|
||||
## Communication
|
||||
|
||||
The communication between the controller and the devices use the uCentral protocol. This protocol is defined in this [document](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/main/PROTOCOL.md).
|
||||
|
||||
## Device Configuration
|
||||
|
||||
A device is configured by ingesting a uCentral configuration. That configuration will be provided by the SDK Gateway as a result of a command through the API. Command processing occurs when the device's configuration is older than what is known in the SDK Gateway. The uCentral schema is a JSON document containing parameters to set on a particular device.
|
||||
|
||||
## SDK Gateway Communication
|
||||
|
||||
In order to speak to the Gateway, you must implement a client that uses the OpenAPI definition for the gateway. You can find its [definition here](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/main/openapi/ucentral/ucentral.yaml). You cannot talk to a device directly.
|
||||
|
||||
## API Basics
|
||||
|
||||
### Device `serialNumber`
|
||||
|
||||
Throughout the API, the `serialNumber` of the device is used as the key. The `serialNumber` is actual the MAC address of the device, without its `:`. The `serialNumber` is guaranteed to be unique worldwide. The device uses its serial number to identify itself to the controller.
|
||||
|
||||
### Device Configuration
|
||||
|
||||
The configuration can be supplied when the device is created. After the device is created, the only way to modify the configuration is by using the `/device/{serialNumber}/configure` endpoint. The Gateway maintains the versioning of the configuration through the use of a `uuid`. The Gateway maintains that number and will ignore anything your supply. The controller also does minimum validation on the configuration: it must be a valid JSON document and must have a `uuid` field which will be ignored.
|
||||
|
||||
### Device Capabilities
|
||||
|
||||
Device capabilities are uploaded to the Gateway when the device performs its initial connection. Capabilities tell the Gateway what the device is able to support. The Gateway uses this information to provide a configuration matched to the device type.
|
||||
|
||||
### Command Queue
|
||||
|
||||
The Gateway will send commands to the devices. These commands are kept in a table and are sent at the appropriate time or immediately when the device connects. For example, you could ask a device to change its configuration, however it might be unreachable. Upon next device connection, this configure command will be sent. The list of commands is retrieved using the `/commands` endpoint.
|
||||
|
||||
### Commands
|
||||
|
||||
Several commands maybe sent to a device: reboot, configure, factory reset, firmware upgrade, LEDs, trace, message request, etc. The API endpoint `/device/{serialNumber}/{command}` details all the available commands.
|
||||
|
||||
### Device Specific Collections
|
||||
|
||||
For each device, a number of collections are collected and kept in the database. Here's a brief list:
|
||||
|
||||
* `logs`: device specific logs are kept. A device amy also send something it wants added into its own logs. `crashlogs` are a special type of logs created after a device has had a hard crash.
|
||||
* `statistics`: statistics about the device. This is current la JSON document and will be documented at a later date.
|
||||
* `healthchecks`: periodically, a device will run a self-test and report its results. These includes anything that maybe going wrong with the current device configuration. A `sanity` level is associated to the degree of health of the device. 100 meaning a properly operating device.
|
||||
* `status`: tells you where the device is and how much data is used for protocol communication.
|
||||
|
||||
## The API is for an operator
|
||||
|
||||
This API is meant for an operator who would have to help a subscriber in configuring devices, reboot, manage firmware, etc.
|
||||
57
developer-resources/api/analytics-service.md
Normal file
57
developer-resources/api/analytics-service.md
Normal file
@@ -0,0 +1,57 @@
|
||||
# Analytics Service
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="undefined" method="undefined" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/board/{id}" method="get" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/board/{id}" method="post" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/board/{id}" method="delete" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/board/{id}" method="put" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/board/{id}/devices" method="get" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/board/{id}/timepoints" method="get" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/board/{id}/timepoints" method="delete" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/iptocountry" method="get" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/wifiClientHistory" method="get" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/wifiClientHistory/{client}" method="get" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/wifiClientHistory/{client}" method="delete" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/system" method="get" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owanalytics.yaml" path="/system" method="post" %}
|
||||
[owanalytics.yaml](../../.gitbook/assets/owanalytics.yaml)
|
||||
{% endswagger %}
|
||||
53
developer-resources/api/firmware-management-service.md
Normal file
53
developer-resources/api/firmware-management-service.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Firmware Management Service
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmwares" method="get" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmware/{id}" method="get" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmware/{id}" method="post" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmware/{id}" method="put" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmware/{id}" method="delete" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/revisionHistory/{serialNumber}" method="get" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/revisionHistory/{serialNumber}" method="delete" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/firmwareAge" method="get" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/connectedDevices" method="get" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/connectedDevice/{serialNumber}" method="get" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/deviceReport" method="get" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/system" method="get" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owfms.yaml" path="/system" method="post" %}
|
||||
[owfms.yaml](../../.gitbook/assets/owfms.yaml)
|
||||
{% endswagger %}
|
||||
189
developer-resources/api/gateway-service.md
Normal file
189
developer-resources/api/gateway-service.md
Normal file
@@ -0,0 +1,189 @@
|
||||
# Gateway Service
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/devices" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/commands" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/commands" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/command/{commandUUID}" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/command/{commandUUID}" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configurations" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configuration/{name}" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configuration/{name}" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configuration/{name}" method="put" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/default_configuration/{name}" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}" method="put" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/logs" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/logs" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/healthchecks" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/healthchecks" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/capabilities" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/capabilities" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/statistics" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/statistics" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/status" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/command" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/configure" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/upgrade" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/reboot" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/factory" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/leds" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/trace" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/wifiscan" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/request" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/eventqueue" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/telemetry" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/ouis" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/device/{serialNumber}/rtty" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/file/{uuid}" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/file/{uuid}" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist/{serialNumber}" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist/{serialNumber}" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist/{serialNumber}" method="put" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/blacklist/{serialNumber}" method="delete" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/capabilities" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/deviceDashboard" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/system" method="get" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owgw.yaml" path="/system" method="post" %}
|
||||
[owgw.yaml](../../.gitbook/assets/owgw.yaml)
|
||||
{% endswagger %}
|
||||
59
developer-resources/api/openapi-definitions.md
Normal file
59
developer-resources/api/openapi-definitions.md
Normal file
@@ -0,0 +1,59 @@
|
||||
---
|
||||
description: OpenWiFi 2.0 SDK
|
||||
---
|
||||
|
||||
# OpenAPI Definitions
|
||||
|
||||
## Where is the OpenAPI?
|
||||
|
||||
This uses OpenAPI definition 3.0 and can be found [here](https://github.com/Telecominfraproject/wlan-cloud-ucentralgw/blob/master/openapi/ucentral/owgw.yaml). All endpoints begin with `/api/v1`.
|
||||
|
||||
## API Flow
|
||||
|
||||
API endpoints are secured with bearer-token authentication using end-point `/oauth2`. Once you obtain `access-token`, you will need to pass it in the headers under `Authorization: Bearer <place your token here>`.
|
||||
|
||||
## Basic Entities
|
||||
|
||||
The API revolves around `devices`, `commands`, and `default_configurations`. To retrieve a list of `devices` to know what is available and then use the endpoint `device` to access all device specific information. To retrieve `commands` and `default_configurations` follow those endpoints. Most operations rely on the `serialNumber` of a device. That `serialNumber` is unique and generated on the device. Serial Number matches the device's MAC address.
|
||||
|
||||
* `devices`: The list of all devices in the system. This maybe very large, pagination is recommended.
|
||||
* `commands`: The list of commands issued by the system. This list could also be large.
|
||||
* `default_configurations`: A list of default configurations used to supply existing devices.
|
||||
|
||||
## Relationships
|
||||
|
||||
A device is a physical (or potentially logical) entity using the ucentral protocol. Currently, APs and Switches are the only devices used. A device has several attributes. Additionally, other collections are supported for each device:
|
||||
|
||||
* `logs`: Specific for a device. Logs originate from the device or associated with the device by some mechanism.
|
||||
* `healthchecks`: Reports from the device coming periodically after device self tests.
|
||||
* `statistics`: Periodically produced by the devices and document actual state data from each device.
|
||||
* `capabilities`: This details the actual data model supported by the device.
|
||||
|
||||
The `device` entry point is also used to query about the `status` of the device and used to inject certain commands for a specific device. Commands supported for each device:
|
||||
|
||||
* `reboot`: This will force the device to reboot.
|
||||
* `configure`: Configure sends a new configuration to a device.
|
||||
* `factory`: Forces the device to perform a factory-reset.
|
||||
* `upgrade`: Forces the device to do a firmware upgrade.
|
||||
* `leds`: Ask the device to flash its LEDs or turn them on or off.
|
||||
* `trace`: Performs a remove LAN trace. Once the trace is completed, the produced file may be removed using the `file` endpoint.
|
||||
* `command`: Performs a proprietary command. The meaning depends on the device.
|
||||
* `request`: Request an immediate message of type `state` or `healthcheck`.
|
||||
|
||||
The `file` end point is used to retrieve and remove files produced by the Gateway. Currently this is limited to the results of a `trace` command. The file name will always match the `uuid` of the command that produced it. If several files are needed, the files will be named `uuid`, `uuid.1`, `uuid.2`, etc.
|
||||
|
||||
## Dates
|
||||
|
||||
All dates should use the format defined in [RFC3339](https://tools.ietf.org/html/rfc3339). All times are UTC based. Here is an example:
|
||||
|
||||
```
|
||||
1985-04-12T23:20:50.52Z
|
||||
```
|
||||
|
||||
## Command `when` parameter
|
||||
|
||||
Most commands use a `when` parameter to suggest to the device when to perform the command. This is a _suggestion_ only. The device may decide to perform the command when it is optimal for itself. It maybe busy doing something and decline to do a reboot for several minutes for example. The device may reply with the actual `when` it will perform the command.
|
||||
|
||||
## Configuration UUID
|
||||
|
||||
The gateway manages the configuration UUID. So if you set a UUID for a configuration, it will be ignored. The gateway uses UUID as versioning. The UUID is unique within a single device. The resulting UUID or a configuration change is returned as part of the `configure` command.
|
||||
5
developer-resources/api/postman-collection.md
Normal file
5
developer-resources/api/postman-collection.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Postman Collection
|
||||
|
||||
Here is the current postman collection for testing purposes:
|
||||
|
||||
{% file src="../../.gitbook/assets/TIP OpenWiFi 2.x.postman_collection.json" %}
|
||||
209
developer-resources/api/provisioning-service.md
Normal file
209
developer-resources/api/provisioning-service.md
Normal file
@@ -0,0 +1,209 @@
|
||||
# Provisioning Service
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov.yaml" path="/entity/{uuid}" method="get" %}
|
||||
[owprov.yaml](../../.gitbook/assets/owprov.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/entity/{uuid}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/entity/{uuid}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/entity/{uuid}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact/{uuid}" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact/{uuid}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact/{uuid}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/contact/{uuid}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location/{uuid}" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location/{uuid}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location/{uuid}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/location/{uuid}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory/{serialNumber}" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory/{serialNumber}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory/{serialNumber}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/inventory/{serialNumber}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue/{uuid}" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue/{uuid}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue/{uuid}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/venue/{uuid}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map/{uuid}" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map/{uuid}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map/{uuid}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/map/{uuid}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy/{uuid}" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy/{uuid}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy/{uuid}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementPolicy/{uuid}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementRole" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementRole/{uuid}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementRole/{uuid}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/managementRole/{uuid}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations/{uuid}" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations/{uuid}" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations/{uuid}" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/configurations/{uuid}" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/iptocountry" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/signup" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/signup" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/signup" method="put" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/signup" method="delete" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/variables" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/dashboard" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/system" method="get" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owprov (1).yaml" path="/system" method="post" %}
|
||||
[owprov (1).yaml](<../../.gitbook/assets/owprov (1).yaml>)
|
||||
{% endswagger %}
|
||||
73
developer-resources/api/security-service.md
Normal file
73
developer-resources/api/security-service.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# Security Service
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/oauth2" method="post" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/oauth2/{token}" method="delete" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/systemEndpoints" method="get" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/users" method="get" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/user/{id}" method="get" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/user/{id}" method="post" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/user/{id}" method="put" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/user/{id}" method="delete" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/avatar/{id}" method="get" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/avatar/{id}" method="post" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/avatar/{id}" method="delete" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/email" method="post" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/sms" method="post" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/securityProfiles" method="get" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/systemServices" method="get" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/validateToken" method="get" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/system" method="get" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
|
||||
{% swagger src="../../.gitbook/assets/owsec.yaml" path="/system" method="post" %}
|
||||
[owsec.yaml](../../.gitbook/assets/owsec.yaml)
|
||||
{% endswagger %}
|
||||
Reference in New Issue
Block a user