From 898362c709a045492f580b9be358fd34a5bdce4a Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:40:01 +0100 Subject: [PATCH 01/16] Update qod-api.yaml --- code/API_definitions/qod-api.yaml | 60 +++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 7 deletions(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index 1bf2180471..b41b75645b 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -81,11 +81,11 @@ paths: code: INVALID_ARGUMENT message: "Expected property is missing: device.ipv4Address or device.ipv6Address" DevicePortsRequired: - summary: devicePorts is required + summary: devicePublicPorts is required value: status: 400 code: INVALID_ARGUMENT - message: "Expected property is missing: devicePorts" + message: "Expected property is missing: devicePublicPorts" QoSProfileRequired: summary: qosProfile is required value: @@ -97,7 +97,7 @@ paths: value: status: 400 code: INVALID_ARGUMENT - message: "Ranges not allowed: devicePorts" + message: "Ranges not allowed: devicePublicPorts" "401": $ref: "#/components/responses/Generic401" "403": @@ -223,6 +223,7 @@ components: type: string format: uuid description: Session ID in UUID format + SessionInfo: description: Session related information. allOf: @@ -253,6 +254,7 @@ components: type: array items: $ref: "#/components/schemas/Message" + CreateSession: description: Data type with attributes required for creating a session type: object @@ -274,7 +276,7 @@ components: $ref: "#/components/schemas/Device" applicationServer: $ref: "#/components/schemas/ApplicationServer" - devicePorts: + deviceAllocatedPorts: $ref: "#/components/schemas/PortsSpec" applicationServerPorts: $ref: "#/components/schemas/PortsSpec" @@ -293,10 +295,12 @@ components: - device - applicationServer - qosProfile + Port: type: integer minimum: 0 maximum: 65535 + PortsSpec: type: object minProperties: 1 @@ -328,6 +332,7 @@ components: - 5070 description: | Ports may be specified as a list of ranges or single ports. + QosProfile: type: string enum: @@ -401,10 +406,11 @@ components: networkAccessIdentifier: $ref: "#/components/schemas/NetworkAccessIdentifier" ipv4Address: - $ref: "#/components/schemas/Ipv4Address" + $ref: "#/components/schemas/DeviceIpv4Addr" ipv6Address: $ref: "#/components/schemas/Ipv6Address" - description: Device identifier + description: One or more parameters allocated to the device that allow it to be identified + ApplicationServer: type: object minProperties: 1 @@ -414,14 +420,50 @@ components: ipv6Address: $ref: "#/components/schemas/Ipv6Address" description: Application server identifier + NetworkAccessIdentifier: type: string example: "123456789@domain.com" + PhoneNumber: type: string pattern: '^\+?[0-9]{5,15}$' example: "123456789" - description: Subscriber number in E.164 format (starting with country code). Optionally prefixed with '+'. + description: Subscriber number (MSISDN) in E.164 format, starting with country code and ptionally prefixed with '+'. + + DeviceIpv4Addr: + type: object + properties: + publicAddress: + $ref: "#/components/schemas/SingleIpv4Addr" + privateAddress: + $ref: "#/components/schemas/SingleIpv4Addr" + publicPort: + $ref: "#/components/schemas/Port" + oneOf: + - required: [publicAddress, privateAddress] + - required: [publicAddress, publicPort] + example: + { + "publicAddress": "84.125.93.10", + "publicPort" : 59765 + } + description: | + The device should be identified by either the public (observered) IP address and port as seen by the application server, or the private (local) and any public (observed) IP addresses in use by the device (this information can be obtained by various means, for example from some DNS servers). + + If the allocated and observed IP addresses are the same (i.e. NAT is not in use) then the same address should be specified for both publicAddress and privateAddress. + + If NAT64 is in use, the device should be idetified by its publicAddress and publicPort, or separately by its allocated IPv6 address (field ipv6Address of the Device object) + + In all cases, publicAddress must be specified, along with at least one of either privateAddress or publicPort, dependent upon which is known. In general, mobile devices cannot be identified by their public IPv4 address alone. + + SingleIpv4Addr: + type: string + format: ipv4 + description: A single IPv4 address with no subnet mask + example: "84.125.93.10" + pattern: '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$' + Ipv4Address: type: string format: ipv4 @@ -432,6 +474,7 @@ components: - address - an IPv4 number in dotted-quad form 1.2.3.4. Only this exact IP number will match the flow control rule. - address/mask - an IP number as above with a mask width of the form 1.2.3.4/24. 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. + Ipv6Address: type: string format: ipv6 @@ -447,6 +490,7 @@ components: - address/mask - an IP v6 number with a mask: - 2001:db8:85a3:8d3::0/64 - 2001:db8:85a3:8d3::/64 + Message: type: object properties: @@ -460,6 +504,7 @@ components: required: - severity - description + QosStatus: type: string enum: @@ -470,6 +515,7 @@ components: * `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 + ErrorInfo: type: object required: From 0968d7950b5bf85ecbf3926d45cfaa6750ddf34b Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:41:59 +0100 Subject: [PATCH 02/16] Update qod-api.yaml --- code/API_definitions/qod-api.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index b41b75645b..086f38f546 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -85,7 +85,7 @@ paths: value: status: 400 code: INVALID_ARGUMENT - message: "Expected property is missing: devicePublicPorts" + message: "Expected property is missing: deviceAllocatedPorts" QoSProfileRequired: summary: qosProfile is required value: @@ -97,7 +97,7 @@ paths: value: status: 400 code: INVALID_ARGUMENT - message: "Ranges not allowed: devicePublicPorts" + message: "Ranges not allowed: deviceAllocatedPorts" "401": $ref: "#/components/responses/Generic401" "403": From d539627d7aa8c7c3200f79bac0a584c7e5296c5e Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Wed, 19 Apr 2023 23:42:46 +0100 Subject: [PATCH 03/16] Update qod-api.yaml --- code/API_definitions/qod-api.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index 086f38f546..4a1bcb718c 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -81,7 +81,7 @@ paths: code: INVALID_ARGUMENT message: "Expected property is missing: device.ipv4Address or device.ipv6Address" DevicePortsRequired: - summary: devicePublicPorts is required + summary: deviceAllocatedPorts is required value: status: 400 code: INVALID_ARGUMENT From 286c5b0df3757ae476707be27b89b8ac481fbbff Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Thu, 20 Apr 2023 11:25:53 +0100 Subject: [PATCH 04/16] Update qod-api.yaml - Schema objects DeviceIpv4Addr and SingleIpv4Addr defined - Device property ipv4Address now of type DeviceIpv4Addr - CreateSession property devicePorts renamed deviceAllocatedPorts - Updated error message definitions - Minor format changes --- code/API_definitions/qod-api.yaml | 50 +++++++++++++++++++------------ 1 file changed, 31 insertions(+), 19 deletions(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index 4a1bcb718c..1f028cd453 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -57,47 +57,59 @@ paths: $ref: "#/components/schemas/ErrorInfo" examples: Generic400: - summary: Schema validation failed + summary: Some parameter combinations or parameter values provided are not schema compliant value: status: 400 code: INVALID_ARGUMENT message: "Schema validation failed at ..." - PhoneNumberRequired: - summary: Phone number is required as part of device + DeviceMissing: + summary: Device must be specified value: status: 400 code: INVALID_ARGUMENT - message: "Expected property is missing: device.phoneNumber" - Ipv4AddressRequired: - summary: ipv4Address is required as part of device + message: "Expected property is missing: device" + InsufficientProperties: + summary: Device must be identified by at least one parameter value: status: 400 code: INVALID_ARGUMENT - message: "Expected property is missing: device.ipv4Address" - IpAddressRequired: - summary: Some IP address is required as part of device + message: "Insufficient properties specified: device" + InconsistentProperties: + summary: Device parameters provided identify different devices value: status: 400 code: INVALID_ARGUMENT - message: "Expected property is missing: device.ipv4Address or device.ipv6Address" - DevicePortsRequired: - summary: deviceAllocatedPorts is required + message: "Multiple inconsistent parameters specified: device" + CabnnotIdentifiedDevice: + summary: No device can be identified from provided parameters value: status: 400 code: INVALID_ARGUMENT - message: "Expected property is missing: deviceAllocatedPorts" - QoSProfileRequired: - summary: qosProfile is required + message: "Unable to identify device from specified parameters: device" + InvalidDeviceOublicPortsRanges: + summary: Invalid port specified for device public port + value: + status: 400 + code: OUT_OF_RANGE + message: "Invalid port range specified: device.ipv4Address.publicPort" + ApplicationServerMissing: + summary: Application server must be specified value: status: 400 code: INVALID_ARGUMENT - message: "Expected property is missing: qosProfile" - DevicePortsRangesNotAllowed: - summary: Ranges at devicePorts are not allowed + message: "Expected property is missing: applicationServer" + QoSProfileMissing: + summary: Required QoS profile must be specified value: status: 400 code: INVALID_ARGUMENT - message: "Ranges not allowed: deviceAllocatedPorts" + message: "Expected property is missing: qosProfile" + InvalidDeviceAllocatedPortsRanges: + summary: Invalid port ranges specified for deviceAllocatedPorts + value: + status: 400 + code: OUT_OF_RANGE + message: "Invalid port ranges specified: deviceAllocatedPorts" "401": $ref: "#/components/responses/Generic401" "403": From 0ae46ba75c14c22a77e1d8f2e16ac768b4ac6e81 Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Thu, 20 Apr 2023 11:48:59 +0100 Subject: [PATCH 05/16] Update qod-api.yaml Fix error message InvalidDevicePublicPortValue --- code/API_definitions/qod-api.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index 1f028cd453..bd2f479f32 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -86,12 +86,12 @@ paths: status: 400 code: INVALID_ARGUMENT message: "Unable to identify device from specified parameters: device" - InvalidDeviceOublicPortsRanges: + InvalidDevicePublicPortValue: summary: Invalid port specified for device public port value: status: 400 code: OUT_OF_RANGE - message: "Invalid port range specified: device.ipv4Address.publicPort" + message: "Invalid port value specified: device.ipv4Address.publicPort" ApplicationServerMissing: summary: Application server must be specified value: From cced4522ae738443bb14a0f7137562bceb200a4a Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Thu, 20 Apr 2023 12:07:13 +0100 Subject: [PATCH 06/16] Update QoD_API.md Updated documentation for change in identifying devices by IPv4 address --- documentation/API_documentation/QoD_API.md | 34 +++++++++++++--------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/documentation/API_documentation/QoD_API.md b/documentation/API_documentation/QoD_API.md index 44c72c536e..2b3bb95638 100644 --- a/documentation/API_documentation/QoD_API.md +++ b/documentation/API_documentation/QoD_API.md @@ -27,7 +27,7 @@ Security access keys such as OAuth 2.0 client credentials used by client applica Latency or throughput requirements of the application mapped to relevant QoS profile class. **Identifier for the device** -At least one identifier for the device (user equipment) out of four options: IPv4 address, IPv6 address, Phone number, or Network Access Identifier [[5]](#5) assigned by the mobile network operator for the device. +At least one identifier for the device (user equipment) out of four options: IPv4 address (either public IP address and port, or public and private IP address), IPv6 address, Phone number, or Network Access Identifier [[5]](#5) assigned by the mobile network operator for the device. **Identifier for the application server** IPv4 and/or IPv6 address of the application server (application backend) @@ -117,12 +117,12 @@ Following table defines API endpoints of exposed REST based for QoD management o

The identifier for the device (user equipment). The developer can choose to provide the below specified device identifiers:

-

NOTE: the MNO might support only a subset of these options. The API invoker can provide multiple identifiers to be compatible across different MNOs. In this case the identifiers MUST belong to the same device

+

NOTE: The MNO might support only a subset of these options. The API invoker can provide multiple identifiers to be compatible across different MNOs. In this case the identifiers MUST identify the same device

@@ -136,8 +136,8 @@ Following table defines API endpoints of exposed REST based for QoD management o - devicePorts (optional) - A list of single ports or port ranges on the device,
e.g. "devicePorts": {"ranges": [{"from": 5010,"to": 5020}],"ports": [5060,5070]} + deviceAllocatedPorts (optional) + A list of single source ports or source port ranges used directly by the device (i.e. not the public or NATed port(s)),
e.g. "deviceAllocatedPorts": {"ranges": [{"from": 5010,"to": 5020}],"ports": [5060,5070]} applicationServerPorts (optional) @@ -176,6 +176,9 @@ Following table defines API endpoints of exposed REST based for QoD management o 400: Invalid input + + 400: Out of range + 401: Un-authorized @@ -317,12 +320,15 @@ Following table provides an overview of common error names, codes, and messages | No | Error Name | Error Code | Error Message | | --- | ---------- | ---------- | ------------- | -|1 |400 | INVALID_INPUT | "Expected property is missing: device.msisdn" | -|2 |400 | INVALID_INPUT | "Expected property is missing: device.ipv4Address" | -|3 |400 | INVALID_INPUT | "Expected property is missing: device.ipv4Address or device.ipv6Address" | -|4 |400 | INVALID_INPUT | "Expected property is missing: devicePorts" | -|5 |400 | INVALID_INPUT | "Expected property is missing: qosProfile" | -|6 |400 | INVALID_INPUT | "Ranges not allowed: devicePorts" | +|1 |400 | INVALID_ARGUMENT | "Schema validation failed at ..." | +|2 |400 | INVALID_ARGUMENT | "Expected property is missing: device" | +|3 |400 | INVALID_ARGUMENT | "Insufficient properties specified: device" | +|4 |400 | INVALID_ARGUMENT | "Multiple inconsistent parameters specified: device" | +|5 |400 | INVALID_ARGUMENT | "Unable to identify device from specified parameters: device" | +|6 |400 | INVALID_ARGUMENT | "Expected property is missing: applicationServer" | +|7 |400 | INVALID_ARGUMENT | "Expected property is missing: qosProfile" | +|8 |400 | OUT_OF_RANGE | "Invalid port value specified: device.ipv4Address.publicPort" | +|9 |400 | OUT_OF_RANGE | "Invalid port ranges specified: deviceAllocatedPorts" | |7 |401 | UNAUTHORIZED | "No authorization to invoke operation" | |8 |403 | FORBIDDEN | "Operation not allowed" | |9 |404 | NOT_FOUND | "Session Id does not exist" | From 510ebd836cc562f032740f00cf619a7027bfdbaa Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Thu, 20 Apr 2023 12:08:36 +0100 Subject: [PATCH 07/16] Update QoD_API.md Fixed error table numbering --- documentation/API_documentation/QoD_API.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/documentation/API_documentation/QoD_API.md b/documentation/API_documentation/QoD_API.md index 2b3bb95638..b4010e381d 100644 --- a/documentation/API_documentation/QoD_API.md +++ b/documentation/API_documentation/QoD_API.md @@ -329,13 +329,13 @@ Following table provides an overview of common error names, codes, and messages |7 |400 | INVALID_ARGUMENT | "Expected property is missing: qosProfile" | |8 |400 | OUT_OF_RANGE | "Invalid port value specified: device.ipv4Address.publicPort" | |9 |400 | OUT_OF_RANGE | "Invalid port ranges specified: deviceAllocatedPorts" | -|7 |401 | UNAUTHORIZED | "No authorization to invoke operation" | -|8 |403 | FORBIDDEN | "Operation not allowed" | -|9 |404 | NOT_FOUND | "Session Id does not exist" | -|10 |409 | CONFLICT | "Another session is created for the same device" | -|11 |500 | INTERNAL | "Session could not be created" | -|12 |501 | NOT_IMPLEMENTED | "Service not implemented for the specified user device" | -|13 |503 | SERVICE_UNAVAILABLE | "Service unavailable" | +|10 |401 | UNAUTHORIZED | "No authorization to invoke operation" | +|11 |403 | FORBIDDEN | "Operation not allowed" | +|12 |404 | NOT_FOUND | "Session Id does not exist" | +|13 |409 | CONFLICT | "Another session is created for the same device" | +|14 |500 | INTERNAL | "Session could not be created" | +|15 |501 | NOT_IMPLEMENTED | "Service not implemented for the specified user device" | +|16 |503 | SERVICE_UNAVAILABLE | "Service unavailable" | ### 4.5 Policies From a48d6152f61827964143012599ee4e3ea2a941fc Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Fri, 21 Apr 2023 14:31:49 +0100 Subject: [PATCH 08/16] Update code/API_definitions/qod-api.yaml Co-authored-by: Jose Luis Urien --- code/API_definitions/qod-api.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index bd2f479f32..a3eca2c9ac 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -461,7 +461,7 @@ components: "publicPort" : 59765 } description: | - The device should be identified by either the public (observered) IP address and port as seen by the application server, or the private (local) and any public (observed) IP addresses in use by the device (this information can be obtained by various means, for example from some DNS servers). + The device should be identified by either the public (observed) IP address and port as seen by the application server, or the private (local) and any public (observed) IP addresses in use by the device (this information can be obtained by various means, for example from some DNS servers). If the allocated and observed IP addresses are the same (i.e. NAT is not in use) then the same address should be specified for both publicAddress and privateAddress. From 3882c4430fc4f98ad979d2acb1b3243977e5bc3c Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Mon, 24 Apr 2023 12:48:38 +0100 Subject: [PATCH 09/16] Update qod-api.yaml Replace oneOf with anyOf in DeviceIpv4Addr --- code/API_definitions/qod-api.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index a3eca2c9ac..0c39646ccc 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -452,7 +452,7 @@ components: $ref: "#/components/schemas/SingleIpv4Addr" publicPort: $ref: "#/components/schemas/Port" - oneOf: + anyOf: - required: [publicAddress, privateAddress] - required: [publicAddress, publicPort] example: @@ -465,7 +465,7 @@ components: If the allocated and observed IP addresses are the same (i.e. NAT is not in use) then the same address should be specified for both publicAddress and privateAddress. - If NAT64 is in use, the device should be idetified by its publicAddress and publicPort, or separately by its allocated IPv6 address (field ipv6Address of the Device object) + If NAT64 is in use, the device should be identified by its publicAddress and publicPort, or separately by its allocated IPv6 address (field ipv6Address of the Device object) In all cases, publicAddress must be specified, along with at least one of either privateAddress or publicPort, dependent upon which is known. In general, mobile devices cannot be identified by their public IPv4 address alone. From 6c5362078830cece2346aed425a68fc7e792b5c2 Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Fri, 5 May 2023 16:14:05 +0100 Subject: [PATCH 10/16] Update qod-api.yaml - reverted deviceAllocatedPorts to devicePorts, but added description of modified usage - removed `format: ipv4` from SingleIpv4Addr --- code/API_definitions/qod-api.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index 0c39646ccc..ebe6f7764e 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -288,8 +288,9 @@ components: $ref: "#/components/schemas/Device" applicationServer: $ref: "#/components/schemas/ApplicationServer" - deviceAllocatedPorts: + devicePorts: $ref: "#/components/schemas/PortsSpec" + description: The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports. applicationServerPorts: $ref: "#/components/schemas/PortsSpec" qosProfile: @@ -471,7 +472,6 @@ components: SingleIpv4Addr: type: string - format: ipv4 description: A single IPv4 address with no subnet mask example: "84.125.93.10" pattern: '^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$' From a011dea0c911635fe8ae715fcf5a2711198b5818 Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Fri, 5 May 2023 16:28:45 +0100 Subject: [PATCH 11/16] Update QoD_API.md - Update documentation for devicePorts --- documentation/API_documentation/QoD_API.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/documentation/API_documentation/QoD_API.md b/documentation/API_documentation/QoD_API.md index b4010e381d..ca68d6ae56 100644 --- a/documentation/API_documentation/QoD_API.md +++ b/documentation/API_documentation/QoD_API.md @@ -136,8 +136,8 @@ Following table defines API endpoints of exposed REST based for QoD management o - deviceAllocatedPorts (optional) - A list of single source ports or source port ranges used directly by the device (i.e. not the public or NATed port(s)),
e.g. "deviceAllocatedPorts": {"ranges": [{"from": 5010,"to": 5020}],"ports": [5060,5070]} + devicePorts (optional) + The ports used locally by the device for flows to which the requested QoS profile should apply. If omitted, then the qosProfile will apply to all flows between the device and the specified application server address and ports.
e.g. "devicePorts": {"ranges": [{"from": 5010,"to": 5020}],"ports": [5060,5070]} applicationServerPorts (optional) From f76b89c4fdcb58bf2cc2a9761e90f141a98ec068 Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Fri, 5 May 2023 16:36:32 +0100 Subject: [PATCH 12/16] Update qod-api.yaml - Fix InvalidDevicePortsRanges error decription --- code/API_definitions/qod-api.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index ebe6f7764e..fbc708310c 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -104,12 +104,12 @@ paths: status: 400 code: INVALID_ARGUMENT message: "Expected property is missing: qosProfile" - InvalidDeviceAllocatedPortsRanges: - summary: Invalid port ranges specified for deviceAllocatedPorts + InvalidDevicePortsRanges: + summary: Invalid port ranges specified for devicePorts value: status: 400 code: OUT_OF_RANGE - message: "Invalid port ranges specified: deviceAllocatedPorts" + message: "Invalid port ranges specified: devicePorts" "401": $ref: "#/components/responses/Generic401" "403": From 3a7027a8deeb4356c07de7990d74b74ba4df0e1b Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Fri, 5 May 2023 16:37:33 +0100 Subject: [PATCH 13/16] Update QoD_API.md - Fix error #9 description --- documentation/API_documentation/QoD_API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/API_documentation/QoD_API.md b/documentation/API_documentation/QoD_API.md index ca68d6ae56..559c3fa9a5 100644 --- a/documentation/API_documentation/QoD_API.md +++ b/documentation/API_documentation/QoD_API.md @@ -328,7 +328,7 @@ Following table provides an overview of common error names, codes, and messages |6 |400 | INVALID_ARGUMENT | "Expected property is missing: applicationServer" | |7 |400 | INVALID_ARGUMENT | "Expected property is missing: qosProfile" | |8 |400 | OUT_OF_RANGE | "Invalid port value specified: device.ipv4Address.publicPort" | -|9 |400 | OUT_OF_RANGE | "Invalid port ranges specified: deviceAllocatedPorts" | +|9 |400 | OUT_OF_RANGE | "Invalid port ranges specified: devicePorts" | |10 |401 | UNAUTHORIZED | "No authorization to invoke operation" | |11 |403 | FORBIDDEN | "Operation not allowed" | |12 |404 | NOT_FOUND | "Session Id does not exist" | From 0525029d5286060d796df2adb4a6fd397f8563c6 Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Fri, 5 May 2023 16:40:14 +0100 Subject: [PATCH 14/16] Update qod-api.yaml - Fix CannotIdentifyDevice error --- code/API_definitions/qod-api.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index fbc708310c..8c0a83052c 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -80,7 +80,7 @@ paths: status: 400 code: INVALID_ARGUMENT message: "Multiple inconsistent parameters specified: device" - CabnnotIdentifiedDevice: + CannotIdentifyDevice: summary: No device can be identified from provided parameters value: status: 400 From a21097906e599813d516a7440f2a69f5f4c583b1 Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Tue, 9 May 2023 09:57:49 +0100 Subject: [PATCH 15/16] Update qod-api.yaml - Renamed InsufficientProperties to InsufficientDeviceProperties - Renamed InconsistentProperties to InconsistentDeviceProperties - Fixed typo in PhoneNumber object description --- code/API_definitions/qod-api.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/API_definitions/qod-api.yaml b/code/API_definitions/qod-api.yaml index 8c0a83052c..eeb8572a9c 100644 --- a/code/API_definitions/qod-api.yaml +++ b/code/API_definitions/qod-api.yaml @@ -68,13 +68,13 @@ paths: status: 400 code: INVALID_ARGUMENT message: "Expected property is missing: device" - InsufficientProperties: + InsufficientDeviceProperties: summary: Device must be identified by at least one parameter value: status: 400 code: INVALID_ARGUMENT message: "Insufficient properties specified: device" - InconsistentProperties: + InconsistentDeviceProperties: summary: Device parameters provided identify different devices value: status: 400 @@ -442,7 +442,7 @@ components: type: string pattern: '^\+?[0-9]{5,15}$' example: "123456789" - description: Subscriber number (MSISDN) in E.164 format, starting with country code and ptionally prefixed with '+'. + description: Subscriber number (MSISDN) in E.164 format, starting with country code and optionally prefixed with '+'. DeviceIpv4Addr: type: object From 2ff4b60f1e84a86dd2f9ecaddd24a36364af2b08 Mon Sep 17 00:00:00 2001 From: Eric Murray <77291605+eric-murray@users.noreply.github.com> Date: Thu, 11 May 2023 09:57:23 +0100 Subject: [PATCH 16/16] Update documentation/API_documentation/QoD_API.md Co-authored-by: Ramesh Shanmugasundaram - Spry Fox Networks <90850565+sfnuser@users.noreply.github.com> --- documentation/API_documentation/QoD_API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/documentation/API_documentation/QoD_API.md b/documentation/API_documentation/QoD_API.md index 559c3fa9a5..f756fb7a3b 100644 --- a/documentation/API_documentation/QoD_API.md +++ b/documentation/API_documentation/QoD_API.md @@ -117,7 +117,7 @@ Following table defines API endpoints of exposed REST based for QoD management o

The identifier for the device (user equipment). The developer can choose to provide the below specified device identifiers: