Commit 38b41eb1 authored by admin_forge's avatar admin_forge
Browse files

Merge branch 'develop' into 'master'

STF593 - Milestone A - Merge v2.1.1 to Master branch

See merge request !1
parents 6ea890cd 59bdd2b4
Pipeline #5875 passed with stage
in 0 seconds
#!/bin/bash
specfiles=$(ls | egrep "^[^.]*.(json|yaml)")
fres=0
for i in $specfiles ; do
echo "-- Validating and linting OpenAPI file $i..."
swagger-cli validate $i
res=$?
speccy lint "$i"
res2=$?
fres=$(($fres||$res||$res2))
echo "--- Validator returned $res, linter returned $res2."
done
echo "-- Final validator returns $fres."
exit $fres
# Multi-access Edge Computing WLAN Information API
This repository contains OpenAPIs descriptions for the interfaces specified in ETSI MEC GS 028 "MEC WLAN Information API".
This repository contains OpenAPIs descriptions for the interfaces specified in ETSI MEC GS 028
More information and download options for the specification are available
[here](https://portal.etsi.org/webapp/WorkProgram/Report_WorkItem.asp?WKI_ID=53995).
## Online resources
**{-NOTE: The OpenAPI definitions are under development. The API as defined in GS MEC 028 takes precedence.-}**
* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_MEC028v020101p.pdf)
* [Navigate the API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs028-wai-api/raw/develop/WlanInformationApi.yaml).
* [Edit the API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs028-wai-api/raw/develop/WlanInformationApi.yaml).
## License
Unless specified otherwise, the content of this repository and the files contained are released under the BSD-3-Clause license.
See the attached LICENSE file or visit https://forge.etsi.org/legal-matters.
\ No newline at end of file
See the attached LICENSE file or visit https://forge.etsi.org/legal-matters.
{
"openapi": "3.0.0",
"info": {
"contact": {
"url": "https://forge.etsi.org/rep/mec/gs028-wai-api"
},
"title": "ETSI GS MEC 028 - WLAN Access Information API",
"version": "2.1.1",
"description": "The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI",
"license": {
"name": "BSD-3-Clause",
"url": "https://forge.etsi.org/legal-matters"
}
},
"externalDocs": {
"description": "ETSI MEC028 V2.1.1 WLAN Information API",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf"
},
"servers": [
{
"url": "https://localhost/wai/v2"
}
],
"tags": [
{
"name": "wai"
}
],
"paths": {
"/queries/ap/ap_information": {
"get": {
"tags": [
"wai"
],
"summary": "Retrieve information on existing Access Points",
"description": "Queries information about existing WLAN Access Points",
"operationId": "apInfoGET",
"parameters": [
{
"$ref": "#/components/parameters/Query.Filter"
},
{
"$ref": "#/components/parameters/Query.AllFields"
},
{
"$ref": "#/components/parameters/Query.Fields"
},
{
"$ref": "#/components/parameters/Query.ExcludeFields"
},
{
"$ref": "#/components/parameters/Query.ExcludeDefault"
}
],
"responses": {
"200": {
"description": "Successful response to ap_info request",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ApInfo"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
}
}
},
"/queries/sta/sta_information": {
"get": {
"tags": [
"wai"
],
"summary": "Retrieve information on existing Stations",
"description": "Queries information about existing WLAN stations",
"operationId": "staInfoGET",
"parameters": [
{
"$ref": "#/components/parameters/Query.Filter"
},
{
"$ref": "#/components/parameters/Query.AllFields"
},
{
"$ref": "#/components/parameters/Query.Fields"
},
{
"$ref": "#/components/parameters/Query.ExcludeFields"
},
{
"$ref": "#/components/parameters/Query.ExcludeDefault"
}
],
"responses": {
"200": {
"description": "Successful response to sta_info request",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StaInfo"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
}
}
},
"/subscriptions": {
"get": {
"tags": [
"wai"
],
"summary": "Retrieve information on subscriptions for notifications",
"description": "Queries information on subscriptions for notifications",
"operationId": "subscriptionLinkList_subscriptionsGET",
"parameters": [
{
"$ref": "#/components/parameters/Query.SubscriptionType"
}
],
"responses": {
"200": {
"description": "Response body contains the list of links to requestors subscriptions.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubscriptionLinkList"
},
"example": {
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/subscriptions"
}
},
"subscription": [
{
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/subscriptions/sub123"
}
},
"callbackReference": "http://my.callback.com/wai/assocStaSubscription/some-id",
"subscriptionType": "AssocStaSubscription"
}
]
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
}
},
"post": {
"tags": [
"wai"
],
"summary": "Create a new subscription",
"description": "Creates a new subscription to WLAN Access Information notifications",
"operationId": "subscriptionsPOST",
"requestBody": {
"description": "Subscription to be created",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InlineSubscription"
},
"example": {
"subscriptionType": "AssocStaSubscription",
"callbackReference": "http://meAppClient.example.com/wai/v2/notifications/1",
"expiryDeadline": {
"seconds": 1977836800,
"nanoSeconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
}
}
}
}
},
"responses": {
"201": {
"description": "Successful subscription response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InlineSubscription"
},
"example": {
"subscriptionType": "AssocStaSubscription",
"callbackReference": "http://meAppClient.example.com/wai/v2/notifications/1",
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/subscriptions/sub123"
}
},
"expiryDeadline": {
"seconds": 1977836800,
"nanoSeconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"415": {
"$ref": "#/components/responses/415"
},
"422": {
"$ref": "#/components/responses/422"
},
"429": {
"$ref": "#/components/responses/429"
}
},
"callbacks": {
"notification": {
"{$request.body#/callbackReference}": {
"post": {
"summary": "Callback POST used to send a notification",
"description": "Notification from WAIS, content based on subscription type",
"operationId": "notificationPOST",
"requestBody": {
"description": "Subscription notification",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InlineNotification"
},
"example": {
"notificationType": "AssocStaNotification",
"timeStamp": {
"seconds": 1977836800,
"nanoseconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
},
"staId": {
"macId": "005C01111111",
"ssid": [
"myNetworkSsid",
"myOtherNetworkSsid"
],
"aid": "1122",
"ipAddress": "10.10.1.255"
}
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
}
}
}
},
"/subscriptions/{subscriptionId}": {
"get": {
"tags": [
"wai"
],
"summary": "Retrieve information on current specific subscription",
"description": "Queries information about an existing subscription, identified by its self-referring URI returned on creation (initial POST)",
"operationId": "subscriptionsGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Subscription information regarding subscription notifications",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InlineSubscription"
},
"example": {
"subscriptionType": "AssocStaSubscription",
"callbackReference": "http://meAppClient.example.com/wai/v2/notifications/1",
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/subscriptions/sub123"
}
},
"expiryDeadline": {
"seconds": 1977836800,
"nanoSeconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"429": {
"$ref": "#/components/responses/429"
}
}
},
"put": {
"tags": [
"wai"
],
"summary": "Modify an existing subscription",
"description": "Updates an existing subscription, identified by its self-referring URI returned on creation (initial POST)",
"operationId": "subscriptionsPUT",
"requestBody": {
"description": "Subscription to be modified",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InlineSubscription"
},
"example": {
"subscriptionType": "AssocStaSubscription",
"callbackReference": "http://meAppClient.example.com/wai/v2/notifications/1",
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/subscriptions/sub123"
}
},
"expiryDeadline": {
"seconds": 1977836800,
"nanoSeconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.subscrId"
}
],
"responses": {
"200": {
"description": "Successful subscription modification",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InlineSubscription"
},
"example": {
"_links": {
"self": {
"href": "http://[hostIP]/sbox-xyz123/wai/v2/subscriptions/sub123"
}
},
"callbackReference": "http://my.callback.com/wai/some-id",
"apId": {
"macId": "005C0A0A0A0A"
}
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"406": {
"$ref": "#/components/responses/406"
},
"412": {
"$ref": "#/components/responses/412"
},
"422": {
"$ref": "#/components/responses/422"
},
"429": {
"$ref": "#/components/responses/429"
}
}
},
"delete": {
"tags": [
"wai"
],
"summary": "Cancel an existing subscription",
"description": "Cancels an existing subscription, identified by its self-referring URI returned on creation (initial POST)",
"operationId": "subscriptionsDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.subscrId"
}
],
"responses": {
"204": {
"$ref": "#/components/responses/204"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
},
"429": {
"$ref": "#/components/responses/429"
}
}
}
}
},
"components": {
"responses": {
"200": {
"description": "OK"
},
"204": {
"description": "No Content"
},
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"401": {
"description": "Unauthorized : used when the client did not submit credentials.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "Forbidden : operation is not allowed given the current status of the resource.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},