Skip to content
Merged
Show file tree
Hide file tree
Changes from 13 commits
Commits
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
119 changes: 119 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Changelog QualityOnDemand

## Table of Contents
- **[r3.2](#r32) (Fall25 public release)**
- [r3.1](#r31)
- **[r2.2](#r22) (Spring25 public release)**
- [r2.1](#r21)
Expand All @@ -26,6 +27,124 @@ The below sections record the changes for each API version in each release as fo
* for subsequent release-candidate(s), only the delta to the previous release-candidate
* for a public release, the consolidated changes since the previous public release

# r3.2
## Release Notes

This public release contains the definition and documentation of

* quality-on-demand v1.1.0
* qos-profiles v1.1.0
* qos-provisioning v0.3.0

The API definition(s) are based on
* Commonalities v0.6.0 (r3.3)
* Identity and Consent Management v0.4.0 (r3.3)

## quality-on-demand v1.1.0

**quality-on-demand v1.1.0 is minor update of the API, and is backward compatible with v1.0.0.**

- API definition **with inline documentation**:
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/quality-on-demand.yaml&nocors)
- [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/quality-on-demand.yaml)
- OpenAPI [YAML spec file](https://github.com/camaraproject/QualityOnDemand/blob/r3.2/code/API_definitions/quality-on-demand.yaml)

### Added

* Added HTTP-422 error response when qos profile is not applicable during session creation by @maxl2287 in https://github.com/camaraproject/QualityOnDemand/pull/433
* Added error response documentation in `info.description` by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/467
* Added pattern for `sink` URI to enforce HTTPS and added 400 INVALID_SINK error code by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/491

### Changed

* Adjusted x-correlator pattern as defined in CAMARA Commonalities by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/465
* Updated documentation regarding device identifiers in responses and added DeviceResponse object to limit device identifiers in responses to exactly one by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/453
* Added gherkin linting and updated test definition files by @maxl2287 in https://github.com/camaraproject/QualityOnDemand/pull/478
* Aligned some properties descriptions to latest guidelines in Commonalities r3.3 by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/484

### Fixed

* Resolved mismatch between test and API definition for networkAccessIdentifier and sinkCredential by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/462
* Fixed indentation, multiple blank line and trailing space errors in feature files by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/485
* Fixed test plan step for Authorization Bearer by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/482

### Removed

* Removed AUTHENTICATION_REQUIRED error by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/436
* Removed the IDENTIFIER_MISMATCH error code option from 422 responses and associated test cases by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/453

## qos-profiles v1.1.0

**qos-profiles v1.1.0 is a minor update of the API, and is backward compatible with v1.0.0.**

- API definition **with inline documentation**:
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/qos-profiles.yaml&nocors)
- [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/qos-profiles.yaml)
- OpenAPI [YAML spec file](https://github.com/camaraproject/QualityOnDemand/blob/r3.2/code/API_definitions/qos-profiles.yaml)

### Added

* Added an optional countryAvailability field to the QoS profile to allow an API provider to indicate in which countries (and networks) the profile is available by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/435
* Added error response documentation in `info.description` by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/467

### Changed

* Adjusted x-correlator pattern as defined in CAMARA Commonalities by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/465
* Updated documentation regarding multiple device identifiers in requests and the expected behavior of implementations by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/453
* Added gherkin linting and updated test definition files by @maxl2287 in https://github.com/camaraproject/QualityOnDemand/pull/478
* Aligned some properties descriptions to latest guidelines in Commonalities r3.3 by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/484

### Fixed

* Resolved mismatch between test and API definition for networkAccessIdentifier and sinkCredential by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/462

### Removed

* Removed AUTHENTICATION_REQUIRED error by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/436
* Removed the IDENTIFIER_MISMATCH error code option from 422 responses and associated test cases by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/453

## qos-provisioning v0.3.0

**qos-provisioning v0.3.0 is a new initial version of the API with major changes compared to v0.2.0**

**There are multiple breaking changes compared to v0.2.0 of qod-provisioning**, e.g.:
* The API got renamed to QoS Provisioning (from QoD Provisioning)
* The resource path is renamed to `qos-assignments` (from `qos-device`)
* Properties, operationIds, schemata etc are aligned with with "qos-assignments", e.g. `provisioningId` was changed to `assignmentId`

- API definition **with inline documentation**:
- [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/qos-provisioning.yaml&nocors)
- [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/qos-provisioning.yaml)
- OpenAPI [YAML spec file](https://github.com/camaraproject/QualityOnDemand/blob/r3.2/code/API_definitions/qos-provisioning.yaml)

### Added

* Added error response documentation in `info.description` by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/467
* Added error 422 QOS_PROVISIONING.QOS_PROFILE_NOT_APPLICABLE by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/476
* Added pattern for `sink` URI to enforce HTTPS and added 400 INVALID_SINK error code by @hdamker in https://github.com/camaraproject/QualityOnDemand/pull/491

### Changed

* Refined the terminology throughout the API by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/447
* URL, paths, properties, operationIs and schemata etc are changed, see breaking changes above
* Adjusted x-correlator pattern as defined in CAMARA Commonalities by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/465
* Updated documentation regarding device identifiers in responses and added DeviceResponse object to limit device identifiers in responses to exactly one by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/453
* Added gherkin linting and updated test definition files by @maxl2287 in https://github.com/camaraproject/QualityOnDemand/pull/478
* Aligned some properties descriptions to latest guidelines in Commonalities r3.3 by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/484

### Fixed

* Resolved mismatch between test and API definition for networkAccessIdentifier and sinkCredential by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/447
* Fixed indentation, multiple blank line and trailing space errors in feature files by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/485
* Fixed test plan step for Authorization Bearer by @jlurien in https://github.com/camaraproject/QualityOnDemand/pull/482

### Removed

* Removed AUTHENTICATION_REQUIRED error by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/436
* Removed the IDENTIFIER_MISMATCH error code option from 422 responses and associated test cases by @eric-murray in https://github.com/camaraproject/QualityOnDemand/pull/453

**Full Changelog**: https://github.com/camaraproject/QualityOnDemand/compare/r2.2...r3.2

# r3.1
## Release Notes

Expand Down
28 changes: 13 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,24 +30,22 @@ Incubating API Repository to evolve and maintain the definitions and documentati

* Note: Please be aware that the project will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until a new release is created. For example, changes may be reverted before a release is created. **For best results, use the latest public release**.

* **NEW**: Pre-release [r3.1](https://github.com/camaraproject/QualityOnDemand/releases/tag/r3.1) with quality-on-demand v1.1.0-rc.2, qos-profiles v1.1.0-rc.2 and qos-provisioning v0.3.0-rc.1 is available.
* **NEW**: **The latest public release is [r3.2](https://github.com/camaraproject/QualityOnDemand/releases/tag/r3.2), with the following API versions:**

* **The latest public release is [r2.2](https://github.com/camaraproject/QualityOnDemand/releases/tag/r2.2), with the following API versions:**

* **quality-on-demand v1.0.0 (first stable version)**
[[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r2.2/code/API_definitions/quality-on-demand.yaml)
[[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r2.2/code/API_definitions/quality-on-demand.yaml&nocors)
[[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r2.2/code/API_definitions/quality-on-demand.yaml)
* **quality-on-demand v1.1.0**
[[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r3.2/code/API_definitions/quality-on-demand.yaml)
[[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/quality-on-demand.yaml&nocors)
[[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/quality-on-demand.yaml)

* **qos-profiles v1.0.0 (first stable version)**
[[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r2.2/code/API_definitions/qos-profiles.yaml)
[[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r2.2/code/API_definitions/qos-profiles.yaml&nocors)
[[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r2.2/code/API_definitions/qos-profiles.yaml)
* **qos-profiles v1.1.0**
[[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r3.2/code/API_definitions/qos-profiles.yaml)
[[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/qos-profiles.yaml&nocors)
[[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/qos-profiles.yaml)

* qod-provisioning v0.2.0 (second initial version)
[[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r2.2/code/API_definitions/qod-provisioning.yaml)
[[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r2.2/code/API_definitions/qod-provisioning.yaml&nocors)
[[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r2.2/code/API_definitions/qod-provisioning.yaml)
* qos-provisioning v0.3.0 (third initial version)
[[YAML]](https://github.com/camaraproject/QualityOnDemand/blob/r3.2/code/API_definitions/qos-provisioning.yaml)
[[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/qos-provisioning.yaml&nocors)
[[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/QualityOnDemand/r3.2/code/API_definitions/qos-provisioning.yaml)

* Previous releases and pre-releases are available here: https://github.com/camaraproject/QualityOnDemand/releases
* For changes see the [CHANGELOG.md](https://github.com/camaraproject/QualityOnDemand/blob/main/CHANGELOG.md)
Expand Down
8 changes: 4 additions & 4 deletions code/API_definitions/qos-profiles.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ info:
- Discover the available QoS profiles for a specific device
- Retrieve the characteristics of a specific QoS profile by name

How QoS profiles are mapped to connectivity characteristics are subject to agreements between the API provider and the API consumer. Within the CAMARA project, you can find a sample for such a mapping of QoS profiles. [CAMARA QoS Profiles Mapping Table (REFERENCE DRAFT)](https://github.com/camaraproject/QualityOnDemand/blob/r3.1/documentation/API_documentation/QoSProfile_Mapping_Table.md)
How QoS profiles are mapped to connectivity characteristics are subject to agreements between the API provider and the API consumer. Within the CAMARA project, you can find a sample for such a mapping of QoS profiles. [CAMARA QoS Profiles Mapping Table (REFERENCE DRAFT)](https://github.com/camaraproject/QualityOnDemand/blob/r3.2/documentation/API_documentation/QoSProfile_Mapping_Table.md)

# Authorization and authentication

Expand Down Expand Up @@ -57,7 +57,7 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: wip
version: 1.1.0
x-camara-commonalities: 0.6


Expand All @@ -66,7 +66,7 @@ externalDocs:
url: https://github.com/camaraproject/QualityOnDemand

servers:
- url: "{apiRoot}/qos-profiles/vwip"
- url: "{apiRoot}/qos-profiles/v1"
variables:
apiRoot:
default: http://localhost:9091
Expand All @@ -89,7 +89,7 @@ paths:
- If the access token is 3-legged, all returned QoS Profiles will be available to the subject (device) associated with the access token.
- If the access token is 2-legged and a device filter is provided, all returned QoS Profiles will be available to that device. If multiple device identifiers are provided within the device property, only QoS Profiles available to the device identifier chosen by the implementation will be returned, even if the identifiers do not match the same device. API provider does not perform any logic to validate/correlate that the indicated device identifiers match the same device. No error should be returned if the identifiers are otherwise valid to prevent API consumers correlating different identifiers with a given end user.
- This call uses the POST method instead of GET to comply with the CAMARA Commonalities guidelines for sending sensitive or complex data in API calls. Since the device field may contain personally identifiable information, it should not be sent via GET. Additionally, this call may include complex data structures.
[CAMARA API Design Guidelines](https://github.com/camaraproject/Commonalities/blob/r2.3/documentation/API-design-guidelines.md#post-or-get-for-transferring-sensitive-or-complex-data)
[CAMARA API Design Guidelines](https://github.com/camaraproject/Commonalities/blob/r3.3/documentation/API-design-guidelines.md#post-or-get-for-transferring-sensitive-or-complex-data)

security:
- openId:
Expand Down
6 changes: 3 additions & 3 deletions code/API_definitions/qos-provisioning.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,15 +74,15 @@ info:
license:
name: Apache 2.0
url: https://www.apache.org/licenses/LICENSE-2.0.html
version: wip
version: 0.3.0
x-camara-commonalities: 0.6

externalDocs:
description: Project documentation at CAMARA
url: https://github.com/camaraproject/QualityOnDemand

servers:
- url: "{apiRoot}/qos-provisioning/vwip"
- url: "{apiRoot}/qos-provisioning/v0.3"
variables:
apiRoot:
default: http://localhost:9091
Expand Down Expand Up @@ -307,7 +307,7 @@ paths:
- When a three-legged access token is used however, this optional identifier MUST NOT be provided, as the subject will be uniquely identified from the access token.
- The QoS profile assignment must have been created by the same API consumer given in the access token.
- If no QoS profile assignment is found for the device, an error response 404 is returned with code "NOT_FOUND".
- This call uses the POST method instead of GET to comply with the [CAMARA Commonalities guidelines](https://github.com/camaraproject/Commonalities/blob/r2.3/documentation/API-design-guidelines.md#post-or-get-for-transferring-sensitive-or-complex-data) for sending sensitive or complex data in API calls. Since the device field may contain personally identifiable information, it should not be sent via GET.
- This call uses the POST method instead of GET to comply with the [CAMARA Commonalities guidelines](https://github.com/camaraproject/Commonalities/blob/r3.3/documentation/CAMARA-API-Design-Guide.md#65-post-or-get-for-transferring-sensitive-or-complex-data) for sending sensitive or complex data in API calls. Since the device field may contain personally identifiable information, it should not be sent via GET.

operationId: getQosAssignmentByDevice
parameters:
Expand Down
Loading