diff --git a/CHANGELOG.md b/CHANGELOG.md index 802f3fa..6a5308d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog Network Slice Booking ## Table of Contents +- [r2.1](#r2.1) - [r1.2](#r1.2) - [r1.1](#r1.1) @@ -14,6 +15,39 @@ 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 +# r2.1 +## Release Notes +This release contains the definition and documentation of + +- network-slice-booking v0.2.0-rc.1 +- network-slice-assignment v0.1.0-rc.1 + +The API definition(s) are based on + +- Commonalities v0.7.0 +- Identity and Consent Management v0.5.0 +## network-slice-booking v0.2.0-rc.1 +**network-slice-booking v0.2.0-rc.1 is the first release candidate of the version 0.2.0** +network-slice-booking v0.2.0 will be a minor update of the API, and is backward compatible with v0.1.0. +- API definition **with inline documentation**: + - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r2.1/code/API_definitions/network-slice-booking.yaml&nocors) + - [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r2.1/code/API_definitions/network-slice-booking.yaml) + - OpenAPI [YAML spec file](https://github.com/camaraproject/NetworkSliceBooking/blob/r2.1/code/API_definitions/network-slice-booking.yaml) +### Changed +* Modify the term session to slice in [#87](https://github.com/camaraproject/NetworkSliceBooking/pull/87) +* Split NetworkSliceBooking422-SERVICE_NOT_APPLICABLE into SERVICE_AREA_NOT_SUPPORTED and RESOURCES_INSUFFICIENT in [#92](https://github.com/camaraproject/NetworkSliceBooking/pull/92) + +## network-slice-assignment v0.1.0-rc.1 +**network-slice-assignment v0.1.0-rc.1 is the first release-candidate version of the network-slice-assignment API** +- API definition **with inline documentation**: + - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r2.1/code/API_definitions/network-slice-assignment.yaml&nocors) + - [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r2.1/code/API_definitions/network-slice-assignment.yaml) + - OpenAPI [YAML spec file](https://github.com/camaraproject/NetworkSliceBooking/blob/r2.1/code/API_definitions/network-slice-assignment.yaml) +### Added +* Add network-slice-assignment API initial definition in [#87](https://github.com/camaraproject/NetworkSliceBooking/pull/87) +### Changed +* Modified the paths structure with `sliceId` in path and `device` in request body in [#96](https://github.com/camaraproject/NetworkSliceBooking/pull/96) + # r1.2 ## Release Notes This release contains the definition and documentation of diff --git a/README.md b/README.md index 1d0f4d3..a950bd5 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,8 @@ Sandbox API Repository to describe, develop, document, and test the NetworkSlice ## Scope * Service APIs for “Network Slice Booking” (see APIBacklog.md) * It provides the API consumer with the ability to: - * reserve, dynamically provisioning, query, dynamically delete a slice with customized SLA assurance capabilities, customized service duration, expected slice covered locations. + * reserve, dynamically provisioning, query, dynamically delete a slice with customized SLA assurance capabilities, customized service duration, expected slice covered locations. + * manage user subscription to the network slices. * Describe, develop, document and test the APIs (with 1-2 Telcos) * Started: January 2024 @@ -28,11 +29,15 @@ Sandbox API Repository to describe, develop, document, and test the NetworkSlice > [!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 available release**. -* **NEW**: The latest public release is [r1.2](https://github.com/camaraproject/NetworkSliceBooking/releases/tag/r1.2) (Fall25), with the following API versions: - * **network-slice-booking v0.1.0** - [[YAML]](https://github.com/camaraproject/NetworkSliceBooking/blob/r1.2/code/API_definitions/network-slice-booking.yaml) - [[ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r1.2/code/API_definitions/network-slice-booking.yaml&nocors) - [[Swagger]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r1.2/code/API_definitions/network-slice-booking.yaml) +* **NEW**: The latest pre-release is [r2.1](https://github.com/camaraproject/NetworkSliceBooking/releases/tag/r2.1), with the following API versions: + * **network-slice-booking v0.2.0-rc.1** + [[YAML]](https://github.com/camaraproject/NetworkSliceBooking/blob/r2.1/code/API_definitions/network-slice-booking.yaml) + [[ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r2.1/code/API_definitions/network-slice-booking.yaml&nocors) + [[Swagger]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r2.1/code/API_definitions/network-slice-booking.yaml) + * **network-slice-assignment v0.1.0-rc.1** + [[YAML]](https://github.com/camaraproject/NetworkSliceBooking/blob/r2.1/code/API_definitions/network-slice-assignment.yaml) + [[ReDoc]](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r2.1/code/API_definitions/network-slice-assignment.yaml&nocors) + [[Swagger]](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r2.1/code/API_definitions/network-slice-assignment.yaml) * The latest public release is always available here: https://github.com/camaraproject/NetworkSliceBooking/releases/latest * Other releases of this repository are available in https://github.com/camaraproject/NetworkSliceBooking/releases * For changes see [CHANGELOG.md](https://github.com/camaraproject/NetworkSliceBooking/blob/main/CHANGELOG.md) diff --git a/code/API_definitions/network-slice-assignment.yaml b/code/API_definitions/network-slice-assignment.yaml index 75890c2..03110f9 100644 --- a/code/API_definitions/network-slice-assignment.yaml +++ b/code/API_definitions/network-slice-assignment.yaml @@ -48,7 +48,7 @@ info: As a specific rule, error `501 - NOT_IMPLEMENTED` can be only a possible error response if it is explicitly documented in the API. - version: wip + version: 0.1.0-rc.1 x-camara-commonalities: "0.7" license: name: Apache 2.0 @@ -57,7 +57,7 @@ externalDocs: description: Project documentation at CAMARA url: https://github.com/camaraproject/NetworkSliceBooking servers: - - url: "{apiRoot}/network-slice-assignment/vwip" + - url: "{apiRoot}/network-slice-assignment/v0.1rc1" variables: apiRoot: default: http://localhost:9100 diff --git a/code/API_definitions/network-slice-booking.yaml b/code/API_definitions/network-slice-booking.yaml index 8e1b3a4..e12f65c 100644 --- a/code/API_definitions/network-slice-booking.yaml +++ b/code/API_definitions/network-slice-booking.yaml @@ -43,7 +43,7 @@ info: As a specific rule, error `501 - NOT_IMPLEMENTED` can be only a possible error response if it is explicitly documented in the API. - version: wip + version: 0.2.0-rc.1 x-camara-commonalities: "0.7" license: name: Apache 2.0 @@ -52,7 +52,7 @@ externalDocs: description: Project documentation at CAMARA url: https://github.com/camaraproject/NetworkSliceBooking servers: - - url: "{apiRoot}/network-slice-booking/vwip" + - url: "{apiRoot}/network-slice-booking/v0.2rc1" variables: apiRoot: default: http://localhost:9100 diff --git a/code/Test_definitions/network-slice-assignment-assignDevice.feature b/code/Test_definitions/network-slice-assignment-assignDevice.feature index 68e642c..18b4c22 100644 --- a/code/Test_definitions/network-slice-assignment-assignDevice.feature +++ b/code/Test_definitions/network-slice-assignment-assignDevice.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Network Slice Assignment API vwip - Operation assignDevice +Feature: CAMARA Network Slice Assignment API v0.1.0-rc.1 - Operation assignDevice # Input to be provided by the implementation to the tester # @@ -7,11 +7,11 @@ Feature: CAMARA Network Slice Assignment API vwip - Operation assignDevice # * List of device identifier types which are not supported, among: phoneNumber, ipv4Address, ipv6Address. # * For this version, CAMARA does not allow the use of networkAccessIdentifier, so it is considered by default as not supported. # - # References to OAS spec schemas refer to schemas specified in network-slice-assignment.yaml, version wip + # References to OAS spec schemas refer to schemas specified in network-slice-assignment.yaml, version 0.1.0-rc.1 Background: Common assignDevice setup Given an environment at "apiRoot" - And the resource "/network-slice-assignment/vwip/slices/{sliceId}/devices" + And the resource "/network-slice-assignment/v0.1rc1/slices/{sliceId}/devices" And the header "Content-Type" is set to "application/json" 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/code/Test_definitions/network-slice-assignment-getDevices.feature b/code/Test_definitions/network-slice-assignment-getDevices.feature index d6b5020..eaf68a6 100644 --- a/code/Test_definitions/network-slice-assignment-getDevices.feature +++ b/code/Test_definitions/network-slice-assignment-getDevices.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Network Slice Assignment API vwip - Operation getDevices +Feature: CAMARA Network Slice Assignment API v0.1.0-rc.1 - Operation getDevices # Get information about devices assigned to an existing network slice. @@ -14,11 +14,11 @@ Feature: CAMARA Network Slice Assignment API vwip - Operation getDevices # * List of device identifier types which are not supported, among: phoneNumber, ipv4Address, ipv6Address. # * For this version, CAMARA does not allow the use of networkAccessIdentifier, so it is considered by default as not supported. # - # References to OAS spec schemas refer to schemas specified in network-slice-assignment.yaml, version wip + # References to OAS spec schemas refer to schemas specified in network-slice-assignment.yaml, version 0.1.0-rc.1 Background: Common getDevices setup Given an environment at "apiRoot" - And the resource "/network-slice-assignment/vwip/slices/{sliceId}/devices" + And the resource "/network-slice-assignment/v0.1rc1/slices/{sliceId}/devices" And the header "Content-Type" is set to "application/json" 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/code/Test_definitions/network-slice-assignment-releaseDevice.feature b/code/Test_definitions/network-slice-assignment-releaseDevice.feature index c92685e..6c251b2 100644 --- a/code/Test_definitions/network-slice-assignment-releaseDevice.feature +++ b/code/Test_definitions/network-slice-assignment-releaseDevice.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Network Slice Assignment API vwip - Operation releaseDevice +Feature: CAMARA Network Slice Assignment API v0.1.0-rc.1 - Operation releaseDevice # Input to be provided by the implementation to the tester # @@ -9,11 +9,11 @@ Feature: CAMARA Network Slice Assignment API vwip - Operation releaseDevice # * The DeviceAssignmentInfo of an existing Slice assignment # * The DeviceAssignmentInfo of an existing Slice assignment with status "AVAILABLE", and with provided values for "sink" and "sinkCredential" # - # References to OAS spec schemas refer to schemas specified in network-slice-assignment.yaml, version wip + # References to OAS spec schemas refer to schemas specified in network-slice-assignment.yaml, version 0.1.0-rc.1 Background: Common releaseDevice setup Given an environment at "apiRoot" - And the resource "/network-slice-assignment/vwip/slices/{sliceId}/release" + And the resource "/network-slice-assignment/v0.1rc1/slices/{sliceId}/release" And the header "Content-Type" is set to "application/json" 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/code/Test_definitions/network-slice-assignment-retrieveSlicesByDevice.feature b/code/Test_definitions/network-slice-assignment-retrieveSlicesByDevice.feature index e4035c1..574636f 100644 --- a/code/Test_definitions/network-slice-assignment-retrieveSlicesByDevice.feature +++ b/code/Test_definitions/network-slice-assignment-retrieveSlicesByDevice.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Network Slice Assignment API vwip - Operation retrieveSlicesByDevice +Feature: CAMARA Network Slice Assignment API v0.1.0-rc.1 - Operation retrieveSlicesByDevice # Retrieve the list of network slices to which a device is assigned. @@ -14,11 +14,11 @@ Feature: CAMARA Network Slice Assignment API vwip - Operation retrieveSlicesByDe # * List of device identifier types which are not supported, among: phoneNumber, ipv4Address, ipv6Address. # * For this version, CAMARA does not allow the use of networkAccessIdentifier, so it is considered by default as not supported. # - # References to OAS spec schemas refer to schemas specified in network-slice-assignment.yaml, version wip + # References to OAS spec schemas refer to schemas specified in network-slice-assignment.yaml, version 0.1.0-rc.1 Background: Common retrieveSlicesByDevice setup Given an environment at "apiRoot" - And the resource "/network-slice-assignment/vwip/retrieve-slices" + And the resource "/network-slice-assignment/v0.1rc1/retrieve-slices" And the header "Content-Type" is set to "application/json" 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/code/Test_definitions/network-slice-booking-createSlice.feature b/code/Test_definitions/network-slice-booking-createSlice.feature index 4751340..66a700f 100644 --- a/code/Test_definitions/network-slice-booking-createSlice.feature +++ b/code/Test_definitions/network-slice-booking-createSlice.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Network Slice Booking API vwip - Operation createSlice +Feature: CAMARA Network Slice Booking API v0.2.0-rc.1 - Operation createSlice # Input to be provided by the implementation to the tester # @@ -14,11 +14,11 @@ Feature: CAMARA Network Slice Booking API vwip - Operation createSlice # * An Area outside the supported area # * A combination of request parameters including service area, start time, and end time, configuration information of network slicing # - # References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version wip + # References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version 0.2.0-rc.1 Background: Common createSlice setup Given an environment at "apiRoot" - And the resource "/network-slice-booking/vwip/slices" + And the resource "/network-slice-booking/v0.2rc1/slices" And the header "Content-Type" is set to "application/json" 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/code/Test_definitions/network-slice-booking-deleteSlice.feature b/code/Test_definitions/network-slice-booking-deleteSlice.feature index 6ea2fc5..1ceccf0 100644 --- a/code/Test_definitions/network-slice-booking-deleteSlice.feature +++ b/code/Test_definitions/network-slice-booking-deleteSlice.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Network Slice Booking API vwip - Operation deleteSlice +Feature: CAMARA Network Slice Booking API v0.2.0-rc.1 - Operation deleteSlice # Input to be provided by the implementation to the tester # @@ -7,11 +7,11 @@ Feature: CAMARA Network Slice Booking API vwip - Operation deleteSlice # # Testing assets: # * The sliceId of an existing slice. - # * References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version wip + # * References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version 0.2.0-rc.1 Background: Common deleteSlice setup Given an environment at "apiRoot" - And the resource "/network-slice-booking/vwip/slices/{sliceId}" + And the resource "/network-slice-booking/v0.2rc1/slices/{sliceId}" And the header "Content-Type" is set to "application/json" 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/code/Test_definitions/network-slice-booking-getSlice.feature b/code/Test_definitions/network-slice-booking-getSlice.feature index 8605ed9..8473577 100644 --- a/code/Test_definitions/network-slice-booking-getSlice.feature +++ b/code/Test_definitions/network-slice-booking-getSlice.feature @@ -1,4 +1,4 @@ -Feature: CAMARA Network Slice Booking API vwip - Operation getSlice +Feature: CAMARA Network Slice Booking API v0.2.0-rc.1 - Operation getSlice # Input to be provided by the implementation to the tester # @@ -7,11 +7,11 @@ Feature: CAMARA Network Slice Booking API vwip - Operation getSlice # # Testing assets: # * The sliceId of an existing slice. - # * References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version wip + # * References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version 0.2.0-rc.1 Background: Common getSlice setup Given an environment at "apiRoot" - And the resource "/network-slice-booking/vwip/slices/{sliceId}" + And the resource "/network-slice-booking/v0.2rc1/slices/{sliceId}" And the header "Content-Type" is set to "application/json" 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/network-slice-assignment-API-Readiness-Checklist.md b/documentation/API_documentation/network-slice-assignment-API-Readiness-Checklist.md new file mode 100644 index 0000000..6668732 --- /dev/null +++ b/documentation/API_documentation/network-slice-assignment-API-Readiness-Checklist.md @@ -0,0 +1,20 @@ +# API Readiness Checklist + +Checklist for network-slice-assignment v0.1.0-rc.1 in r2.1 + +| Nr | API release assets | alpha | release-candidate | initial
public | stable
public | Status | Reference information | +|----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:-------------------------------------------------------------------------------------------:| +| 1 | API definition | M | M | M | M | Y | [link](/code/API_definitions/network-slice-assignment.yaml) | +| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r3.4](https://github.com/camaraproject/Commonalities/releases/tag/r3.4) | +| 3 | Guidelines from ICM applied | O | M | M | M | Y | [r3.3](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r3.3) | +| 4 | API versioning convention applied | M | M | M | M | Y | v0.1.0-rc.1 | +| 5 | API documentation | M | M | M | M | Y | Embed documentation into API spec - [link](/code/API_definitions/network-slice-assignment.yaml) | +| 6 | User stories | O | O | O | M | Y | [UserStory for Network Slicing Assignment](/documentation/API_documentation/NSA_User_Story.md) | +| 7 | Basic API test cases & documentation | O | M | M | M | Y | [link](/code/Test_definitions) | +| 8 | Enhanced API test cases & documentation | O | O | O | M | Y | [link](/code/Test_definitions) | +| 9 | Test result statement | O | O | O | M | N | | +| 10 | API release numbering convention applied | M | M | M | M | Y | | +| 11 | Change log updated | M | M | M | M | Y | [link](/CHANGELOG.md) | +| 12 | Previous public release was certified | O | O | O | M | N | | +| 13 | API description (for marketing) | O | O | M | M | Y | [Wiki link](https://lf-camaraproject.atlassian.net/wiki/spaces/CAM/pages/535625738/NetworkSliceAssignment+API+description) | | + diff --git a/documentation/API_documentation/network-slice-booking-API-Readiness-Checklist.md b/documentation/API_documentation/network-slice-booking-API-Readiness-Checklist.md index 257aaa5..afb8b49 100644 --- a/documentation/API_documentation/network-slice-booking-API-Readiness-Checklist.md +++ b/documentation/API_documentation/network-slice-booking-API-Readiness-Checklist.md @@ -1,13 +1,13 @@ # API Readiness Checklist -Checklist for network-slicing-book v0.1.0 in r1.2 +Checklist for network-slicing-booking v0.2.0-rc.1 in r2.1 | Nr | API release assets | alpha | release-candidate | initial
public | stable
public | Status | Reference information | |----|----------------------------------------------|:-----:|:-----------------:|:-------:|:------:|:----:|:-------------------------------------------------------------------------------------------:| | 1 | API definition | M | M | M | M | Y | [link](/code/API_definitions/network-slice-booking.yaml) | -| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r3.3](https://github.com/camaraproject/Commonalities/releases/tag/r3.3) | +| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r3.4](https://github.com/camaraproject/Commonalities/releases/tag/r3.4) | | 3 | Guidelines from ICM applied | O | M | M | M | Y | [r3.3](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r3.3) | -| 4 | API versioning convention applied | M | M | M | M | Y | v0.1.0 | +| 4 | API versioning convention applied | M | M | M | M | Y | v0.2.0-rc.1 | | 5 | API documentation | M | M | M | M | Y | Embed documentation into API spec - [link](/code/API_definitions/network-slice-booking.yaml) | | 6 | User stories | O | O | O | M | Y | [UserStory for Network Slicing Booking](/documentation/API_documentation/NSB_User_Story.md) | | 7 | Basic API test cases & documentation | O | M | M | M | Y | [link](/code/Test_definitions) |