Updating ROC API for v4.0.0 models
Change-Id: I123f0d4ddd091fca82cd44aba541f8ab8df0ff38
diff --git a/developer/roc-api.rst b/developer/roc-api.rst
index 2708450..ee65e26 100644
--- a/developer/roc-api.rst
+++ b/developer/roc-api.rst
@@ -15,7 +15,7 @@
.. note:: Opening this in a browser will display a HTML view of the API (powered by *ReDoc*).
To access the raw YAML format use
- ``curl -H "Accept: application/yaml" http://localhost:8183/aether-roc-api/aether-3.0.0-openapi3.yaml``
+ ``curl -H "Accept: application/yaml" http://localhost:8183/aether-roc-api/aether-4.0.0-openapi3.yaml``
This YAML format can be imported in to various different tools e.g. |postman_link|
Background
@@ -33,10 +33,10 @@
Endpoints are named based on the type of object. Some examples:
-* `GET http://roc/aether/v3.0.0/connectivity-service-v3/enterprise/`. Get a list of enterprises.
-* `GET http://roc/aether/v3.0.0/connectivity-service-v3/enterprise/Starbucks`. Get the Starbucks enterprise.
-* `POST http://roc/aether/v3.0.0/connectivity-service-v3/enterprise`. Create a new enterprise.
-* `PATCH http://roc/aether/v3.0.0/connectivity-service-v3/site/Starbucks-NewYork`. Update the Starbucks New York site.
+* `GET http://roc/aether/v4.0.0/connectivity-service-v3/enterprise/`. Get a list of enterprises.
+* `GET http://roc/aether/v4.0.0/connectivity-service-v3/enterprise/Starbucks`. Get the Starbucks enterprise.
+* `POST http://roc/aether/v4.0.0/connectivity-service-v3/enterprise`. Create a new enterprise.
+* `PATCH http://roc/aether/v4.0.0/connectivity-service-v3/site/Starbucks-NewYork`. Update the Starbucks New York site.
This document is a high-level description of the objects that can be interacted with. For a
low-level description, see the specification (:ref:`developer/roc-api:Access` section above).
@@ -99,6 +99,23 @@
`CCCNNNEEESSSSSS` will construct IMSIs using a 3-digit MCC, 3-digit MNC, 3-digit ENT, and a
6-digit subscriber.
+* `small-cell` A list of 5G gNodeB or Access Point or Radios. Each access point has the following:
+
+ * `address`. Hostname of the small cell.
+ * `tac`. Type Allocation Code.
+ * `enable`. If set to `true`, the small cell is enabled. Otherwise, it is disabled.
+
+* `monitoring` Configuration of how the monitoring framework of the site can be connected:
+
+ * `edge-cluster-prometheus-url` the URL of the site's Edge cluster Prometheus service
+ * `edge-monitoring-prometheus-url` the URL of the site's Edge monitoring Prometheus service
+ * `edge-device` a list of monitoring devices that verify end-to-end connectivity
+
+ * `name` the name of the monitoring device (usually a Raspberry Pi). This will usually
+ correspond to its short hostname
+ * `display-name` a user friendly name
+ * `description` an optional description
+
Device-Group
~~~~~~~~~~~~
@@ -117,6 +134,13 @@
* `site`. Reference to the site where this `Device-Group` may be used. Indirectly identifies the
`Enterprise` as `Site` contains a reference to `Enterprise`.
+* `device` related configuration:
+
+ * `mbr`. The maximum bitrate in bits per second that the application will be limited to:
+
+ * `uplink` the `mbr` from device to slice
+ * `downlink` the `mbr` from slice to device
+
Virtual Cellular Service
~~~~~~~~~~~~~~~~~~~~~~~~
@@ -126,9 +150,11 @@
* `device-group`. A list of `Device-Group` objects that can participate in this `VCS`. Each
entry in the list contains both the reference to the `Device-Group` as well as an `enable`
field which may be used to temporarily remove access to the group.
-* `application`. A list of `Application` objects that are either allowed or denied for this
+* `filter`. A list of `Application` objects that are either allowed or denied for this
`VCS`. Each entry in the list contains both a reference to the `Application` as well as an
- `allow` field which can be set to `true` to allow the application or `false` to deny it.
+ `allow` field which can be set to `true` to allow the application or `false` to deny it. It
+ also has a `priority` field which can be used to order the applications when considering the
+ enforcing of their `allow` condition.
* `template`. Reference to the `Template` that was used to initialize this `VCS`.
* `upf`. Reference to the User Plane Function (`UPF`) that should be used to process packets
for this `VCS`. It's permitted for multiple `VCS` to share a single `UPF`.
@@ -144,33 +170,24 @@
`Application` specifies an application and the endpoints for the application. Applications are
the termination point for traffic from the UPF. Contains the following fields:
-* `endpoint`. A list of endpoints. Each has the following
- fields:
+* `address`. The DNS name or IP address of the endpoint.
+* `endpoint`. A list of endpoints. Each has the following fields:
- * `name`. Name of the endpoint. Used as a key.
- * `address`. The DNS name or IP address of the endpoint.
- * `port-start`. Starting port number.
- * `port-end`. Ending port number.
- * `protocol`. `TCP|UDP`, specifies the protocol for the endpoint.
+ * `name`. Name of the endpoint. Used as a key.
+ * `port-start`. Starting port number.
+ * `port-end`. Ending port number.
+ * `protocol`. `TCP|UDP`, specifies the protocol for the endpoint.
+ * `mbr`. The maximum bitrate in bits per second that the application will be limited to:
+
+ * `uplink` the `mbr` from device to application
+ * `downlink` the `mbr` from application to device
+
* `enterprise`. Link to an `Enterprise` object that owns this application. May be left empty
to indicate a global application that may be used by multiple enterprises.
Supporting Aether Objects
-------------------------
-AP-List
-~~~~~~~
-
-`AP-List` specifies a list of access points (radios). It has the following fields:
-
-* `access-points`. A list of access points. Each access point has the following:
-
- * `address`. Hostname of the access point.
- * `tac`. Type Allocation Code.
- * `enable`. If set to `true`, the access point is enabled. Otherwise, it is disabled.
-
-* `enterprise`. The `Enterprise` that owns these access points.
-
Connectivity-Service
~~~~~~~~~~~~~~~~~~~~
@@ -200,12 +217,19 @@
* `sst`, `sd`. Slice identifiers.
* `uplink`, `downlink`. Guaranteed uplink and downlink bandwidth.
* `traffic-class`. Link to a `Traffic-Class` object that describes the type of traffic.
+* `slice` configuration for slice
+
+ * `mbr` configuration of maximum bit rate in slice
+
+ * `uplink` the `mbr` from device to slice
+ * `downlink` the `mbr` from slice to device
Traffic-Class
~~~~~~~~~~~~~
Specifies the class of traffic. Contains the following:
+* `arp`. Allocation and Retention Priority.
* `qci`. QoS class identifier.
* `pelr`. Packet error loss rate.
* `pdb`. Packet delay budget.
@@ -213,11 +237,14 @@
UPF
~~~
-Specifies the UPF that should forward packets. Has the following fields:
+Specifies the UPF that should forward packets. A UPF can only be used by one VCS at a time.
+Has the following fields:
* `address`. Hostname or IP address of UPF.
* `port`. Port number of UPF.
* `enterprise`. Enterprise that owns this UPF.
+* `site`. The Site that this UPF is located at.
+* `config-endpoint` URL for configuring the UPF
.. |postman_link| raw:: html