Commit da441083 authored by Walter Featherstone's avatar Walter Featherstone
Browse files

Merge branch 'develop' into 'master'

MEC028 v2.2.1 update - OAS & Proto3 representation updated

OAS & Proto3 representation have been updated to v2.2.1 specification.

Update followed [OpenAPI development guidelines](https://mecwiki.etsi.org/index.php?title=OpenAPI_development_guidelines)
- Generation using doc2oas *(a separate merge request has been created for the config file update)*
- Level-1 validation passing *(no warnings in Swagger-Editor, swagger-cli validate, speccy lint)*
- Level-2 validation passing *(no error in Swagger-UI, visual inspection)*
- Level-3 validation passing *(swagger code generation)*
- Proto3 generation passing
- Proto3 code generation passing
- Jenkins validation passing

See merge request !5
parents 4b527617 0f2db027
Pipeline #9934 passed with stage
in 0 seconds
......@@ -4,9 +4,9 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E
## Online resources
* [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/rep/mec/gs028-wai-api/raw/v2.1.1/WlanInformationApi.yaml).
* [Edit the API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/rep/mec/gs028-wai-api/raw/v2.1.1/WlanInformationApi.yaml).
* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_MEC028v020201p.pdf)
* [Navigate the API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs028-wai-api/raw/v2.2.1/WlanInformationApi.yaml).
* [Edit the API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/rep/mec/gs028-wai-api/raw/v2.2.1/WlanInformationApi.yaml).
## License
......
......@@ -5,7 +5,7 @@
"url": "https://forge.etsi.org/rep/mec/gs028-wai-api"
},
"title": "ETSI GS MEC 028 - WLAN Access Information API",
"version": "2.1.1",
"version": "2.2.1",
"description": "The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI",
"license": {
"name": "BSD-3-Clause",
......@@ -13,8 +13,8 @@
}
},
"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"
"description": "ETSI MEC028 V2.2.1 WLAN Information API",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf"
},
"servers": [
{
......@@ -232,9 +232,13 @@
"nanoSeconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
"bssid": "005C0A0A0A0A",
"ssid": [
"myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
}
}
}
......@@ -261,9 +265,13 @@
"nanoSeconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
"bssid": "005C0A0A0A0A",
"ssid": [
"myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
}
}
}
......@@ -316,9 +324,13 @@
"nanoseconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
"bssid": "005C0A0A0A0A",
"ssid": [
"myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
},
"staId": {
"macId": "005C01111111",
......@@ -327,7 +339,9 @@
"myOtherNetworkSsid"
],
"aid": "1122",
"ipAddress": "10.10.1.255"
"ipAddress": [
"10.10.1.255"
]
}
}
}
......@@ -378,9 +392,13 @@
"nanoSeconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
"bssid": "005C0A0A0A0A",
"ssid": [
"myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
}
}
}
......@@ -434,9 +452,13 @@
"nanoSeconds": 0
},
"apId": {
"macId": "005C0A0A0A0A",
"ssid": "myNetworkSsid",
"ipAddress": "10.10.100.1"
"bssid": "005C0A0A0A0A",
"ssid": [
"myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
}
}
}
......@@ -463,7 +485,13 @@
},
"callbackReference": "http://my.callback.com/wai/some-id",
"apId": {
"macId": "005C0A0A0A0A"
"bssid": "005C0A0A0A0A",
"ssid": [
"myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
}
}
}
......@@ -525,6 +553,324 @@
}
}
}
},
"/measurements": {
"get": {
"tags": [
"wai"
],
"summary": "Retrieve information on measurements configuration",
"description": "Queries information on measurements configuration",
"operationId": "measurementLinkList_measurementsGET",
"responses": {
"200": {
"description": "Response body contains the list of links to requestors measurement configurations.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MeasurementConfigLinkList"
},
"example": {
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/measurements"
}
},
"measurementConfig": [
{
"href": "http://meAppServer.example.com/wai/v2/measurements/meas123",
"measurementId": "myId1"
}
]
}
}
}
},
"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 measurement configuration",
"description": "Creates a new measurement configuration",
"operationId": "measurementsPOST",
"requestBody": {
"description": "Measurement configuration information",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MeasurementConfig"
},
"example": {
"staId": {
"macId": "005C01111111",
"ssid": [
"myNetworkSsid",
"myOtherNetworkSsid"
]
},
"measurementId": "myId1",
"measurementInfo": {}
}
}
}
},
"responses": {
"201": {
"description": "Successful measurement configuration response",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MeasurementConfig"
},
"example": {
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/measurements/meas123"
}
},
"staId": {
"macId": "005C01111111",
"ssid": [
"myNetworkSsid",
"myOtherNetworkSsid"
]
},
"measurementId": "myId1",
"measurementInfo": {}
}
}
}
},
"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"
}
}
}
},
"/measurements/{measurementConfigId}": {
"get": {
"tags": [
"wai"
],
"summary": "Retrieve information on an existing measurement configuration",
"description": "Queries information about an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST)",
"operationId": "measurementsGET",
"parameters": [
{
"$ref": "#/components/parameters/Path.measurementConfigId"
}
],
"responses": {
"200": {
"description": "Measurement configuration information",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MeasurementConfig"
},
"example": {
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/measurements/meas123"
}
},
"staId": {
"macId": "005C01111111",
"ssid": [
"myNetworkSsid",
"myOtherNetworkSsid"
]
},
"measurementId": "myId1",
"measurementInfo": {}
}
}
}
},
"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 measurement configuration",
"description": "Updates an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST)",
"operationId": "measurementsPUT",
"requestBody": {
"description": "Measurement configuration to be modified",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MeasurementConfig"
},
"example": {
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/measurements/meas123"
}
},
"staId": {
"macId": "005C01111111",
"ssid": [
"myNetworkSsid",
"myOtherNetworkSsid"
]
},
"measurementId": "myId1",
"measurementInfo": {}
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.measurementConfigId"
}
],
"responses": {
"200": {
"description": "Successful measurement configuration modification",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MeasurementConfig"
},
"example": {
"_links": {
"self": {
"href": "http://meAppServer.example.com/wai/v2/measurements/123"
}
},
"staId": {
"macId": "005C01111111",
"ssid": [
"myNetworkSsid",
"myOtherNetworkSsid"
]
},
"measurementId": "myId1",
"measurementInfo": {}
}
}
}
},
"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 a measurement configuration",
"description": "Cancels an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST)",
"operationId": "measurementsDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.measurementConfigId"
}
],
"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": {
......@@ -646,6 +992,16 @@
"format": "uri"
}
},
"Path.measurementConfigId": {
"name": "measurementConfigId",
"in": "path",
"description": "Measurement configuration Id, specifically the \"self\" returned in the measurement configuration request",
"required": true,
"schema": {
"type": "string",
"format": "uri"
}
},
"Query.Filter": {
"name": "filter",
"in": "query",
......@@ -703,7 +1059,7 @@
"Query.SubscriptionType": {
"name": "subscription_type",
"in": "query",
"description": "Filter on a specific subscription type. Permitted values: assoc_sta, sta_data_rate.",
"description": "Filter on a specific subscription type. Permitted values: assoc_sta, sta_data_rate, measure_report.",
"required": false,
"schema": {
"type": "string"
......@@ -717,23 +1073,23 @@
"description": "Unique number which identifies a particular association between the station and Access Point.",
"type": "string",
"x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string"
"x-etsi-mec-origin-type": "String"
},
"ipAddress": {
"description": "IPv4 or IPv6 address allocated for the Access Point.",
"items": {
"type": "string"
"bssid": {
"description": "Basic Service Set Identifier (BSSID) is a unique identifier assigned to the Access Point (as network interface controller) for communications at the data link layer of a network segment. BSSID is typically set to an access point's MAC address.",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"ipAddress": {
"description": "IPv4 or IPv6 address allocated for the Access Point.",
"items": {
"type": "string"
},
"minItems": 0,
"type": "array",
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "string"
},
"macId": {
"description": "Unique identifier assigned to the Access Point (as network interface controller) for communications at the data link layer of a network segment.",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "string"
"x-etsi-mec-origin-type": "String"
},
"ssid": {
"description": "Service Set Identifier to identify logical networks.",
......@@ -747,13 +1103,19 @@
}
},
"required": [
"macId"
"bssid"
],
"type": "object",
"x-etsi-ref": "6.5.12"
},
"ApIdentity": {
"properties": {
"bssid": {
"description": "Basic Service Set Identifier (BSSID) is a unique Identifier assigned to an Access Point (as network interface controller) for communications at the data link layer of a network segment. BSSID is typically set to an access point's MAC address.",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"ipAddress": {
"description": "IPv4 or IPv6 address allocated for the Access Point.",
"items": {
......@@ -764,14 +1126,8 @@
"x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "String"
},
"macId": {
"description": "Unique Identifier assigned to an Access Point (as network interface controller) for communications at the data link layer of a network segment.",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "String"
},
"ssid": {
"description": "Service Set Identifier to identify logical networks including Basic Service Set and Extended Service Set.",
"description": "Service Set Identifier (SSID) to identify logical WLAN networks available via the Access Point.",
"items": {
"type": "string"
},
......@@ -782,7 +1138,7 @@
}
},
"required": [
"macId"
"bssid"
],
"type": "object",
"x-etsi-ref": "6.5.3"
......@@ -795,9 +1151,6 @@
"apLocation": {
"$ref": "#/components/schemas/ApLocation"
},
"apNeighbor": {
"$ref": "#/components/schemas/NeighborReport"
},
"bssLoad": {
"$ref": "#/components/schemas/BssLoad"
},
......@@ -811,6 +1164,9 @@
"extBssLoad": {
"$ref": "#/components/schemas/ExtBssLoad"
},
"oBssLoad": {
"$ref": "#/components/schemas/OBssLoad"
},
"timeStamp": {
"$ref": "#/components/schemas/TimeStamp"
},
......@@ -891,78 +1247,92 @@
"$ref": "#/components/schemas/ApIdentity"
},
"callbackReference": {
"description": "URI selected by the service consumer to receive notifications on the subscribed WLAN information. This shall be included both in the request and in response.",
"format": "uri",
"type": "string",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "URI"
"type": "string"
},
"expiryDeadline": {
"$ref": "#/components/schemas/TimeStamp"
},
"notificationEvent": {
"description": "Set for trigger-based event notification reporting. ",
"properties": {
"threshold": {
"description": "Number of connected stations threshold for trigger-based event reporting.",
"format": "uint8",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint8"
},
"trigger": {
"description": "Trigger for the notification:\n1 = Notification issued when the number of connected stations is greater than or equal to the threshold.\n2 = Notification issued when the number of connected stations is less than or equal to the threshold.",