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 ...@@ -4,9 +4,9 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E
## Online resources ## Online resources
* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_MEC028v020101p.pdf) * [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.1.1/WlanInformationApi.yaml). * [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.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.2.1/WlanInformationApi.yaml).
## License ## License
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
"url": "https://forge.etsi.org/rep/mec/gs028-wai-api" "url": "https://forge.etsi.org/rep/mec/gs028-wai-api"
}, },
"title": "ETSI GS MEC 028 - WLAN Access Information 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", "description": "The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI",
"license": { "license": {
"name": "BSD-3-Clause", "name": "BSD-3-Clause",
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
} }
}, },
"externalDocs": { "externalDocs": {
"description": "ETSI MEC028 V2.1.1 WLAN Information API", "description": "ETSI MEC028 V2.2.1 WLAN Information API",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.01.01_60/gs_mec028v020101p.pdf" "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf"
}, },
"servers": [ "servers": [
{ {
...@@ -232,9 +232,13 @@ ...@@ -232,9 +232,13 @@
"nanoSeconds": 0 "nanoSeconds": 0
}, },
"apId": { "apId": {
"macId": "005C0A0A0A0A", "bssid": "005C0A0A0A0A",
"ssid": "myNetworkSsid", "ssid": [
"ipAddress": "10.10.100.1" "myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
} }
} }
} }
...@@ -261,9 +265,13 @@ ...@@ -261,9 +265,13 @@
"nanoSeconds": 0 "nanoSeconds": 0
}, },
"apId": { "apId": {
"macId": "005C0A0A0A0A", "bssid": "005C0A0A0A0A",
"ssid": "myNetworkSsid", "ssid": [
"ipAddress": "10.10.100.1" "myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
} }
} }
} }
...@@ -316,9 +324,13 @@ ...@@ -316,9 +324,13 @@
"nanoseconds": 0 "nanoseconds": 0
}, },
"apId": { "apId": {
"macId": "005C0A0A0A0A", "bssid": "005C0A0A0A0A",
"ssid": "myNetworkSsid", "ssid": [
"ipAddress": "10.10.100.1" "myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
}, },
"staId": { "staId": {
"macId": "005C01111111", "macId": "005C01111111",
...@@ -327,7 +339,9 @@ ...@@ -327,7 +339,9 @@
"myOtherNetworkSsid" "myOtherNetworkSsid"
], ],
"aid": "1122", "aid": "1122",
"ipAddress": "10.10.1.255" "ipAddress": [
"10.10.1.255"
]
} }
} }
} }
...@@ -378,9 +392,13 @@ ...@@ -378,9 +392,13 @@
"nanoSeconds": 0 "nanoSeconds": 0
}, },
"apId": { "apId": {
"macId": "005C0A0A0A0A", "bssid": "005C0A0A0A0A",
"ssid": "myNetworkSsid", "ssid": [
"ipAddress": "10.10.100.1" "myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
} }
} }
} }
...@@ -434,9 +452,13 @@ ...@@ -434,9 +452,13 @@
"nanoSeconds": 0 "nanoSeconds": 0
}, },
"apId": { "apId": {
"macId": "005C0A0A0A0A", "bssid": "005C0A0A0A0A",
"ssid": "myNetworkSsid", "ssid": [
"ipAddress": "10.10.100.1" "myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
} }
} }
} }
...@@ -463,7 +485,13 @@ ...@@ -463,7 +485,13 @@
}, },
"callbackReference": "http://my.callback.com/wai/some-id", "callbackReference": "http://my.callback.com/wai/some-id",
"apId": { "apId": {
"macId": "005C0A0A0A0A" "bssid": "005C0A0A0A0A",
"ssid": [
"myNetworkSsid"
],
"ipAddress": [
"10.10.100.1"
]
} }
} }
} }
...@@ -525,6 +553,324 @@ ...@@ -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": { "components": {
...@@ -646,6 +992,16 @@ ...@@ -646,6 +992,16 @@
"format": "uri" "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": { "Query.Filter": {
"name": "filter", "name": "filter",
"in": "query", "in": "query",
...@@ -703,7 +1059,7 @@ ...@@ -703,7 +1059,7 @@
"Query.SubscriptionType": { "Query.SubscriptionType": {
"name": "subscription_type", "name": "subscription_type",
"in": "query", "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, "required": false,
"schema": { "schema": {
"type": "string" "type": "string"
...@@ -717,23 +1073,23 @@ ...@@ -717,23 +1073,23 @@
"description": "Unique number which identifies a particular association between the station and Access Point.", "description": "Unique number which identifies a particular association between the station and Access Point.",
"type": "string", "type": "string",
"x-etsi-mec-cardinality": "0..1", "x-etsi-mec-cardinality": "0..1",
"x-etsi-mec-origin-type": "string" "x-etsi-mec-origin-type": "String"
}, },
"ipAddress": { "bssid": {
"description": "IPv4 or IPv6 address allocated for the Access Point.", "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.",
"items": { "type": "string",
"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, "minItems": 0,
"type": "array", "type": "array",
"x-etsi-mec-cardinality": "0..N", "x-etsi-mec-cardinality": "0..N",
"x-etsi-mec-origin-type": "string" "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"
}, },
"ssid": { "ssid": {
"description": "Service Set Identifier to identify logical networks.", "description": "Service Set Identifier to identify logical networks.",
...@@ -747,13 +1103,19 @@ ...@@ -747,13 +1103,19 @@
} }
}, },
"required": [ "required": [
"macId" "bssid"
], ],
"type": "object", "type": "object",
"x-etsi-ref": "6.5.12" "x-etsi-ref": "6.5.12"
}, },
"ApIdentity": { "ApIdentity": {
"properties": { "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": { "ipAddress": {
"description": "IPv4 or IPv6 address allocated for the Access Point.", "description": "IPv4 or IPv6 address allocated for the Access Point.",
"items": {