Draft/qod api documentation#2
Draft/qod api documentation#2ravindrapalaskar17 wants to merge 10 commits intoqod-api-documentationfrom
Conversation
This file Contain the documentation for qod API v0.8.0 ( Created single file for throughput and Latency and done the necessary changes as per v0.800
|
|
||
| **Base URL** | ||
| The RESTful QOD (Quality on Demand) API endpoint, for example [**https://telekom-api.developer.telekom.com/5g-throughput**](https://telekom-api.developer.telekom.com/5g-throughput) | ||
|
|
|
|
||
| **App-Flow** | ||
| Describes the precise flow the developer wants to prioritize and have stable bandwidth/latency for. This flow is described using source IP address which is (ueId), Destination IP address which is (asId) and ports with flow direction. | ||
|
|
There was a problem hiding this comment.
What about other identifiers like msisdn or externalId? Better would be that the flow is described using the UE-identifier (IP address, msisdn or external ID), the application server identifier (IP address) and ports.
| Based on the API, QoS sessions can be created, queried, and deleted.The QoD API has the following characteristics: | ||
| * A specified App-Flow is prioritized to ensure stable throughput/latency for that flow | ||
| * The prioritized App-Flow is described by providing additional information such as ports, direction of flow etc. | ||
| * Stable bandwidth/latency is requested by selecting from the list of QoS profiles made available by the service provider (e.g. Small ,Medium, Large) to map throughput requirements |
| | POST<br> \<base-url>/qod/v0/sessions | **Create Session** | Creates a new QoS session on demand | | ||
| | GET<br> \<base-url>/qod/v0/sessions/{sessionId} | **Query for Session** | Get session information | | ||
| | DELETE<br> \<base-url>/qod/v0/sessions/{sessionId} | **Delete Session** | Deleting a QoS session Free resources related to QoS session| | ||
| <br> |
| | **Create QoS session** | | ||
| |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| | **HTTP Request**<br> POST \<base-url>/qod/v0/sessions<br>**Query Parameters**<br> No query parameters are defined.<br>**Path Parameters**<br> No path parameters are defined.<br>**Request Body Parameters**<br> **duration (optional)**: Session duration in seconds. Maximal value of 24 hours is used if not set.<br> **ueId:** The IPv4 address of the user equipment. It can contain a single IP address or a range, using a mask.<br> Format: \<address>[/\<mask>]<br> - address : an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule.<br> - address/mask : an IP number as above with a mask width of the form 1.2.3.4/24.<br> *In this case, all IP numbers from 1.2.3.0 to 1.2.3.255 will match. The bit width MUST be valid for the IP version.*<br> **asId:** The IPv4 address of the application server. It can contain a single IP address or a range, using a mask.<br> <br> **uePort (optional):** A list of single ports or port ranges on the user equipment.<br> Ports may be specified as <\{port\ |port\-port\}\[\,ports\[\,\.\.\.\]\]\>\.<br> The '-' notation specifies a range of ports (including boundaries).<br> Example: '5010-5020,5021,5022'<br> **asPort (optional):** A list of single ports or port ranges on the application server.<br> **protocolIn:** The used transport protocol for the uplink.<br> TCP - TCP protocol<br> UDP - UDP protocol<br> ANY - all protocols<br> **protocolOut :** The used transport protocol for the downlink.<br> TCP - TCP protocol<br> UDP - UDP protocol<br> ANY - all protocols<br> **qos:** Qualifier for the requested throughput profile (QoS values based on example mapping and might differ in production networks).<br> THROUGHPUT\_S - Example: downlink up to 10Mbps<br> THROUGHPUT\_M - Example: downlink up to 30Mbps<br> THROUGHPUT\_L - Example: downlink up to 100Mbps<br> **notificationUri (optional):** URI of the callback receiver. Allows asynchronous delivery of session related events<br>Example: '[<span class="s2">https://application-server.com/notifications</span>](https://application-server.com/notifications)'</span><br> **notificationAuthToken (optional):** Authentification token for callback API.<br> Example: 'c8974e592c2fa383d4a3960714'<br><br>**Response**<br> **201: Session created**<br> Response body:<br> **duration:** Session duration in seconds.<br> **ueAddr:** The ipv4 address of the user equipment.<br> **asAddr:** The ipv4 address of the application server.<br> **uePort (optional):** The requested port(s) on the user equipment.<br> **asPort (optional):** The requested port(s) on the user equipment.<br> **protocolIn:** The used transport protocol for the uplink.<br> **protocolOut:** The used transport protocol for the downlink.<br> **qos:** QoS qualifier of the requested throughput profile.<br> **notificationUri (optional):** URI of the callback receiver.<br> **notificationAuthToken (optional):** Authentication token for callback API.<br> **id:** Session ID in UUID format.<br> Example: 123e4567-e89b-12d3-a456-426614174000<br> **startedAt:** Timestamp of session start, in seconds since unix epoch.<br> Example: 1639479600<br> **expiresAt**: Timestamp of session expiration if the session was not deleted, in seconds since unix epoch.<br><br> **400:** **Invalid input.**<br> **401:** **Un-authorized, missing or incorrect authentication.**<br> **405:** **Invalid input**<br> **500:** **Session not created**<br> **503:** **Service temporarily unavailable** | | ||
| <br> |
There was a problem hiding this comment.
ueId and asId are still not just IP-addresses. Please check the API spec!
there is no uePort, but uePorts. What is <{port\ ?
asPorts is missing
qos is missing
notifications is missing
response codes are incorrect: there is no 200 but 201. 400 is missing... etc. Please check the API spec!
| | **Quering QoS session information** | | ||
| |--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | ||
| | **HTTP Request**<br> GET\<base-url>/qod/v0/sessions/{sessionId}<br>**Query Parameters**<br> No query parameters are defined.<br>**Path Parameters**<br> sessionId: Session id that was obtained from the Create QoS Session operation.<br>**Request Body Parameters**<br> No request body parameters are defined.<br>**Response**<br><br> **200: Session information returned.**<br> Response body:<br> **duration:** Session duration in seconds.<br> **ueId:** The ipv4 address of the user equipment.<br> **asId:** The ipv4 address of the application server.<br> **uePort (optional):** The requested port(s) on the user equipment.<br> **asPort (optional):** The requested port(s) on the user equipment.<br> **qos:** Qualifier of the requested throughput profile.<br> **notificationUri (optional):** URI of the callback receiver.<br> **notificationAuthToken (optional):** Authentication token for callback API.<br> **id:** Session ID in UUID format.<br> **startedAt:** Timestamp of session start in seconds since unix epoch.<br> **expiresAt:** Timestamp of session expiration if the session was not deleted in seconds since unix epoch.<br><br> **401:** Un-authorised, missing or incorrect authentication.<br> **404:** Session not found.<br> **503:** Service temporarily unavailable. | | ||
|
|
There was a problem hiding this comment.
ueId and asId are still not just IP-addresses. Please check the API spec!
there is no uePort, but uePorts.
there is no asPort, but asPorts.
"asPort (optional): The requested port(s) on the user equipment. "
That's not correct.
"qos: Qualifier of the requested throughput profile."
not just troughput
| | 10 | 409 | CONFLICT | "Another session is created for the same UE" | | ||
| | 11 | 500 | INTERNAL | "Session could not be created" | | ||
| | 12 | 503 | SERVICE_UNAVALIBLE | "Service unavailable" | | ||
|
|
|
|
||
| * QoS session with 1H duration and QoS-profile "L" mapping, | ||
| * App-Flow is specified for UE-Terminal IP address (ueId=192.168.0.0/24), Application server network (asId=192.168.0.0/24) and Port number (asPorts=ranges from 5010 to 5020). | ||
|
|
There was a problem hiding this comment.
Not the uiId/asId equals the ip address but only the ipv4address part of it.
Hi Akos I have done the necessary changes suggested by you.. in Qod API documentation. Kindly review the same.