diff --git a/documentation/API_documentation/home_devices_qod.md b/documentation/API_documentation/home_devices_qod.md index ab5f7e1..743fd7d 100755 --- a/documentation/API_documentation/home_devices_qod.md +++ b/documentation/API_documentation/home_devices_qod.md @@ -27,7 +27,7 @@ Relevant Definitions and concepts: ## 1.1. Introduction -It may be useful for application developers to request on demand specific traffic profiles (DSCP marks) to be configured at end-user’s residential Home WiFi Access Point in order to ensure the required QoE (Quality of Experience) for those services/applications running on an specific home device. +It may be useful for application developers to request on demand specific traffic profiles (DSCP marks) to be configured at end-user’s residential Home WiFi Access Point in order to ensure the required QoE (Quality of Experience) for those services/applications running on a specific home device. For example, the QoS-on-demand (QoD) control capability could be useful in scenarios such as: @@ -40,13 +40,13 @@ Generally speaking, QoS on demand may improve QoE for real time services like Vi > API scope: > -> - traffic profile (DSCP mark) is applied **only within user home network** (i.e. between the device and the home router) -> - traffic profile **only applies to downstream IP traffic** (i.e. from home router towards the target device) -> - traffic profile **only applies to home devices using WiFi access** (i.e. home router WiFi interface) +> - traffic profile (DSCP mark) is applied **only within user home network** (i.e., between the device and the home router) +> - traffic profile **only applies to downstream IP traffic** (i.e., from home router towards the target device) +> - traffic profile **only applies to home devices using WiFi access** (i.e., home router WiFi interface) ## 1.2. Quick Start -Home Devices QoD API v0.1.0 exposes only one endpoint, which can be used to set the desired DSCP value for the traffic corresponding to the user device matching the input criteria. Device traffic will be classified and treated accordingly. +Home Devices QoD API exposes only one endpoint, which can be used to set the desired DSCP value for the traffic corresponding to the user device matching the input criteria. Device traffic will be classified and treated accordingly. To do so, the API client has to pass the following parameters in request body: @@ -59,9 +59,9 @@ Sample API invocation is presented in section [3.5. Code snippets](#35-code-snip # 2. Authentication and/or Authorization -OAuth 2.0 3-legged Access Tokens must be used by API clients to invoke this API with dedicated scope. API client must authenticate in the name of a specific user to use this service [[1]](#1). For doing so it may be done via IP-based authentication (i.e. using device public IP in this case). +OAuth 2.0 3-legged Access Tokens must be used by API clients to invoke this API with dedicated scope. API client must authenticate in the name of a specific user to use this service [[1]](#1). For doing so it may be done via IP-based authentication (i.e., using device public IP in this case). -The Home Devices QoD API 3-legged access could also be combined with end-user consent management depending on local legal regulation. User consent would be require before any personal information is processed by API clients under a certain purpose. +The Home Devices QoD API 3-legged access could also be combined with end-user consent management depending on local legal regulation. User consent would be required before any personal information is processed by API clients under a certain purpose.
@@ -69,7 +69,7 @@ The Home Devices QoD API 3-legged access could also be combined with end-user co ## 3.1. Details -> API version: 0.1.0 +> API version: 0.2.0 ## 3.2. Endpoint definitions @@ -83,8 +83,8 @@ Following table defines API endpoints of exposed REST based QoD operations for h | **Set the desired DSCP value for a user home device** | | --- | -| **HTTP Request** **Query Parameters** **Path Parameters** **Request Body Parameters** | -| **Responses** | +| **HTTP Request** **Query Parameters** **Path Parameters** **Request Body Parameters** | +| **Responses** | ## 3.3. Errors @@ -92,25 +92,26 @@ Since Home Devices QoD API is based on REST design principles and blueprints, we Details of HTTP based error/exception codes for the Home Devices QoD API are described in section [3.2.](#32-endpoint-definitions) for each API REST based method. Following table provides an overview of common error names, codes, and messages applicable to Home Devices QoD API. -| No | Error Name | Error Code | Error Message | +| No | Error Status | Error Code | Error Message | | --- | ---------- | ---------- | ------------- | |1 |400 | INVALID_ARGUMENT | "Client specified an invalid argument, request body or query param" | |2 |401 | UNAUTHENTICATED | "Request not authenticated due to missing, invalid, or expired credentials" | |3 |403 | PERMISSION_DENIED | "Client does not have sufficient permissions to perform this action" | -|4 |404 | NOT_FOUND | "A specified resource is not found" | -|5 |404 | HOME_DEVICES_QOD.NO_DEVICE_MATCH | "No connected device found for the input criteria provided." | -|6 |409 | CONFLICT | "Conflict with the current state of the target resource." | -|7 |409 | HOME_DEVICES_QOD.TOO_MANY_DEVICES | "Exceeded the maximum quantity of devices with non-default DSCP value." | -|8 |409 | HOME_DEVICES_QOD.RSSI_BELOW_THRESHOLD | "RSSI from device is below allowed threshold." | -|9 |409 | HOME_DEVICES_QOD.QOS_TOO_HIGH | "DSCP requested is above the maximum QoS permitted." | -|10 |409 | HOME_DEVICES_QOD.OCCUPANCY_ABOVE_THRESHOLD | "The occupancy is above the allowed threshold." | -|11 |409 | HOME_DEVICES_QOD.NOT_CONNECTED_TO_REQUIRED_INTERFACE | "Device is not connected to the required interface (e.g. WiFi 5GHz interface)." | -|12 |409 | HOME_DEVICES_QOD.NOT_SUPPORTED_REQUIRED_INTERFACE | "Device does not support required interface (e.g. WiFi 5GHz interface)." | -|13 |409 | HOME_DEVICES_QOD.QOS_ALREADY_SET_TO_DEFAULT | "Device DSCP value is already set to default value." | -|14 |500 | INTERNAL | "Server error" | -|15 |503 | UNAVAILABLE | "Service unavailable" | -|16 |503 | HOME_DEVICES_QOD.ROUTER_OFFLINE | "Router is not online. Try it later." | -|17 |504 | TIMEOUT | "Request timeout exceeded. Try later." | +|4 |403 | HOME_DEVICES_QOD.INVALID_TOKEN_CONTEXT | "User home network cannot be deducted from access token context" | +|5 |404 | NOT_FOUND | "A specified resource is not found" | +|6 |404 | HOME_DEVICES_QOD.NO_DEVICE_MATCH | "No connected device found for the input criteria provided" | +|7 |409 | CONFLICT | "Conflict with the current state of the target resource" | +|8 |409 | HOME_DEVICES_QOD.TOO_MANY_DEVICES | "Exceeded the maximum quantity of devices with non-default DSCP value" | +|9 |409 | HOME_DEVICES_QOD.RSSI_BELOW_THRESHOLD | "RSSI from device is below allowed threshold" | +|10 |409 | HOME_DEVICES_QOD.QOS_TOO_HIGH | "DSCP requested is above the maximum QoS permitted" | +|11 |409 | HOME_DEVICES_QOD.OCCUPANCY_ABOVE_THRESHOLD | "The occupancy is above the allowed threshold" | +|12 |409 | HOME_DEVICES_QOD.NOT_CONNECTED_TO_REQUIRED_INTERFACE | "Device is not connected to the required interface (e.g., WiFi 5GHz interface)" | +|13 |409 | HOME_DEVICES_QOD.NOT_SUPPORTED_REQUIRED_INTERFACE | "Device does not support required interface (e.g., WiFi 5GHz interface)" | +|14 |409 | HOME_DEVICES_QOD.QOS_ALREADY_SET_TO_DEFAULT | "Device DSCP value is already set to default value" | +|15 |500 | INTERNAL | "Server error" | +|16 |503 | UNAVAILABLE | "Service unavailable" | +|17 |503 | HOME_DEVICES_QOD.ROUTER_OFFLINE | "Router is not online. Try it later" | +|18 |504 | TIMEOUT | "Request timeout exceeded. Try later" | ## 3.4. Policies @@ -118,7 +119,7 @@ N/A ## 3.5. Code snippets -The following snippet elaborates REST based API call with `curl` to set the desired DSCP value (e.g. "CS0") for a user home device (with private IP "192.168.1.27"). +The following snippet elaborates REST based API call with `curl` to set the desired DSCP value (e.g., "CS0") for a user home device (with private IP "192.168.1.27"). *Please note, the credentials for API authentication purposes need to be adjusted based on target security system configuration.*