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
......
This diff is collapsed.
This diff is collapsed.
# OpenAPI Generator Ignore
# Generated by openapi-generator https://github.com/openapitools/openapi-generator
# Use this file to prevent files from being overwritten by the generator.
# The patterns follow closely to .gitignore or .dockerignore.
# As an example, the C# client generator defines ApiClient.cs.
# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line:
#ApiClient.cs
# You can match any string of characters against a directory, file or extension with a single asterisk (*):
#foo/*/qux
# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux
# You can recursively match patterns against a directory, file or extension with a double asterisk (**):
#foo/**/qux
# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux
# You can also negate patterns with an exclamation (!).
# For example, you can ignore all files in a docs folder with the file extension .md:
#docs/*.md
# Then explicitly reverse the ignore rule for a single file:
#!docs/README.md
.openapi-generator-ignore
README.md
models/ap_associated.proto
models/ap_identity.proto
models/ap_info.proto
models/ap_location.proto
models/assoc_sta_notification.proto
models/assoc_sta_subscription.proto
models/assoc_sta_subscription_links.proto
models/assoc_sta_subscription_notification_event.proto
models/beacon_report.proto
models/beacon_reporting_config.proto
models/beacon_request_config.proto
models/bss_capabilities.proto
models/bss_load.proto
models/bssid_info.proto
models/channel_load.proto
models/channel_load_config.proto
models/civic_location.proto
models/dmg_capabilities.proto
models/edmg_capabilities.proto
models/expiry_notification.proto
models/expiry_notification_links.proto
models/ext_bss_load.proto
models/geo_location.proto
models/he_capabilities.proto
models/ht_capabilities.proto
models/inline_notification.proto
models/inline_subscription.proto
models/link_type.proto
models/measurement_config.proto
models/measurement_config_link_list.proto
models/measurement_config_link_list_links.proto
models/measurement_config_link_list_measurement_config.proto
models/measurement_config_links.proto
models/measurement_info.proto
models/measurement_report_notification.proto
models/measurement_report_subscription.proto
models/neighbor_report.proto
models/neighbor_report_config.proto
models/o_bss_load.proto
models/problem_details.proto
models/reported_beacon_frame_info.proto
models/reporting_reason_qo_s_counters.proto
models/reporting_reason_sta_counters.proto
models/rssi.proto
models/sta_counter_trigger_condition.proto
models/sta_data_rate.proto
models/sta_data_rate_notification.proto
models/sta_data_rate_subscription.proto
models/sta_data_rate_subscription_notification_event.proto
models/sta_identity.proto
models/sta_info.proto
models/sta_statistics.proto
models/sta_statistics_config.proto
models/sta_statistics_group2to9_data.proto
models/sta_statistics_group_one_data.proto
models/sta_statistics_group_zero_data.proto
models/subscription_link_list.proto
models/subscription_link_list_links.proto
models/subscription_link_list_subscription.proto
models/test_notification.proto
models/test_notification_links.proto
models/time_stamp.proto
models/vht_capabilities.proto
models/wan_metrics.proto
models/websock_notif_config.proto
models/wlan_capabilities.proto
services/wai_service.proto
5.0.0-beta2
\ No newline at end of file
# gPRC for mec028
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
## Overview
These files were generated by the [OpenAPI Generator](https://openapi-generator.tech) project.
- API version: 2.2.1
- Package version:
- Build package: org.openapitools.codegen.languages.ProtobufSchemaCodegen
For more information, please visit [https://forge.etsi.org/rep/mec/gs028-wai-api](https://forge.etsi.org/rep/mec/gs028-wai-api)
## Usage
Below are some usage examples for Go and Ruby. For other languages, please refer to https://grpc.io/docs/quickstart/.
### Go
```
# assuming `protoc-gen-go` has been installed with `go get -u github.com/golang/protobuf/protoc-gen-go`
mkdir /var/tmp/go/
protoc --go_out=/var/tmp/go/ services/*
protoc --go_out=/var/tmp/go/ models/*
```
### Ruby
```
# assuming `grpc_tools_ruby_protoc` has been installed via `gem install grpc-tools`
RUBY_OUTPUT_DIR="/var/tmp/ruby/mec028"
mkdir $RUBY_OUTPUT_DIR
grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib services/*
grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib models/*
```
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
...@@ -16,13 +16,13 @@ package mec028; ...@@ -16,13 +16,13 @@ package mec028;
message ApAssociated { message ApAssociated {
// Unique number which identifies a particular association between the station and Access Point. // Unique number which identifies a particular association between the station and Access Point.
string assoc_id = 1; string assocId = 1;
// IPv4 or IPv6 address allocated for the Access Point. // 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.
repeated string ip_address = 2; string bssid = 2;
// Unique identifier assigned to the Access Point (as network interface controller) for communications at the data link layer of a network segment. // IPv4 or IPv6 address allocated for the Access Point.
string mac_id = 3; repeated string ipAddress = 3;
// Service Set Identifier to identify logical networks. // Service Set Identifier to identify logical networks.
repeated string ssid = 4; repeated string ssid = 4;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
...@@ -15,13 +15,13 @@ package mec028; ...@@ -15,13 +15,13 @@ package mec028;
message ApIdentity { message ApIdentity {
// IPv4 or IPv6 address allocated for the Access Point. // 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.
repeated string ip_address = 1; string bssid = 1;
// Unique Identifier assigned to an Access Point (as network interface controller) for communications at the data link layer of a network segment. // IPv4 or IPv6 address allocated for the Access Point.
string mac_id = 2; repeated string ipAddress = 2;
// Service Set Identifier to identify logical networks including Basic Service Set and Extended Service Set. // Service Set Identifier (SSID) to identify logical WLAN networks available via the Access Point.
repeated string ssid = 3; repeated string ssid = 3;
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
...@@ -16,30 +16,30 @@ import public "models/ap_identity.proto"; ...@@ -16,30 +16,30 @@ import public "models/ap_identity.proto";
import public "models/ap_location.proto"; import public "models/ap_location.proto";
import public "models/bss_load.proto"; import public "models/bss_load.proto";
import public "models/ext_bss_load.proto"; import public "models/ext_bss_load.proto";
import public "models/neighbor_report.proto"; import public "models/o_bss_load.proto";
import public "models/time_stamp.proto"; import public "models/time_stamp.proto";
import public "models/wan_metrics.proto"; import public "models/wan_metrics.proto";
import public "models/wlan_capabilities.proto"; import public "models/wlan_capabilities.proto";
message ApInfo { message ApInfo {
ApIdentity ap_id = 1; ApIdentity apId = 1;
ApLocation ap_location = 2; ApLocation apLocation = 2;
NeighborReport ap_neighbor = 3; BssLoad bssLoad = 3;
BssLoad bss_load = 4;
// Channel configured for the Access Point. // Channel configured for the Access Point.
int32 channel = 5; int32 channel = 4;
ExtBssLoad extBssLoad = 5;
ExtBssLoad ext_bss_load = 6; OBssLoad oBssLoad = 6;
TimeStamp time_stamp = 7; TimeStamp timeStamp = 7;
WanMetrics wan_metrics = 8; WanMetrics wanMetrics = 8;
WlanCapabilities wlan_cap = 9; WlanCapabilities wlanCap = 9;
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
...@@ -17,7 +17,7 @@ import public "models/geo_location.proto"; ...@@ -17,7 +17,7 @@ import public "models/geo_location.proto";
message ApLocation { message ApLocation {
CivicLocation civic_location = 1; CivicLocation civicLocation = 1;
GeoLocation geolocation = 2; GeoLocation geolocation = 2;
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
...@@ -18,14 +18,14 @@ import public "models/time_stamp.proto"; ...@@ -18,14 +18,14 @@ import public "models/time_stamp.proto";
message AssocStaNotification { message AssocStaNotification {
ApIdentity ap_id = 1; ApIdentity apId = 1;
// Shall be set to \"AssocStaNotification\". // Shall be set to \"AssocStaNotification\".
string notification_type = 2; string notificationType = 2;
// Identifier(s) to uniquely specify the client station(s) associated. // Identifier(s) to uniquely specify the client station(s) associated.
repeated StaIdentity sta_id = 3; repeated StaIdentity staId = 3;
TimeStamp time_stamp = 4; TimeStamp timeStamp = 4;
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
...@@ -14,20 +14,31 @@ package mec028; ...@@ -14,20 +14,31 @@ package mec028;
import public "models/ap_identity.proto"; import public "models/ap_identity.proto";
import public "models/assoc_sta_subscription_links.proto"; import public "models/assoc_sta_subscription_links.proto";
import public "models/assoc_sta_subscription_notification_event.proto";
import public "models/time_stamp.proto"; import public "models/time_stamp.proto";
import public "models/websock_notif_config.proto";
message AssocStaSubscription { message AssocStaSubscription {
AssocStaSubscriptionLinks underscorelinks = 1; AssocStaSubscriptionLinks Underscorelinks = 1;
ApIdentity ap_id = 2; ApIdentity apId = 2;
// 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. string callbackReference = 3;
string callback_reference = 3;
TimeStamp expiry_deadline = 4; TimeStamp expiryDeadline = 4;
AssocStaSubscriptionNotificationEvent notificationEvent = 5;
// Set for periodic notification reporting. Value indicates the notification period in seconds.
int32 notificationPeriod = 6;
// Set to TRUE by the service consumer to request a test notification on the callbackReference URI to determine if it is reachable by the WAIS for notifications.
bool requestTestNotification = 7;
// Shall be set to \"AssocStaSubscription\". // Shall be set to \"AssocStaSubscription\".
string subscription_type = 5; string subscriptionType = 8;
WebsockNotifConfig websockNotifConfig = 9;
} }
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
......
/*
ETSI GS MEC 028 - WLAN Access Information API
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech
*/
syntax = "proto3";
package mec028;
message AssocStaSubscriptionNotificationEvent {
// Number of connected stations threshold for trigger-based event reporting.
int32 threshold = 1;
// Trigger for the notification: 1 = Notification issued when the number of connected stations is greater than or equal to the threshold. 2 = Notification issued when the number of connected stations is less than or equal to the threshold.
enum TriggerEnum {
_1 = 0;
_2 = 1;
}
TriggerEnum trigger = 2;
}
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
...@@ -12,25 +12,40 @@ syntax = "proto3"; ...@@ -12,25 +12,40 @@ syntax = "proto3";
package mec028; package mec028;
import public "models/reported_beacon_frame_info.proto";
import public "models/sta_identity.proto"; import public "models/sta_identity.proto";
message BeaconReport { message BeaconReport {
// The BSSID field indicates the BSSID of the BSS(s) for which a beacon report has been received. // The Antenna ID field contains the identifying number for the antenna(s) used for this measurement. Antenna ID is defined in section 9.4.2.40 of IEEE 802.11-2016 [8].
repeated string bss_id = 1; int32 antennaId = 1;
// Indicates the BSSID of the BSS for which a beacon report has been received.
string bssid = 2;
// Channel number where the beacon was received. // Channel number where the beacon was received.
int32 channel_id = 2; int32 channel = 3;
// Measurement ID of the Measurement configuration applied to this Beacon Report. // Measurement ID of the Measurement configuration applied to this Beacon Report.
string measurement_id = 3; string measurementId = 4;
// Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016 [8].
int32 operatingClass = 5;
// The Parent TSF field contains the lower 4 octets of the measuring STA's TSF timer value at the start of reception of the first octet of the timestamp field of the reported Beacon, Measurement Pilot, or Probe Response frame at the time the Beacon, Measurement Pilot, or Probe Response frame being reported was received.
int32 parentTsf = 6;
// RCPI indicates the received channel power of the Beacon, Measurement Pilot, or Probe Response frame, which is a logarithmic function of the received signal power, as defined in section 9.4.2.38 of IEEE 802.11-2016 [8].
int32 rcpi = 7;
ReportedBeaconFrameInfo reportedFrameInfo = 8;
// As in table T9-89 of IEEE 802.11-2012 [8]. // RSNI indicates the received signal-to-noise indication for the Beacon, Measurement Pilot, or Probe Response frame, as described in section 9.4.2.41 of IEEE 802.11-2016 [8].
int32 reporting_condition = 4; int32 rsni = 9;
// (Optional) The SSID subelement indicates the ESS(s) or IBSS(s) for which a beacon report is received. // The SSID subelement indicates the ESS or IBSS for which a beacon report is received.
repeated string ss_id = 5; string ssid = 10;
StaIdentity sta_id = 6; StaIdentity staId = 11;
} }
/*
ETSI GS MEC 028 - WLAN Access Information API
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech
*/
syntax = "proto3";
package mec028;
message BeaconReportingConfig {
// Reporting condition for the Beacon Report as per Table 9-89 of IEEE 802.11-2016 [8]: 0 = Report to be issued after each measurement. 1 = measured RCPI level is greater than the threshold. 2 = measured RCPI level is less than the threshold. 3 = measured RSNI level is greater than the threshold. 4 = measured RSNI level is less than the threshold. 5 = measured RCPI level is greater than a threshold defined by an offset from the serving AP's reference RCPI. 6 = measured RCPI level is less than a threshold defined by an offset from the serving AP's reference RCPI. 7 = measured RSNI level is greater than a threshold defined by an offset from the serving AP's reference RSNI. 8 = measured RSNI level is less than a threshold defined by an offset from the serving AP's reference RSNI. 9 = measured RCPI level is in a range bound by the serving AP's reference RCPI and an offset from the serving AP's reference RCPI. 10 = measured RSNI level is in a range bound by the serving AP's reference RSNI and an offset from the serving AP's reference RSNI.
int32 reportingCondition = 1;
// The threshold subfield contains either the threshold value or the offset value to be used for conditional reporting. For reportingCondition subfield with values 1 and 2, the threshold value is a logarithmic function of the received signal power, as defined in section 9.4.2.38 of IEEE 802.11-2016 [8]. For reportingCondition subfield values 3 and 4, the threshold value is a logarithmic function of the signal-to-noise ratio, as described in section 9.4.2.41 of IEEE 802.11-2016 [8]. For reportingCondition subfield values 5 to 10, the offset value is an 8-bit 2s complement integer in units of 0,5 dBm. The indicated reporting condition applies individually to each measured Beacon, Measurement Pilot, or Probe Response frame.
int32 threshold = 2;
}
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
The version of the OpenAPI document: 2.1.1 The version of the OpenAPI document: 2.2.1
Generated by OpenAPI Generator: https://openapi-generator.tech Generated by OpenAPI Generator: https://openapi-generator.tech
*/ */
...@@ -12,25 +12,25 @@ syntax = "proto3"; ...@@ -12,25 +12,25 @@ syntax = "proto3";
package mec028; package mec028;
import public "models/sta_identity.proto"; import public "models/beacon_reporting_config.proto";
message BeaconRequestConfig { message BeaconRequestConfig {
// The BSSID field indicates the BSSID of the BSS(s) for which a beacon report is requested. When requesting beacon reports for all BSSs on the channel, the BSSID field contains the wildcard BSSID. BeaconReportingConfig beaconReportingConf = 1;
repeated string bss_id = 1;
// Channel number to scan. A Channel Number of 0 indicates a request to make iterative measurements for all supported channels in the Operating Class where the measurement is permitted on the channel and the channel is valid for the current regulatory domain. A Channel Number of 255 indicates a request to make iterative measurements for all supported channels in the current Operating Class listed in the latest AP Channel Report received from the serving AP. // The BSSID field indicates the BSS for which a beacon report is requested. If absent, the requested beacon reports should include all BSSs on the channel.
int32 channel_id = 2; string bssid = 2;
// 0 for passive. 1 for active. 2 for beacon table. // Channel number to scan. A Channel Number of 0 indicates a request to make iterative measurements for all supported channels in the Operating Class where the measurement is permitted on the channel and the channel is valid for the current regulatory domain. A Channel Number of 255 indicates a request to make iterative measurements for all supported channels in the current Operating Class listed in the latest AP Channel Report received from the serving AP.
int32 measurement_mode = 3; int32 channelId = 3;
// As in table T9-89 of IEEE 802.11-2012 [8]. // 0 for passive. 1 for active. 2 for beacon table.
int32 reporting_condition = 4; int32 measurementMode = 4;
// (Optional) The SSID subelement indicates the ESS(s) or IBSS(s) for which a beacon report is requested.