Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Introduce 'qosStatus' and corresponding notification event to fix issue #38 #67

Merged
Changes from 7 commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 52 additions & 3 deletions code/API_definitions/qod-api.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: 0.8.0
version: 0.9.0
externalDocs:
description: Product documentation at Camara
url: https://github.com/camaraproject/
Expand Down Expand Up @@ -224,6 +224,7 @@ components:
- duration
- startedAt
- expiresAt
- qosStatus
properties:
id:
$ref: "#/components/schemas/SessionId"
Expand All @@ -237,6 +238,8 @@ components:
example: 1639566000
description: Timestamp of session expiration if the session was not deleted, in seconds since unix epoch
format: int64
qosStatus:
$ref: "#/components/schemas/QosStatus"
messages:
type: array
items:
Expand Down Expand Up @@ -325,20 +328,54 @@ components:
* `QOS_S` - Qualifier for the requested QoS profile _S_
* `QOS_M` - Qualifier for the requested QoS profile _M_
* `QOS_L` - Qualifier for the requested QoS profile _L_

Notification:
type: object
required:
- sessionId
- event
- eventReports
properties:
sessionId:
$ref: "#/components/schemas/SessionId"
eventReports:
type: array
items:
$ref: "#/components/schemas/EventReport"
minItems: 1
description: Contains the reported event and applicable information

EventReport:
type: object
required:
- event
properties:
event:
$ref: "#/components/schemas/SessionEvent"
discriminator:
propertyName: event
mapping:
QOS_STATUS_CHANGED: QosStatusChangedEventReport

QosStatusChangedEventReport:
allOf:
- $ref: '#/components/schemas/EventReport'
- type: object
required:
- qosStatus
properties:
qoStatus:
$ref: "#/components/schemas/QosStatus"
eventInfo:
type: string
enum:
- DURATION_EXPIRED
- NETWORK_TERMINATED

SessionEvent:
type: string
enum:
- SESSION_TERMINATED
- QOS_STATUS_CHANGED

ErrorInfo:
type: object
required:
Expand Down Expand Up @@ -419,6 +456,18 @@ components:
required:
- severity
- description

QosStatus:
type: string
enum:
- REQUESTED
- AVAILABLE
- UNAVAILABLE
description: |
* `REQUESTED` - QoS has been requested by creating a session
* `AVAILABLE` - The requested QoS has been provided by the network
* `UNAVAILABLE` - The requested QoS cannot be provided by the network due to some reason

responses:
Generic400:
description: Invalid input
Expand Down