diff --git a/CHANGELOG.md b/CHANGELOG.md index 69d3a82..dcfdaa0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,8 @@ # Changelog DeviceDataVolume ## Table of Contents -- **[r1.2](#r12)** +- **[r1.3](#r13)** +- [r1.2](#r12) - [r1.1](#r11) **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 it has been released. For example, changes may be reverted before a release is published. For the best results, use the latest published release.** @@ -13,6 +14,84 @@ 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 +# r1.3 + +## Release Notes + +This initial public release contains the definition and documentation of +* device-data-volume v0.1.0 +* device-data-volume-subscriptions v0.1.0 + +The API definition(s) are based on +* Commonalities [r3.3](https://github.com/camaraproject/Commonalities/releases/tag/r3.3) +* Identity and Consent Management [r3.3](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r3.3) + +## device-data-volume v0.1.0 +- API definition **with inline documentation**: + - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.3/code/API_definitions/device-data-volume.yaml&nocors) + - [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.3/code/API_definitions/device-data-volume.yaml) + - OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceDataVolume/blob/r1.3/code/API_definitions/device-data-volume.yaml) + +### Added +* Basic test specifications for both Device Data Volume and its Subscription by @sachinvodafone in https://github.com/camaraproject/DeviceDataVolume/pull/13 +* Add response-component for `/check` - API incl. `thresholdExceeded` as property by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/33 +* Add gherkin-linting and update links in config by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/37 +* Documented Error Responses info.description section by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/47 + +### Changed +* Migrate to centralized linting workflows by @hdamker-bot in https://github.com/camaraproject/DeviceDataVolume/pull/67 +* Fix links to API description in API readiness checklists by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/65 +* Reset version to wip following alpha release by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/17 +* Update error codes and format by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/19 +* Alignment with Commonalities 0.5 by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/28 +* Update test-scenarios for device-data-volume- and subscription - APIs by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/34 +* Mark `device` as optional by adding support for 3-legged token by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/35 +* Update OAS and test definitions to remove IDENTIFIER_MISMATCH error code by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/52 +* Update `x-correlator` pattern by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/49 + +### Removed +* Remove AUTHENTICATION_REQUIRED error code by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/40 + +## device-data-volume-subscriptions v0.1.0 +- API definition **with inline documentation**: + - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.3/code/API_definitions/device-data-volume-subscriptions.yaml&nocors) + - [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.3/code/API_definitions/device-data-volume-subscriptions.yaml) + - OpenAPI [YAML spec file](https://github.com/camaraproject/DeviceDataVolume/blob/r1.3/code/API_definitions/device-data-volume-subscriptions.yaml) + +### Added +* Basic test specifications for both Device Data Volume and Its Subscription by @sachinvodafone in https://github.com/camaraproject/DeviceDataVolume/pull/13 +* Add gherkin-linting and update links in config by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/37 +* Documented Error Responses info.description section by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/47 + +### Changed +* Migrate to centralized linting workflows by @hdamker-bot in https://github.com/camaraproject/DeviceDataVolume/pull/67 +* Fix links to API description in API readiness checklists by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/65 +* Reset version to wip following alpha release by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/17 +* Update error codes and format by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/19 +* Alignment with Commonalities 0.5 by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/28 +* Update test-scenarios for device-data-volume- and subscription - APIs by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/34 +* Mark `device` as optional by adding support for 3-legged token by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/35 +* Update OAS and test definitions to remove IDENTIFIER_MISMATCH error code by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/52 +* Update the `sink` - pattern and set `id` in `SubscriptionAsync` to mandatory by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/61 +* [data-volume-subscriptions]: update `subscription-ends` to `subscription-ended` and add `subscription-started` and `subscription-updated` by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/56 +* Update `x-correlator` pattern by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/49 + +### Fixed +* Add missing components and update Subscription types array items by @dfischer-tech in https://github.com/camaraproject/DeviceDataVolume/pull/24 + +### Removed +* Remove allof in sinkcredential by @ravindrapalaskar17 in https://github.com/camaraproject/DeviceDataVolume/pull/27 +* Remove AUTHENTICATION_REQUIRED error code by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/40 + +## New Contributors +* @maxl2287 made their first contribution in https://github.com/camaraproject/DeviceDataVolume/pull/19 +* @sachinvodafone made their first contribution in https://github.com/camaraproject/DeviceDataVolume/pull/13 +* @dfischer-tech made their first contribution in https://github.com/camaraproject/DeviceDataVolume/pull/24 +* @ravindrapalaskar17 made their first contribution in https://github.com/camaraproject/DeviceDataVolume/pull/27 +* @hdamker-bot made their first contribution in https://github.com/camaraproject/DeviceDataVolume/pull/45 + +**Full Changelog**: https://github.com/camaraproject/DeviceDataVolume/commits/r1.3 + # r1.2 ## Release Notes @@ -49,7 +128,6 @@ The API definition(s) are based on * Update OAS and test definitions to remove IDENTIFIER_MISMATCH error code by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/52 * Update `x-correlator` pattern by @maxl2287 in https://github.com/camaraproject/DeviceDataVolume/pull/49 - ### Removed * Remove AUTHENTICATION_REQUIRED error code by @eric-murray in https://github.com/camaraproject/DeviceDataVolume/pull/40 diff --git a/README.md b/README.md index e950a70..9a11b0b 100644 --- a/README.md +++ b/README.md @@ -24,16 +24,16 @@ Sandbox API Repository to describe, develop, document, and test the DeviceDataVo ## Release Information -* **The latest pre-release is [r1.2](https://github.com/camaraproject/DeviceDataVolume/tree/r1.2) with the following API definitions:** - - * **device-data-volume v0.1.0-rc.1** - [[YAML]](https://github.com/camaraproject/DeviceDataVolume/blob/r1.2/code/API_definitions/device-data-volume.yaml) - [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.2/code/API_definitions/device-data-volume.yaml&nocors) - [[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.2/code/API_definitions/device-data-volume.yaml) - * **device-data-volume-subscriptions v0.1.0-rc.1** - [[YAML]](https://github.com/camaraproject/DeviceDataVolume/blob/r1.2/code/API_definitions/device-data-volume-subscriptions.yaml) - [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.2/code/API_definitions/device-data-volume-subscriptions.yaml&nocors) - [[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.2/code/API_definitions/device-data-volume-subscriptions.yaml) +* **The new public release is [r1.3](https://github.com/camaraproject/DeviceDataVolume/tree/r1.3) with the following API definitions:** + + * **device-data-volume v0.1.0** + [[YAML]](https://github.com/camaraproject/DeviceDataVolume/blob/r1.3/code/API_definitions/device-data-volume.yaml) + [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.3/code/API_definitions/device-data-volume.yaml&nocors) + [[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.3/code/API_definitions/device-data-volume.yaml) + * **device-data-volume-subscriptions v0.1.0** + [[YAML]](https://github.com/camaraproject/DeviceDataVolume/blob/r1.3/code/API_definitions/device-data-volume-subscriptions.yaml) + [[View it on ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.3/code/API_definitions/device-data-volume-subscriptions.yaml&nocors) + [[View it on Swagger Editor]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/DeviceDataVolume/r1.3/code/API_definitions/device-data-volume-subscriptions.yaml) - Current work-in-progress version is available within the [main branch](https://github.com/camaraproject/DeviceDataVolume) diff --git a/code/API_definitions/device-data-volume-subscriptions.yaml b/code/API_definitions/device-data-volume-subscriptions.yaml index 10e877d..de04b65 100644 --- a/code/API_definitions/device-data-volume-subscriptions.yaml +++ b/code/API_definitions/device-data-volume-subscriptions.yaml @@ -88,7 +88,7 @@ info: license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html - version: wip + version: 0.1.0 x-camara-commonalities: 0.6 externalDocs: @@ -96,7 +96,7 @@ externalDocs: url: https://github.com/camaraproject/DeviceDataVolume servers: - - url: "{apiRoot}/device-data-volume-subscriptions/vwip" + - url: "{apiRoot}/device-data-volume-subscriptions/v0.1" variables: apiRoot: default: http://localhost:9091 @@ -421,18 +421,17 @@ components: type: string format: date-time example: 2023-01-17T13:18:23.682Z - description: The subscription expiration time (in date-time format) requested by the API consumer. Up to API project decision to keep it. + description: The subscription expiration time (in date-time format) requested by the API consumer. subscriptionMaxEvents: type: integer - description: Identifies the maximum number of event reports to be generated (>=1) requested by the API consumer - Once this number is reached, the subscription ends. Up to API project decision to keep it. + description: Identifies the maximum number of event reports to be generated (>=1) requested by the API consumer - Once this number is reached, the subscription ends. minimum: 1 example: 5 initialEvent: type: boolean description: | Set to `true` by API consumer if consumer wants to get an event as soon as the subscription is created and current situation reflects event request. - Example: Consumer request Roaming event. If consumer sets initialEvent to true and device is in roaming situation, an event is triggered - Up to API project decision to keep it. + Example: Consumer request Roaming event. If consumer sets initialEvent to true and device is in roaming situation, an event is triggered. SinkCredential: description: A sink credential provides authentication or authorization information necessary to enable delivery of events to a target. @@ -514,7 +513,6 @@ components: In the case of an ACCESS_TOKEN_EXPIRED termination reason, implementation should notify the client before the expiration date. If the access token is a JWT and registered "exp" (Expiration Time) claim is present, the two expiry times should match. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. - Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) example: "2023-07-03T12:27:08.312Z" accessTokenType: description: REQUIRED. Type of the access token (See [OAuth 2.0](https://tools.ietf.org/html/rfc6749#section-7.1)). @@ -582,7 +580,6 @@ components: description: | Date when the event subscription will begin/began It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. - Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) example: "2023-07-03T12:27:08.312Z" expiresAt: type: string @@ -590,7 +587,6 @@ components: description: | Date when the event subscription will expire. Only provided when `subscriptionExpireTime` is indicated by API client or Telco Operator has specific policy about that. It must follow [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339#section-5.6) and must have time zone. - Recommended format is yyyy-MM-dd'T'HH:mm:ss.SSSZ (i.e. which allows 2023-07-03T14:27:08.312+02:00 or 2023-07-03T12:27:08.312Z) status: type: string description: |- diff --git a/code/API_definitions/device-data-volume.yaml b/code/API_definitions/device-data-volume.yaml index 685c1f1..b6ed016 100644 --- a/code/API_definitions/device-data-volume.yaml +++ b/code/API_definitions/device-data-volume.yaml @@ -61,7 +61,7 @@ info: license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html - version: wip + version: 0.1.0 x-camara-commonalities: 0.6 externalDocs: @@ -69,7 +69,7 @@ externalDocs: url: https://github.com/camaraproject/DeviceDataVolume servers: - - url: "{apiRoot}/device-data-volume/vwip" + - url: "{apiRoot}/device-data-volume/v0.1" variables: apiRoot: default: http://localhost:9091 diff --git a/code/Test_definitions/README.md b/code/Test_definitions/README.md deleted file mode 100644 index 27a1f06..0000000 --- a/code/Test_definitions/README.md +++ /dev/null @@ -1 +0,0 @@ -This directory contains at least one `.feature` file containing test definitions for the repository API(s). diff --git a/code/Test_definitions/device-data-volume-checkDataVolume.feature b/code/Test_definitions/device-data-volume-checkDataVolume.feature index f73942a..2e9c888 100644 --- a/code/Test_definitions/device-data-volume-checkDataVolume.feature +++ b/code/Test_definitions/device-data-volume-checkDataVolume.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Device Data Volume API, vwip - Operation checkDataVolume +Feature: CAMARA Device Data Volume API, v0.1.0 - Operation checkDataVolume # Input to be provided by the implementation to the tester # @@ -12,7 +12,8 @@ Feature: CAMARA Device Data Volume API, vwip - Operation checkDataVolume # References to OAS spec schemas refer to schemas specified in device-data-volume.yaml Background: Common checkDataVolume setup - Given the resource "/device-data-volume/vwip/check" + Given an environment at "apiRoot" + And the resource "/device-data-volume/v0.1/check" And the header "Authorization" is set to a valid access token And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator" And the request body is set by default to a request body compliant with the schema "#/components/schemas/CheckDataVolumeRequest" diff --git a/code/Test_definitions/device-data-volume-retrieveDataVolume.feature b/code/Test_definitions/device-data-volume-retrieveDataVolume.feature index db72cc9..2398c88 100644 --- a/code/Test_definitions/device-data-volume-retrieveDataVolume.feature +++ b/code/Test_definitions/device-data-volume-retrieveDataVolume.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Device Data Volume API, vwip - Operation retrieveDataVolume +Feature: CAMARA Device Data Volume API, v0.1.0 - Operation retrieveDataVolume # Input to be provided by the implementation to the tester @@ -13,7 +13,8 @@ Feature: CAMARA Device Data Volume API, vwip - Operation retrieveDataVolume # References to OAS spec schemas refer to schemas specified in device-data-volume.yaml Background: Common retrieveDataVolume setup - Given the resource "/device-data-volume/vwip/retrieve" + Given an environment at "apiRoot" + And the resource "/device-data-volume/v0.1/retrieve" And the header "Authorization" is set to a valid access token And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator" And the request body is set by default to a request body compliant with the schema "#/components/schemas/RetrieveDataVolumeRequest" diff --git a/code/Test_definitions/device-data-volume-subscriptions.feature b/code/Test_definitions/device-data-volume-subscriptions.feature index 3281a7b..2110201 100644 --- a/code/Test_definitions/device-data-volume-subscriptions.feature +++ b/code/Test_definitions/device-data-volume-subscriptions.feature @@ -1,4 +1,4 @@ -Feature: Device Data Volume Subscriptions API, vwip - Operation on subscriptions +Feature: Device Data Volume Subscriptions API, v0.1.0 - Operation on subscriptions # Input to be provided by the implementation to the tester # @@ -12,9 +12,9 @@ Feature: Device Data Volume Subscriptions API, vwip - Operation on subscriptions # The known device data volume status of the testing device # # References to OAS spec schemas refer to schemas specified in device-data-volume-subscriptions.yaml - - Background: Common Device Data Volume setup - Given the resource "/device-data-volume-subscriptions/vwip/subscriptions" + Background: Common Device Data Volume Subscription setup + Given an environment at "apiRoot" + And the resource "/device-data-volume-subscriptions/v0.1/subscriptions" And the header "Authorization" is set to a valid access token And the header "x-correlator" complies with the schema at "#/components/schemas/XCorrelator" diff --git a/documentation/API_documentation/device-data-volume-API-Readiness-Checklist.md b/documentation/API_documentation/device-data-volume-API-Readiness-Checklist.md index 54f800c..d6b86ea 100644 --- a/documentation/API_documentation/device-data-volume-API-Readiness-Checklist.md +++ b/documentation/API_documentation/device-data-volume-API-Readiness-Checklist.md @@ -1,12 +1,12 @@ # API Readiness Checklist -Checklist for device-data-volume v0.1.0-rc.1 in r1.2. +Checklist for device-data-volume v0.1.0 in r1.3 | Nr | API release assets | alpha | release-candidate | initial
public | stable
public | Status | Reference information | |----|----------------------------------------------|:-----:|:-----------------:|:-----------------:|:-----------------:|:------:|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| | 1 | API definition | M | M | M | M | Y | [device-data-volume.yaml](/code/API_definitions/device-data-volume.yaml) | -| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | r3.2 | -| 3 | Guidelines from ICM applied | O | M | M | M | Y | r3.2 | +| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | r3.3 | +| 3 | Guidelines from ICM applied | O | M | M | M | Y | r3.3 | | 4 | API versioning convention applied | M | M | M | M | Y | | | 5 | API documentation | M | M | M | M | Y | in yaml | | 6 | User stories | O | O | O | M | N | | diff --git a/documentation/API_documentation/device-data-volume-subscriptions-API-Readiness-Checklist.md b/documentation/API_documentation/device-data-volume-subscriptions-API-Readiness-Checklist.md index dd276f0..34c22c9 100644 --- a/documentation/API_documentation/device-data-volume-subscriptions-API-Readiness-Checklist.md +++ b/documentation/API_documentation/device-data-volume-subscriptions-API-Readiness-Checklist.md @@ -1,12 +1,12 @@ # API Readiness Checklist -Checklist for device-data-volume-subscriptions v0.1.0-rc.1 in r1.2. +Checklist for device-data-volume-subscriptions v0.1.0 in r1.3 | Nr | API release assets | alpha | release-candidate | initial
public | stable
public | Status | Reference information | |----|----------------------------------------------|:-----:|:-----------------:|:-----------------:|:-----------------:|:------:|:----------------------------------------------------------------------------------------------------:| | 1 | API definition | M | M | M | M | Y | [device-data-volume-subscriptions.yaml](/code/API_definitions/device-data-volume-subscriptions.yaml) | -| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | r3.2 | -| 3 | Guidelines from ICM applied | O | M | M | M | Y | r3.2 | +| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | r3.3 | +| 3 | Guidelines from ICM applied | O | M | M | M | Y | r3.3 | | 4 | API versioning convention applied | M | M | M | M | Y | | | 5 | API documentation | M | M | M | M | Y | in yaml | | 6 | User stories | O | O | O | M | N | |