Skip to content
38 changes: 34 additions & 4 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Changelog Network Slice Booking

## Table of Contents
- [r1.2](#r1.2)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this line should be put before line 4 (most recent at the top)

- [r1.1](#r1.1)


Expand All @@ -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**

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the 3 links to view the API are missing (see as in r1.1, but links to r1.2, and same as in readme)

- 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
Expand All @@ -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)
Expand All @@ -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
12 changes: 8 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,15 @@ Sandbox API Repository to describe, develop, document, and test the NetworkSlice

## Release Information
<!-- Use/uncomment one or multiple the following options -->
Pre-releases of this sub project are available in https://github.com/camaraproject/NetworkSliceBooking/releases
<!-- The latest public release is available here: https://github.com/camaraproject/§repo_name§/releases/latest -->
<!-- For changes see [CHANGELOG.md](https://github.com/camaraproject/§repo_name§/blob/main/CHANGELOG.md) -->

- `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
Expand Down
82 changes: 34 additions & 48 deletions code/API_definitions/network-slice-booking.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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:
Expand All @@ -90,6 +92,9 @@ paths:
responses:
"201":
description: Session created successfully
headers:
x-correlator:
$ref: "#/components/headers/x-correlator"
content:
application/json:
schema:
Expand All @@ -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"

Expand All @@ -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":
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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:
Expand All @@ -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:
Expand All @@ -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:
Expand All @@ -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"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Comment for future version: add tests for polygon area validation limits (between 3-15 points)

Original file line number Diff line number Diff line change
@@ -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
#
Expand All @@ -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"
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
@@ -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
#
Expand All @@ -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"
Expand Down Expand Up @@ -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
Expand Down
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

in line 53; the error should be "OUT_OF_RANGE"

Original file line number Diff line number Diff line change
@@ -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
#
Expand All @@ -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"
Expand Down Expand Up @@ -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
Expand Down
Loading