diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4434d16..802f3fa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,7 @@
# Changelog Network Slice Booking
## Table of Contents
+- [r1.2](#r1.2)
- [r1.1](#r1.1)
@@ -13,8 +14,34 @@ 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.2
+## Release Notes
+This release contains the definition and documentation of
+
+- network-slice-booking v0.1.0
+
+The API definition(s) are based on
+
+- Commonalities v0.6.0
+- Identity and Consent Management v0.4.0
+## network-slice-booking v0.1.0
+
+**network-slice-booking v0.1.0 is first public release version of the network-slice-booking API**
+
+- API definition **with inline documentation**:
+ - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r1.2/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/r1.2/code/API_definitions/network-slice-booking.yaml)
+ - OpenAPI [YAML spec file](https://github.com/camaraproject/NetworkSliceBooking/blob/r1.2/code/API_definitions/network-slice-booking.yaml)
+### Changed
+* Align the error name to Generic429 and change mandatory description for date-time string format in [#75](https://github.com/camaraproject/NetworkSliceBooking/issues/75)
+### Added
+* Add centralized linting workflows to ensure code quality and API specification compliance in [#69](https://github.com/camaraproject/NetworkSliceBooking/pull/69)
+* Add text description for duration format fields in [#75](https://github.com/camaraproject/NetworkSliceBooking/issues/75)
+
+**Full Changelog**: https://github.com/camaraproject/NetworkSliceBooking/commits/r1.2
+
# r1.1
-## Release note:
+## Release Notes
This release contains the definition and documentation of
- network-slice-booking v0.1.0-rc.1
@@ -28,9 +55,9 @@ The API definition(s) are based on
**network-slice-booking v0.1.0-rc.1 is first pre-release version of the network-slice-booking API**
- API definition **with inline documentation**:
- - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r1.1/code/API_definitions/NetworkSliceBooking.yaml&nocors)
- - [View it on Swagger Editor](https://camaraproject.github.io/swagger-ui/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r1.1/code/API_definitions/NetworkSliceBooking.yaml)
- - OpenAPI [YAML spec file](https://github.com/camaraproject/NetworkSliceBooking/blob/r1.1/code/API_definitions/NetworkSliceBooking.yaml)
+ - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r1.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/r1.1/code/API_definitions/network-slice-booking.yaml)
+ - OpenAPI [YAML spec file](https://github.com/camaraproject/NetworkSliceBooking/blob/r1.1/code/API_definitions/network-slice-booking.yaml)
### Added
* Upload Network Slice Booking API initial documentation in [#4](https://github.com/camaraproject/NetworkSliceBooking/pull/4)
* Add Network Slice Booking API user story in [#13](https://github.com/camaraproject/NetworkSliceBooking/pull/13)
@@ -40,3 +67,6 @@ The API definition(s) are based on
* Update API yaml, modify and format the status codes 200, 204, 404, 409 aligment with commonalities in [#50](https://github.com/camaraproject/NetworkSliceBooking/pull/50)
* Update API yaml, remove AUTHENTICATION_REQUIRED error code in [#55](https://github.com/camaraproject/NetworkSliceBooking/pull/55)
* Add the test file of Network Slice Booking API and update the file of checklist in [#57](https://github.com/camaraproject/NetworkSliceBooking/pull/57)
+* Align the API definition with Commonalities r3.2 and ICM r3.2 in [#59](https://github.com/camaraproject/NetworkSliceBooking/pull/59)
+
+**Full Changelog**: https://github.com/camaraproject/NetworkSliceBooking/commits/r1.1
diff --git a/README.md b/README.md
index 5fc8468..c197c4f 100644
--- a/README.md
+++ b/README.md
@@ -22,11 +22,15 @@ Sandbox API Repository to describe, develop, document, and test the NetworkSlice
## Release Information
-Pre-releases of this sub project are available in https://github.com/camaraproject/NetworkSliceBooking/releases
-
-
-
+- `NEW`:Public release [r1.2](https://github.com/camaraproject/NetworkSliceBooking/releases/tag/r1.2) with network-slice-booking v0.1.0 is now available:
+ - [View it on ReDoc](https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/camaraproject/NetworkSliceBooking/r1.2/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/r1.2/code/API_definitions/network-slice-booking.yaml)
+ - OpenAPI [YAML spec file](https://github.com/camaraproject/NetworkSliceBooking/blob/r1.2/code/API_definitions/network-slice-booking.yaml)
+
+
+The latest public release is available here: https://github.com/camaraproject/NetworkSliceBooking/releases/latest
For changes see [CHANGELOG.md](https://github.com/camaraproject/NetworkSliceBooking/blob/main/CHANGELOG.md)
+
## Contributing
* Meetings are held virtually
diff --git a/code/API_definitions/network-slice-booking.yaml b/code/API_definitions/network-slice-booking.yaml
index 6fe94e3..083e534 100644
--- a/code/API_definitions/network-slice-booking.yaml
+++ b/code/API_definitions/network-slice-booking.yaml
@@ -3,7 +3,7 @@ info:
title: Network Slice Booking
description: |
The Network Slice Booking (NSB) API provides programmable interface for developers to reserve a slice resource of a selected area within a period, and manage device access control as needed.
- For specific details, please refer to [Network Slice Booking API Design.md](/documentation/API_documentation/Network_Slice_Booking_API_Design.md).
+ For specific details, please refer to [Network Slice Booking API Design.md](https://github.com/camaraproject/NetworkSliceBooking/blob/r1.2/documentation/API_documentation/Network_Slice_Booking_API_Design.md).
# Introduction
@@ -41,7 +41,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: 0.1.0-rc.1
+ version: 0.1.0
x-camara-commonalities: 0.6
license:
name: Apache 2.0
@@ -50,7 +50,7 @@ externalDocs:
description: Project documentation at CAMARA
url: https://github.com/camaraproject/NetworkSliceBooking
servers:
- - url: "{apiRoot}/network-slice-booking/v0.1rc1"
+ - url: "{apiRoot}/network-slice-booking/v0.1"
variables:
apiRoot:
default: http://localhost:9100
@@ -74,6 +74,8 @@ paths:
security:
- openId:
- network-slice-booking:sessions:create
+ parameters:
+ - $ref: "#/components/parameters/x-correlator"
requestBody:
description: Parameters to create a new session
content:
@@ -90,6 +92,9 @@ paths:
responses:
"201":
description: Session created successfully
+ headers:
+ x-correlator:
+ $ref: "#/components/headers/x-correlator"
content:
application/json:
schema:
@@ -105,10 +110,8 @@ paths:
$ref: "#/components/responses/Generic401"
"403":
$ref: "#/components/responses/Generic403"
- "410":
- $ref: "#/components/responses/Generic410"
"422":
- $ref: "#/components/responses/Generic422"
+ $ref: "#/components/responses/NetworkSliceBooking422"
"429":
$ref: "#/components/responses/Generic429"
@@ -135,9 +138,13 @@ paths:
required: true
schema:
$ref: "#/components/schemas/SessionId"
+ - $ref: "#/components/parameters/x-correlator"
responses:
"204":
description: Session deleted
+ headers:
+ x-correlator:
+ $ref: "#/components/headers/x-correlator"
"400":
$ref: "#/components/responses/Generic400"
"401":
@@ -170,9 +177,13 @@ paths:
required: true
schema:
$ref: "#/components/schemas/SessionId"
+ - $ref: "#/components/parameters/x-correlator"
responses:
"200":
description: Contains information about active session
+ headers:
+ x-correlator:
+ $ref: "#/components/headers/x-correlator"
content:
application/json:
schema:
@@ -588,32 +599,7 @@ components:
status: 404
code: NOT_FOUND
message: The specified resource is not found.
- Generic410:
- description: Gone
- headers:
- x-correlator:
- $ref: "#/components/headers/x-correlator"
- content:
- application/json:
- schema:
- allOf:
- - $ref: "#/components/schemas/ErrorInfo"
- - type: object
- properties:
- status:
- enum:
- - 410
- code:
- enum:
- - GONE
- examples:
- GENERIC_410_GONE:
- description: Use in notifications flow to allow API Consumer to indicate that its callback is no longer available
- value:
- status: 410
- code: GONE
- message: Access to the target resource is no longer available.
- Generic422:
+ NetworkSliceBooking422:
description: Unprocessable Content
headers:
x-correlator:
@@ -687,16 +673,16 @@ components:
maxNumOfDevices: 5
downStreamRatePerDevice:
value: 10
- unit: "bps"
+ unit: bps
upStreamRatePerDevice:
value: 10
- unit: "bps"
+ unit: bps
downStreamDelayBudget:
value: 12
- unit: "Milliseconds"
+ unit: Milliseconds
upStreamDelayBudget:
value: 12
- unit: "Milliseconds"
+ unit: Milliseconds
RETRIEVAL_POLYGON:
value:
serviceTime:
@@ -717,16 +703,16 @@ components:
maxNumOfDevices: 5
downStreamRatePerDevice:
value: 10
- unit: "bps"
+ unit: bps
upStreamRatePerDevice:
value: 10
- unit: "bps"
+ unit: bps
downStreamDelayBudget:
value: 12
- unit: "Milliseconds"
+ unit: Milliseconds
upStreamDelayBudget:
value: 12
- unit: "Milliseconds"
+ unit: Milliseconds
RESPONSE_CIRCLE:
value:
serviceTime:
@@ -742,16 +728,16 @@ components:
maxNumOfDevices: 5
downStreamRatePerDevice:
value: 10
- unit: "bps"
+ unit: bps
upStreamRatePerDevice:
value: 10
- unit: "bps"
+ unit: bps
downStreamDelayBudget:
value: 12
- unit: "Milliseconds"
+ unit: Milliseconds
upStreamDelayBudget:
value: 12
- unit: "Milliseconds"
+ unit: Milliseconds
sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
RESPONSE_POLYGON:
value:
@@ -773,14 +759,14 @@ components:
maxNumOfDevices: 5
downStreamRatePerDevice:
value: 10
- unit: "bps"
+ unit: bps
upStreamRatePerDevice:
value: 10
- unit: "bps"
+ unit: bps
downStreamDelayBudget:
value: 12
- unit: "Milliseconds"
+ unit: Milliseconds
upStreamDelayBudget:
value: 12
- unit: "Milliseconds"
+ unit: Milliseconds
sessionId: "3fa85f64-5717-4562-b3fc-2c963f66afa6"
diff --git a/code/Test_definitions/network-slice-booking-createSession.feature b/code/Test_definitions/network-slice-booking-createSession.feature
index d1077fe..1f61c02 100644
--- a/code/Test_definitions/network-slice-booking-createSession.feature
+++ b/code/Test_definitions/network-slice-booking-createSession.feature
@@ -1,4 +1,4 @@
-Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation createSession
+Feature: CAMARA Network Slice Booking API v0.1.0 - Operation createSession
# Input to be provided by the implementation to the tester
#
@@ -14,11 +14,11 @@ Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation createSession
# * 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 specifies in network-slice-booking.yaml, version 0.1.0-rc.1
+ # References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version 0.1.0
Background: Common createSession setup
Given an environment at "apiRoot"
- And the resource "/network-slice-booking/v0.1rc1/sessions"
+ And the resource "/network-slice-booking/v0.1/sessions"
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"
@@ -83,17 +83,6 @@ Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation createSession
And the response property "$.code" is "PERMISSION_DENIED"
And the response property "$.message" contains a user friendly text
- @network_slice_booking_createSession_06_resource_exhaustion_scenario
- Scenario: Error response for resource exhaustion
- Given the right request body property argument
- When the request "createSession" is sent
- Then the response status code is 410
- And the response header "x-correlator" has same value as the request header "x-correlator"
- And the response header "Content-Type" is "application/json"
- And the response property "$.status" is 410
- And the response property "$.code" is "GONE"
- And the response property "$.message" is "Access to the target resource is no longer available."
-
@network_slice_booking_createSession_07_area_not_support_fail_scenario
Scenario: Common validations for fail scenario of area not supported
Given starttime, endtime, the request body property "$.serviceArea" is set to the service area of not supported and the configuration of information of network slicing
diff --git a/code/Test_definitions/network-slice-booking-deleteSession.feature b/code/Test_definitions/network-slice-booking-deleteSession.feature
index b6c9383..cc94b01 100644
--- a/code/Test_definitions/network-slice-booking-deleteSession.feature
+++ b/code/Test_definitions/network-slice-booking-deleteSession.feature
@@ -1,4 +1,4 @@
-Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation deleteSession
+Feature: CAMARA Network Slice Booking API v0.1.0 - Operation deleteSession
# Input to be provided by the implementation to the tester
#
@@ -7,11 +7,11 @@ Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation deleteSession
#
# Testing assets:
# * The sessionId of an existing session.
- # * References to OAS spec schemas refer to schemas specifies in network-slice-booking.yaml, version 0.1.0-rc.1
+ # * References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version 0.1.0
Background: Common deleteSession setup
Given an environment at "apiRoot"
- And the resource "/network-slice-booking/v0.1rc1/sessions/{sessionId}"
+ And the resource "/network-slice-booking/v0.1/sessions/{sessionId}"
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"
@@ -47,7 +47,7 @@ Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation deleteSession
And the response header "Content-Type" is "application/json"
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response property "$.status" is 400
- And the response property "$.code" is "INVALID_ARGUMENT"
+ And the response property "$.code" is "OUT_OF_RANGE"
And the response property "$.message" is "Client specified an invalid range."
@network_slice_booking_deleteSession_04_missing_authorization_scenario
diff --git a/code/Test_definitions/network-slice-booking-getSession.feature b/code/Test_definitions/network-slice-booking-getSession.feature
index a325192..4faf176 100644
--- a/code/Test_definitions/network-slice-booking-getSession.feature
+++ b/code/Test_definitions/network-slice-booking-getSession.feature
@@ -1,4 +1,4 @@
-Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation getSession
+Feature: CAMARA Network Slice Booking API v0.1.0 - Operation getSession
# Input to be provided by the implementation to the tester
#
@@ -7,11 +7,11 @@ Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation getSession
#
# Testing assets:
# * The sessionId of an existing session.
- # * References to OAS spec schemas refer to schemas specifies in network-slice-booking.yaml, version 0.1.0-rc.1
+ # * References to OAS spec schemas refer to schemas specified in network-slice-booking.yaml, version 0.1.0
Background: Common getSession setup
Given an environment at "apiRoot"
- And the resource "/network-slice-booking/v0.1rc1/sessions/{sessionId}"
+ And the resource "/network-slice-booking/v0.1/sessions/{sessionId}"
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"
@@ -50,7 +50,7 @@ Feature: CAMARA Network Slice Booking API v0.1.0-rc.1 - Operation getSession
And the response header "Content-Type" is "application/json"
And the response header "x-correlator" has same value as the request header "x-correlator"
And the response property "$.status" is 400
- And the response property "$.code" is "INVALID_ARGUMENT"
+ And the response property "$.code" is "OUT_OF_RANGE"
And the response property "$.message" is "Client specified an invalid range."
@network_slice_booking_getSession_04_missing_authorization_scenario
diff --git a/documentation/API_documentation/Network Slice Booking API Design.md b/documentation/API_documentation/Network_Slice_Booking_API_Design.md
similarity index 100%
rename from documentation/API_documentation/Network Slice Booking API Design.md
rename to documentation/API_documentation/Network_Slice_Booking_API_Design.md
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 1b6d5d9..257aaa5 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-rc.1 in r1.1
+Checklist for network-slicing-book v0.1.0 in r1.2
| 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.2](https://github.com/camaraproject/Commonalities/releases/tag/r3.2) |
-| 3 | Guidelines from ICM applied | O | M | M | M | Y | [r3.2](https://github.com/camaraproject/IdentityAndConsentManagement/releases/tag/r3.2) |
-| 4 | API versioning convention applied | M | M | M | M | Y | v0.1.0-rc.1 |
+| 2 | Design guidelines from Commonalities applied | O | M | M | M | Y | [r3.3](https://github.com/camaraproject/Commonalities/releases/tag/r3.3) |
+| 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 |
| 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) |