openapi: 3.1.0 info: title: ETSI GS MEC 028 - WLAN Access Information API description: The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI contact: url: https://forge.etsi.org/rep/mec/gs028-wai-api version: '2.2.6' license: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema servers: - url: https://localhost/wai/v2 variables: {} tags: - name: wai description: WLAN Access Information paths: /queries/ap/ap_information: get: tags: - wai summary: 'Queries information about existing WLAN Access Points' description: Queries information about existing WLAN Access Points operationId: apInfoGET parameters: - name: filter in: query description: Attribute-based filtering expression according to clause 6.19 of ETSI GS MEC 009. . style: form explode: true schema: type: string - name: all_fields in: query description: Include all complex attributes in the response. See clause 6.18 of ETSI GS MEC 009 for details. style: form explode: true schema: type: string - name: fields in: query description: Complex attributes to be included into the response. See clause 6.18 of ETSI GS MEC 009 for details. style: form explode: true schema: type: array items: type: string - name: exclude_fields in: query description: Complex attributes to be excluded from the response. See clause 6.18 of ETSI GS MEC 009 for details. style: form explode: true schema: type: array items: type: string - name: exclude_default in: query description: 'Indicates to exclude the following complex attributes from the response. See clause 6.18 of ETSI GS MEC 009 for details. The following attributes shall be excluded from the structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: Not applicable' style: form explode: true schema: type: array items: type: string responses: '200': description: Successful response to ap_info request headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/ApInfo' description: '' contentMediaType: application/json '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /queries/sta/sta_information: get: tags: - wai summary: 'Queries information about existing WLAN stations' description: Queries information about existing WLAN stations operationId: staInfoGET parameters: - name: filter in: query description: Attribute-based filtering expression according to clause 6.19 of ETSI GS MEC 009. . style: form explode: true schema: type: string - name: all_fields in: query description: Include all complex attributes in the response. See clause 6.18 of ETSI GS MEC 009 for details. style: form explode: true schema: type: string - name: fields in: query description: Complex attributes to be included into the response. See clause 6.18 of ETSI GS MEC 009 for details. style: form explode: true schema: type: array items: type: string - name: exclude_fields in: query description: Complex attributes to be excluded from the response. See clause 6.18 of ETSI GS MEC 009 for details. style: form explode: true schema: type: array items: type: string - name: exclude_default in: query description: 'Indicates to exclude the following complex attributes from the response. See clause 6.18 of ETSI GS MEC 009 for details. The following attributes shall be excluded from the structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: Not applicable' style: form explode: true schema: type: array items: type: string responses: '200': description: Successful response to sta_info request headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/StaInfo' description: '' contentMediaType: application/json '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /subscriptions: get: tags: - wai summary: 'Queries information on subscriptions for notifications' description: Queries information on subscriptions for notifications operationId: subscriptionLinkList_subscriptionsGET parameters: - name: subscription_type in: query description: 'Filter on a specific subscription type. Permitted values: assoc_sta, sta_data_rate, measure_report.' style: form explode: true schema: type: string responses: '200': description: Response body contains the list of links to requestors subscriptions. headers: {} content: application/json: schema: $ref: '#/components/schemas/SubscriptionLinkList' examples: example-of-subscription-link-list: value: _links: self: href: 'http://meAppServer.example.com/wai/v2/subscriptions' subscription: - href: http://meAppServer.example.com/wai/v2/subscriptions/sub123 subscriptionType: AssocStaSubscription '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false post: tags: - wai summary: 'Creates a new subscription to WLAN Access Information notifications' description: Creates a new subscription to WLAN Access Information notifications operationId: subscriptionsPOST parameters: [] requestBody: description: Subscription to be created content: application/json: schema: oneOf: - $ref: '#/components/schemas/AssocStaSubscription' - $ref: '#/components/schemas/StaDataRateSubscription' - $ref: '#/components/schemas/MeasurementReportSubscription' description: Subscription to be created examples: - subscriptionType: AssocStaSubscription callbackReference: http://meAppClient.example.com/wai/v2/notifications/1 expiryDeadline: seconds: 1977836800 nanoSeconds: 0 apId: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 contentMediaType: application/json examples: example-of-AssocStaSubscription: value: subscriptionType: AssocStaSubscription callbackReference: http://meAppClient.example.com/wai/v2/notifications/1 expiryDeadline: seconds: 1977836800 nanoSeconds: 0 apId: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 required: true responses: '201': description: Successful subscription response headers: {} content: application/json: schema: oneOf: - $ref: '#/components/schemas/AssocStaSubscription' - $ref: '#/components/schemas/StaDataRateSubscription' - $ref: '#/components/schemas/MeasurementReportSubscription' examples: - 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: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 contentMediaType: application/json examples: example-of-assoc--sta-subscription: value: 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: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '415': description: 'Unsupported Media Type : used to indicate that the server or the client does not support the content type of the entity body.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '422': description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' examples: application/problem+json: value: type: https://meAppServer.example.com/wai/v2/probs/too-many targets title: Too many targets status: 422 detail: The target area for the request is considered too large instance: /meAppClient.example.com/77777/msgs/abc '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false 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' examples: example-assoc-sta-notification: value: notificationType: AssocStaNotification timeStamp: seconds: 1977836800 nanoSeconds: 0 apId: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 staId: macId: 005C01111111 ssid: - myNetworkSsid - myOtherNetworkSsid aid: '1122' ipAddress: - 10.10.1.255 responses: '204': description: "No content" '400': description: "Bad Request" parameters: [] /subscriptions/{subscriptionId}: get: tags: - wai summary: 'Queries information about an existing subscription, identified by its self-referring URI returned on creation (initial POST)' description: Queries information about an existing subscription, identified by its self-referring URI returned on creation (initial POST) operationId: subscriptionsGET parameters: - name: subscriptionId in: path description: Subscription Id, specifically the "self" returned in the subscription request required: true style: simple schema: type: string responses: '200': description: Subscription information regarding subscription notifications headers: {} content: application/json: schema: oneOf: - $ref: '#/components/schemas/AssocStaSubscription' - $ref: '#/components/schemas/StaDataRateSubscription' - $ref: '#/components/schemas/MeasurementReportSubscription' examples: - 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: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 contentMediaType: application/json examples: example-of-assoc-sta-subscription: value: 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: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false put: tags: - wai summary: 'Updates an existing subscription, identified by its self-referring URI returned on creation (initial POST)' description: Updates an existing subscription, identified by its self-referring URI returned on creation (initial POST) operationId: subscriptionsPUT parameters: - name: subscriptionId in: path description: Subscription Id, specifically the "self" returned in the subscription request required: true style: simple schema: type: string requestBody: description: Subscription to be modified content: application/json: schema: oneOf: - $ref: '#/components/schemas/AssocStaSubscription' - $ref: '#/components/schemas/StaDataRateSubscription' - $ref: '#/components/schemas/MeasurementReportSubscription' description: Subscription to be modified examples: - 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: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 contentMediaType: application/json examples: example-of-assoc-sta-subscription: value: 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: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 required: true responses: '200': description: Successful subscription modification headers: {} content: application/json: schema: oneOf: - $ref: '#/components/schemas/AssocStaSubscription' - $ref: '#/components/schemas/StaDataRateSubscription' - $ref: '#/components/schemas/MeasurementReportSubscription' examples: - _links: self: href: http://[hostIP]/sbox-xyz123/wai/v2/subscriptions/sub123 callbackReference: http://my.callback.com/wai/some-id apId: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 contentMediaType: application/json examples: example-sub-type: value: subscriptionType: "AssocStaSubscription" _links: self: href: http://[hostIP]/sbox-xyz123/wai/v2/subscriptions/sub123 callbackReference: http://my.callback.com/wai/some-id apId: bssid: 005C0A0A0A0A ssid: - myNetworkSsid ipAddress: - 10.10.100.1 '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '412': description: 'Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '422': description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' examples: application/problem+json: value: type: https://meAppServer.example.com/wai/v2/probs/too-many targets title: Too many targets status: 422 detail: The target area for the request is considered too large instance: /meAppClient.example.com/77777/msgs/abc '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false delete: tags: - wai summary: 'Cancels an existing subscription, identified by its self-referring URI returned on creation (initial POST)' description: Cancels an existing subscription, identified by its self-referring URI returned on creation (initial POST) operationId: subscriptionsDELETE parameters: - name: subscriptionId in: path description: Subscription Id, specifically the "self" returned in the subscription request required: true style: simple schema: type: string responses: '204': description: No Content headers: {} content: {} '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /measurements: get: tags: - wai summary: 'Queries information on measurements configuration' description: Queries information on measurements configuration operationId: measurementLinkList_measurementsGET parameters: [] responses: '200': description: Response body contains the list of links to requestors measurement configurations. headers: {} content: application/json: schema: $ref: '#/components/schemas/MeasurementConfigLinkList' examples: example-measurement: value: _links: self: href: http://meAppServer.example.com/wai/v2/measurements measurementConfig: - href: http://meAppServer.example.com/wai/v2/measurements/meas123 measurementId: myId1 '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false post: tags: - wai summary: 'Creates a new measurement configuration' description: Creates a new measurement configuration operationId: measurementsPOST parameters: [] requestBody: description: Measurement configuration information content: application/json: schema: $ref: '#/components/schemas/MeasurementConfig' examples: example-body: value: staId: - macId: 005C01111111 ssid: - myNetworkSsid - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} required: true responses: '201': description: Successful measurement configuration response headers: {} content: application/json: schema: $ref: '#/components/schemas/MeasurementConfig' examples: example-response: value: _links: self: href: 'http://meAppServer.example.com/wai/v2/measurements/meas123' staId: - macId: 005C01111111 ssid: - myNetworkSsid - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '415': description: 'Unsupported Media Type : used to indicate that the server or the client does not support the content type of the entity body.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '422': description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' examples: application/problem+json: value: type: https://meAppServer.example.com/wai/v2/probs/too-many targets title: Too many targets status: 422 detail: The target area for the request is considered too large instance: /meAppClient.example.com/77777/msgs/abc '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /measurements/{measurementConfigId}: get: tags: - wai summary: 'Queries information about an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST)' description: Queries information about an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST) operationId: measurementsGET parameters: - name: measurementConfigId in: path description: Measurement configuration Id, specifically the "self" returned in the measurement configuration request required: true style: simple schema: type: string responses: '200': description: Measurement configuration information headers: {} content: application/json: schema: $ref: '#/components/schemas/MeasurementConfig' examples: response-example: value: _links: self: href: 'http://meAppServer.example.com/wai/v2/measurements/meas123' staId: - macId: 005C01111111 ssid: - myNetworkSsid - myOtherNetworkSsid measurementId: myId1 measurementInfo: {} '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false put: tags: - wai summary: 'Updates an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST)' description: Updates an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST) operationId: measurementsPUT parameters: - name: measurementConfigId in: path description: Measurement configuration Id, specifically the "self" returned in the measurement configuration request required: true style: simple schema: type: string requestBody: description: Measurement configuration to be modified content: application/json: schema: $ref: '#/components/schemas/MeasurementConfig' required: true responses: '200': description: Successful measurement configuration modification headers: {} content: application/json: schema: $ref: '#/components/schemas/MeasurementConfig' '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '406': description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '412': description: 'Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '422': description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' examples: application/problem+json: value: type: https://meAppServer.example.com/wai/v2/probs/too-many targets title: Too many targets status: 422 detail: The target area for the request is considered too large instance: /meAppClient.example.com/77777/msgs/abc '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false delete: tags: - wai summary: 'Cancels an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST)' description: Cancels an existing measurement configuration, identified by its self-referring URI returned on creation (initial POST) operationId: measurementsDELETE parameters: - name: measurementConfigId in: path description: Measurement configuration Id, specifically the "self" returned in the measurement configuration request required: true style: simple schema: type: string responses: '204': description: No Content headers: {} content: {} '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] components: schemas: ApAssociated: title: ApAssociated required: - bssid type: object properties: assocId: type: string description: Unique number which identifies a particular association between the station and Access Point. bssid: type: string 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. ipAddress: type: array items: type: string description: IPv4 or IPv6 address allocated for the Access Point. ssid: type: array items: type: string description: Service Set Identifier to identify logical networks. ApIdentity: title: ApIdentity required: - bssid type: object properties: bssid: type: string 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. ipAddress: type: array items: type: string description: IPv4 or IPv6 address allocated for the Access Point. ssid: type: array items: type: string description: Service Set Identifier (SSID) to identify logical WLAN networks available via the Access Point. ApInfo: title: ApInfo required: - apId type: object properties: apId: $ref: '#/components/schemas/ApIdentity' apLocation: $ref: '#/components/schemas/ApLocation' bssLoad: $ref: '#/components/schemas/BssLoad' channel: type: integer description: Channel configured for the Access Point. contentEncoding: int32 extBssLoad: $ref: '#/components/schemas/ExtBssLoad' oBssLoad: $ref: '#/components/schemas/OBssLoad' timeStamp: $ref: '#/components/schemas/TimeStamp' wanMetrics: $ref: '#/components/schemas/WanMetrics' wlanCap: $ref: '#/components/schemas/WlanCapabilities' ApLocation: title: ApLocation type: object properties: civicLocation: $ref: '#/components/schemas/CivicLocation' geolocation: $ref: '#/components/schemas/GeoLocation' AssocStaNotification: title: AssocStaNotification allOf: - $ref: '#/components/schemas/InlineNotification' - required: - apId type: object properties: apId: $ref: '#/components/schemas/ApIdentity' staId: type: array items: $ref: '#/components/schemas/StaIdentity' description: Identifier(s) to uniquely specify the client station(s) associated. timeStamp: $ref: '#/components/schemas/TimeStamp' AssocStaSubscription: title: AssocStaSubscription allOf: - $ref: '#/components/schemas/InlineSubscription' - required: - apId type: object properties: _links: $ref: '#/components/schemas/Links' apId: $ref: '#/components/schemas/ApIdentity' callbackReference: type: string description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009, clause 6.12a. expiryDeadline: $ref: '#/components/schemas/TimeStamp' notificationEvent: $ref: '#/components/schemas/NotificationEvent' notificationPeriod: type: integer description: >- Set for periodic notification reporting.Value indicates the notification period in seconds. contentEncoding: int32 requestTestNotification: type: boolean description: Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009, clause 6.12a. websockNotifConfig: $ref: '#/components/schemas/WebsockNotifConfig' description: Provides details to negotiate and signal the use of a Websocket connection between the WAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009, clause 6.12a. BeaconReport: title: BeaconReport required: - bssid - channel - measurementId - operatingClass - reportedFrameInfo type: object properties: antennaId: type: integer description: The Antenna ID field contains the identifying number for the antenna(s) used for this measurement. Antenna ID is defined in clause 9.4.2.40 of IEEE 802.11-2016. contentEncoding: int32 bssid: type: string description: Indicates the BSSID of the BSS for which a beacon report has been received. channel: type: integer description: Channel number where the beacon was received. contentEncoding: int32 measurementId: type: string description: Measurement ID of the Measurement configuration applied to this Beacon Report. operatingClass: type: integer description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016. contentEncoding: int32 parentTsf: type: integer description: 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. contentEncoding: int32 rcpi: type: integer description: 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 clause .4.2.38 of IEEE 802.11-2016. contentEncoding: int32 reportedFrameInfo: $ref: '#/components/schemas/ReportedBeaconFrameInfo' rsni: type: integer description: RSNI indicates the received signal-to-noise indication for the Beacon, Measurement Pilot, or Probe Response frame, as described in clause 9.4.2.41 of IEEE 802.11-2016. contentEncoding: int32 ssid: type: string description: The SSID subelement indicates the ESS or IBSS for which a beacon report is received. staId: $ref: '#/components/schemas/StaIdentity' BeaconReportingConfig: title: BeaconReportingConfig required: - reportingCondition - threshold type: object properties: reportingCondition: type: integer description: >- Reporting condition for the Beacon Report as per Table 9-89 of IEEE 802.11-2016: 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. contentEncoding: int32 threshold: type: integer description: >- 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 clause 9.4.2.38 of IEEE 802.11-2016 . For reportingCondition subfield values 3 and 4, the threshold value is a logarithmic function of the signal-to-noise ratio, as described in clause 9.4.2.41 of IEEE 802.11-2016 . 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. contentEncoding: int32 BeaconRequestConfig: title: BeaconRequestConfig required: - beaconReportingConf - channelId - measurementMode - operatingClass type: object properties: beaconReportingConf: $ref: '#/components/schemas/BeaconReportingConfig' bssid: type: string description: 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. channelId: type: integer description: 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. contentEncoding: int32 measurementMode: type: integer description: >- 0 for passive. 1 for active. 2 for beacon table. contentEncoding: int32 operatingClass: type: integer description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.112016 . contentEncoding: int32 ssid: type: string description: The SSID subelement indicates the ESS or IBSS for which a beacon report is requested. BssCapabilities: title: BssCapabilities required: - apsd - delayedBACK - immediateBACK - qos - radioMeasurements - spectrumManagement type: object properties: apsd: type: boolean description: APSD Option implemented delayedBACK: type: boolean description: Delayed Block Ack Option implemented immediateBACK: type: boolean description: Immediate Block Ack Option implemented qos: type: boolean description: QoS Option implemented radioMeasurements: type: boolean description: Radio Measurement Activated spectrumManagement: type: boolean description: Spectrum Management required BssLoad: title: BssLoad required: - availAdmCap - channelUtilization - staCount type: object properties: availAdmCap: type: integer description: Available Admission Capacity that specifies the remaining amount of medium time available via explicit admission control, in units of 32 s/s. contentEncoding: int32 channelUtilization: type: integer description: The percentage of time, linearly scaled with 255 representing 100 %, that the AP sensed the medium was busy, as indicated by either the physical or virtual Carrier Sense (CS) mechanism. contentEncoding: int32 staCount: type: integer description: An unsigned integer that indicates the total number of STAs currently associated with this BSS. contentEncoding: int32 BssidInfo: title: BssidInfo required: - apReachability - capabilities - ftm - highThroughput - mobilityDomain - security - veryHighThroughput type: object properties: apReachability: type: integer description: >- The apReachability field indicates whether the AP identified by this BSSID is reachable by the STA that requested the neighbor report. Valid values: 0 = reserved 1 = not reachable 2 = unknown 3 = reachable. contentEncoding: int32 capabilities: $ref: '#/components/schemas/BssCapabilities' ftm: type: boolean description: >- True indicates the AP represented by this BSSID is an AP that has set the Fine Timing Measurement Responder field of the Extended Capabilities element to 1. False indicates either that the reporting AP has dot11FineTimingMsmtRespActivated equal to false, or the reported AP has not set the Fine Timing Measurement Responder field of the Extended Capabilities element to 1 or that the Fine Timing Measurement Responder field of the reported AP is not available to the reporting AP at this time. highThroughput: type: boolean description: True indicates that the AP represented by this BSSID is an HT AP including the HT Capabilities element in its Beacons, and that the contents of that HT Capabilities element are identical to the HT Capabilities element advertised by the AP sending the report. mobilityDomain: type: boolean description: True indicates the AP represented by this BSSID is including an MDE in its Beacon frames and that the contents of that MDE are identical to the MDE advertised by the AP sending the report. security: type: boolean description: >- True indicates the AP identified by this BSSID supports the same security provisioning as used by the STA in its current association. False indicates either that the AP does not support the same security provisioning or that the security information is not available at this time. veryHighThroughput: type: boolean description: True indicates that the AP represented by this BSSID is a VHT AP and that the VHT Capabilities element, if included as a subelement in the report, is identical in content to the VHT Capabilities element included in the AP's Beacon. ChannelLoad: title: ChannelLoad required: - channel - channelLoad - measurementDuration - measurementId - operatingClass type: object properties: channel: type: integer description: Channel number indicates the channel number for which the measurement report applies. contentEncoding: int32 channelLoad: type: integer description: Proportion of measurement duration for which the measuring STA determined the channel to be busy, as a percentage of time, linearly scaled with 255 representing 100 %. contentEncoding: int32 measurementDuration: type: integer description: Duration over which the Channel Load report was measured, in units of TUs of 1 024 µs. contentEncoding: int32 measurementId: type: string description: Measurement ID of the Measurement configuration applied to this Channel Load Report. operatingClass: type: integer description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016 . contentEncoding: int32 staId: $ref: '#/components/schemas/StaIdentity' ChannelLoadConfig: title: ChannelLoadConfig required: - channel - operatingClass type: object properties: channel: type: integer description: Channel for which the channel load report is requested. contentEncoding: int32 operatingClass: type: integer description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016. contentEncoding: int32 reportingCondition: type: integer description: >- Reporting condition for the Beacon Report as per Table 9-153 of IEEE 802.11-2016: 0 = Report to be issued after each measurement. 1 = Report to be issued when Channel Load is greater than or equal to the threshold. 2 = Report to be issued when Channel Load is less than or equal to the threshold. If this optional field is not provided, channel load report should be issued after each measurement (reportingCondition = 0). contentEncoding: int32 threshold: type: integer description: Channel Load reference value for threshold reporting. This field shall be provided for reportingCondition values 1 and 2. contentEncoding: int32 CivicLocation: title: CivicLocation required: - country type: object properties: ca0: type: string description: Language ca1: type: string description: National subdivisions (state, canton, region, province, prefecture) ca128: type: string description: Script ca16: type: string description: Leading street direction ca17: type: string description: Trailing street suffix ca18: type: string description: Street suffix or type ca19: type: string description: House number ca2: type: string description: County, parish, gun (JP), district (IN) ca20: type: string description: House number suffix ca21: type: string description: Landmark of vanity address ca22: type: string description: Additional location information ca23: type: string description: Name (residence and office occupant) ca24: type: string description: Postal/zip code ca25: type: string description: Building (structure) ca26: type: string description: Unit (apartment/suite) ca27: type: string description: Floor ca28: type: string description: Room ca29: type: string description: Type of place ca3: type: string description: City, township, shi (JP) ca30: type: string description: Postal community name ca31: type: string description: Post office box ca32: type: string description: Additional code ca33: type: string description: Seat (desk.cubicle, workstation, etc.) ca34: type: string description: Primary road name ca35: type: string description: Road section ca36: type: string description: Branch road name ca37: type: string description: Sub-branch road name ca38: type: string description: Street name pre-modifier ca39: type: string description: Street name post-modifier ca4: type: string description: City division, borough, city district, ward, chou (JP) ca5: type: string description: Neighborhood, block ca6: type: string description: Group of streets below the neighborhood level country: type: string description: The two-letter ISO 3166 [i.9] country code in capital ASCII letters, e.g. DE or US, as per ISO 3166 [i.9] DmgCapabilities: title: DmgCapabilities required: - ExtScMcsCap - dmgApOrPcpCapInfo - dmgStaBeamTrackTimeLimit - dmgStaCapInfo - maxNrBasicAmsduSubframes - maxNrShortAmsduSubframes type: object properties: ExtScMcsCap: type: integer description: Extended SC MCS capabilities as defined in IEEE 802.11-2016. contentEncoding: int32 dmgApOrPcpCapInfo: type: integer description: DMG AP or PCP capabilities information as defined in IEEE 802.11-2016. contentEncoding: int32 dmgStaBeamTrackTimeLimit: type: integer description: DMG station beam tracking time limit as defined in IEEE 802.11-2016. contentEncoding: int32 dmgStaCapInfo: type: integer description: DMG station capabilities information as defined in IEEE 802.11-2016. contentEncoding: int32 maxNrBasicAmsduSubframes: type: integer description: Number of basic A-MSDU subframes in A-MSDU as defined in IEEE 802.11-2016. contentEncoding: int32 maxNrShortAmsduSubframes: type: integer description: Number of short A-MSDU subframes in A-MSDU as defined in IEEE 802.11-2016. contentEncoding: int32 EdmgCapabilities: title: EdmgCapabilities required: - ampduParameters - supportedMcs - trnParameters type: object properties: ampduParameters: type: integer description: A-MPDU parameters as defined in draft IEEE P802.11ay [i.11] contentEncoding: int32 supportedMcs: type: integer description: Supported MCS as defined in draft IEEE P802.11ay [i.11] contentEncoding: int32 trnParameters: type: integer description: Training parameters as defined in draft IEEE P802.11ay [i.11] contentEncoding: int32 ExpiryNotification: title: ExpiryNotification required: - _links - expiryDeadline - notificationType type: object properties: _links: $ref: '#/components/schemas/Links1' expiryDeadline: $ref: '#/components/schemas/TimeStamp' notificationType: type: string description: Shall be set to "ExpiryNotification". ExtBssLoad: title: ExtBssLoad required: - muMimoStaCount - obsSec20MhzUtil - obsSec40MhzUtil - obsSec80MhzUtil - spatStreamUnderUtil type: object properties: muMimoStaCount: type: integer description: Indicates the total number of STAs currently associated with this BSS that have a 1 in the MU Beamformee Capable field of their VHT Capabilities element. contentEncoding: int32 obsSec20MhzUtil: type: integer description: Observable loading on each of the secondary 20 MHz channel. contentEncoding: int32 obsSec40MhzUtil: type: integer description: Observable loading on each of the secondary 40 MHz channel. contentEncoding: int32 obsSec80MhzUtil: type: integer description: Observable loading on each of the secondary 80 MHz channel. contentEncoding: int32 spatStreamUnderUtil: type: integer description: The percentage of time, linearly scaled with 255 representing 100 %, that the AP has underutilized spatial domain resources for given busy time of the medium. contentEncoding: int32 GeoLocation: title: GeoLocation required: - datum - lat - latUncertainty - long - longUncertainty type: object properties: altitude: type: integer description: The altitude value of location as defined in IETF RFC 6225 contentEncoding: int32 altitudeType: type: integer description: The type description for altitude information e.g. floors or meters as defined in IETF RFC 6225 contentEncoding: int32 altitudeUncertainty: type: integer description: The uncertainty for altitude information as defined in IETF RFC 6225 contentEncoding: int32 datum: type: integer description: The datum value to express how coordinates are organized and related to real world as defined in IETF RFC 6225 contentEncoding: int32 lat: type: integer description: The latitude value of location as defined in IETF RFC 6225 contentEncoding: int32 latUncertainty: type: integer description: The uncertainty for Latitude information as defined in IETF RFC 6225 contentEncoding: int32 long: type: integer description: The longitude value of location as defined in IETF RFC 6225 contentEncoding: int32 longUncertainty: type: integer description: The uncertainty for Longitude information as defined in IETF RFC 6225 contentEncoding: int32 HeCapabilities: title: HeCapabilities required: - heMacCapInfo - hePhyCapinfo - supportedHeMcsNssSet type: object properties: heMacCapInfo: type: integer description: MAC capabilities of an Access Point. contentEncoding: int32 hePhyCapinfo: type: integer description: PHY capabilities of an Access Point. contentEncoding: int32 supportedHeMcsNssSet: type: integer description: Supported MCS and NSS Set. contentEncoding: int32 HtCapabilities: title: HtCapabilities required: - ampduParameters - aselCap - htCapabilityInfo - htExtendedCap - supportedMcsSet - txBeamFormCap type: object properties: ampduParameters: type: integer description: A-MPDU parameters as defined in IEEE 802.11-2016. contentEncoding: int32 aselCap: type: integer description: ASEL capabilities as defined in IEEE 802.11-2016. contentEncoding: int32 htCapabilityInfo: type: integer description: HT Capability Information as defined in IEEE 802.11-2016. contentEncoding: int32 htExtendedCap: type: integer description: Extended HT Capabilities as defined in IEEE 802.11-2016. contentEncoding: int32 supportedMcsSet: type: integer description: Supported MCS set as defined in IEEE 802.11-2016. contentEncoding: int32 txBeamFormCap: type: integer description: Transmit Beamforming Capabilities as defined in IEEE 802.11-2016. contentEncoding: int32 LinkType: title: LinkType required: - href type: object properties: href: type: string MeasurementConfig: title: MeasurementConfig required: - measurementId - measurementInfo - staId type: object properties: _links: $ref: '#/components/schemas/Links4' measurementId: type: string description: Unique identifier allocated by the service consumer to identify measurement reports (within sta_information query), associated with this measurement configuration. measurementInfo: $ref: '#/components/schemas/MeasurementInfo' staId: type: array items: $ref: '#/components/schemas/StaIdentity' description: Identifier(s) to uniquely specify the target client station(s) for the measurement configuration. MeasurementConfigLinkList: title: MeasurementConfigLinkList required: - _links type: object properties: _links: $ref: '#/components/schemas/Links4' measurementConfig: type: array items: $ref: '#/components/schemas/MeasurementConfig1' description: '' MeasurementInfo: title: MeasurementInfo type: object properties: beaconRequestConf: $ref: '#/components/schemas/BeaconRequestConfig' channelLoadConf: $ref: '#/components/schemas/ChannelLoadConfig' measurementDuration: type: integer description: Duration of the measurement in Time Units (TUs) of 1 024 µs, as defined in clause 11.11.4 of IEEE 802.11-2016. If not provided, the underlying system may utilize a default configuration that will be indicated in resulting measurement reports. contentEncoding: int32 neighborReportConf: $ref: '#/components/schemas/NeighborReportConfig' randomInterval: type: integer description: Random interval to be used for starting the measurement in TUs of 1 024 µs, as specified in clause 11.11.3 of IEEE 802.11-2016. If not provided, the underlying system may utilize a default configuration that will be indicated in resulting measurement reports. contentEncoding: int32 staStatisticsConf: $ref: '#/components/schemas/StaStatisticsConfig' MeasurementReportNotification: title: MeasurementReportNotification allOf: - $ref: '#/components/schemas/InlineNotification' - type: object properties: beaconReport: type: array items: $ref: '#/components/schemas/BeaconReport' description: Beacon Report as defined in IEEE 802.11-2016. channelLoad: type: array items: $ref: '#/components/schemas/ChannelLoad' description: Channel Load reports as seen by the station as defined in IEEE 802.11-2016. neighborReport: type: array items: $ref: '#/components/schemas/NeighborReport' description: Neighbor Report providing information about neighbor Access Points seen by the station as defined in IEEE 802.112016. staStatistics: type: array items: $ref: '#/components/schemas/StaStatistics' description: STA Statistics Report as defined in IEEE 802.11-2016. timeStamp: $ref: '#/components/schemas/TimeStamp' MeasurementReportSubscription: title: MeasurementReportSubscription allOf: - $ref: '#/components/schemas/InlineSubscription' - required: - measurementId - measurementInfo - staId type: object properties: _links: $ref: '#/components/schemas/Links' callbackReference: type: string description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009, clause 6.12a. expiryDeadline: $ref: '#/components/schemas/TimeStamp' measurementId: type: string description: Unique identifier allocated by the service consumer to identify measurement reports associated with this measurement subscription. measurementInfo: $ref: '#/components/schemas/MeasurementInfo' requestTestNotification: type: boolean description: Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009, clause 6.12a. staId: type: array items: $ref: '#/components/schemas/StaIdentity' description: Identifier(s) to uniquely specify the target client station(s) for the subscription. websockNotifConfig: $ref: '#/components/schemas/WebsockNotifConfig' description: Provides details to negotiate and signal the use of a Websocket connection between the WAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009, clause 6.12a. NeighborReport: title: NeighborReport required: - bssid - bssidInfo - channel - measurementId - operatingClass - phyType type: object properties: bssTransitionCandidatePreference: type: integer description: Relative value indicating the preferred ordering for this BSS as a transition candidate for roaming. 255 indicating the most preferred candidate and 1 indicating the least preferred candidate, as defined in Table 9-152 within IEEE 802.112016. contentEncoding: int32 bssid: type: string description: BSSID (MAC address) of the Access Point that is being reported. bssidInfo: $ref: '#/components/schemas/BssidInfo' channel: type: integer description: Channel field indicates a channel number, which is interpreted in the context of the indicated operating class. Channel numbers are defined in Annex E within IEEE 802.11-2016. contentEncoding: int32 measurementId: type: string description: Measurement ID of the Measurement configuration applied to this Neighbor Report. operatingClass: type: integer description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016. contentEncoding: int32 phyType: type: integer description: >- PHY type of the AP indicated by this BSSID. It is an integer value coded according to the value of the dot11PHYType, Annex C within IEEE 802.11-2016. 2 = dsss 4 = ofdm 5 = hrdsss 6 = erp 7 = ht 8 = dmg 9 = vht 10 = tvht contentEncoding: int32 staId: $ref: '#/components/schemas/StaIdentity' NeighborReportConfig: title: NeighborReportConfig type: object properties: bssid: type: string description: BSSID of the neighbor AP which information is intended to obtain. If no specific BSSID is given, the information will be provided for all APs matching the ssid criteria. ssid: type: string description: The SSID field is optionally present. If present, it contains an SSID element. The presence of an SSID element in a Neighbor Report indicates a request for a neighbor list for the specified SSID in the SSID Element. The absence of an SSID element indicates neighbor report for the current ESS. OBssLoad: title: OBssLoad required: - allocatedTrafficSelfMean - allocatedTrafficShareMean type: object properties: allocatedTrafficSelfMean: type: integer description: Mean of allocated traffic from this AP (BSS) in units of 32 µs per second. contentEncoding: int32 allocatedTrafficSelfStdDev: type: integer description: Standard deviation from the mean of allocation traffic from this BSS in units of 32 µs per second. contentEncoding: int32 allocatedTrafficShareMean: type: integer description: Mean of the sum of allocated traffic from other APs on the overlapping channel in unit of 32 µs per second. contentEncoding: int32 allocatedTrafficShareStdDev: type: integer description: Standard deviation from the mean of the sum of allocated traffic from other APs on the overlapping channel in unit of 32 µs per second. contentEncoding: int32 overlap: type: integer description: Indicates the number of other APs that are sharing the same channel as the reporting AP. contentEncoding: int32 ProblemDetails: title: ProblemDetails type: object properties: detail: type: string description: A human-readable explanation specific to this occurrence of the problem instance: type: string description: A URI reference that identifies the specific occurrence of the problem status: type: integer description: The HTTP status code for this occurrence of the problem contentEncoding: int32 title: type: string description: A short, human-readable summary of the problem type type: type: string description: A URI reference according to IETF RFC 3986 that identifies the problem type ReportedBeaconFrameInfo: title: ReportedBeaconFrameInfo required: - frameType - phyType type: object properties: frameType: type: integer description: >- A value of 0 indicates a Beacon or Probe Response. A value of 1 indicates a Measurement Pilot frame. contentEncoding: int32 phyType: type: integer description: Value between 0 and 127 coded according to dot11PHYType. contentEncoding: int32 ReportingReasonQoSCounters: title: ReportingReasonQoSCounters required: - qosAckFailure - qosDiscarded - qosFailed - qosFrameDuplicate - qosMultipleRetry - qosRetry - qosRtsFailure type: object properties: qosAckFailure: type: boolean description: dot11QoSAckFailure qosDiscarded: type: boolean description: dot11QoSDiscarded qosFailed: type: boolean description: dot11QoSFailed qosFrameDuplicate: type: boolean description: dot11QoSFrameDuplicate qosMultipleRetry: type: boolean description: dot11QoSMultipleRetry qosRetry: type: boolean description: dot11QoSRetry qosRtsFailure: type: boolean description: dot11QoSRTSFailure ReportingReasonStaCounters: title: ReportingReasonStaCounters required: - ackFailure - failed - fcsError - frameDuplicate - multipleRetry - retry - rtsFailure type: object properties: ackFailure: type: boolean description: dot11AckFailure failed: type: boolean description: dot11Failed fcsError: type: boolean description: dot11FCSError frameDuplicate: type: boolean description: dot11FrameDuplicate multipleRetry: type: boolean description: dot11MultipleRetry retry: type: boolean description: dot11Retry rtsFailure: type: boolean description: dot11RTSFailure Rssi: title: Rssi required: - rssi type: object properties: rssi: type: integer description: The Received Signal Strength Indicator from a station contentEncoding: int32 STACounterTriggerCondition: title: STACounterTriggerCondition type: object properties: ackFailureCountThreshold: type: integer description: Configure and set threshold for dot11AckFailureCount trigger contentEncoding: int32 failedCountThreshold: type: integer description: Configure and set threshold for dot11FailedCount trigger contentEncoding: int32 fcsErrorCountThreshold: type: integer description: Configure and set threshold for dot11FCSErrorCount trigger contentEncoding: int32 frameDuplicateCountThreshold: type: integer description: Configure and set threshold for dot11FrameDuplicateCount trigger contentEncoding: int32 multipleRetryCountThreshold: type: integer description: Configure and set threshold for dot11MultipleRetryCount trigger contentEncoding: int32 retryCountThreshold: type: integer description: Configure and set threshold for dot11RetryCount trigger contentEncoding: int32 rtsFailureCountThreshold: type: integer description: Configure and set threshold for dot11RTSFailureCount trigger contentEncoding: int32 StaDataRate: title: StaDataRate type: object properties: staId: $ref: '#/components/schemas/StaIdentity' staLastDataDownlinkRate: type: integer description: The data transmit rate in kbps that was most recently used for transmission of data PPDUs from the access point to the station. contentEncoding: int32 staLastDataUplinkRate: type: integer description: The data transmit rate in Kbps that was most recently used for transmission of data PPDUs from the associated station to the access point. contentEncoding: int32 StaDataRateNotification: title: StaDataRateNotification allOf: - $ref: '#/components/schemas/InlineNotification' - type: object properties: staDataRate: type: array items: $ref: '#/components/schemas/StaDataRate' description: Data rates of a client station. timeStamp: $ref: '#/components/schemas/TimeStamp' StaDataRateSubscription: title: StaDataRateSubscription allOf: - $ref: '#/components/schemas/InlineSubscription' - required: - staId type: object properties: _links: $ref: '#/components/schemas/Links' callbackReference: type: string description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009, clause 6.12a. expiryDeadline: $ref: '#/components/schemas/TimeStamp' notificationEvent: $ref: '#/components/schemas/NotificationEvent1' notificationPeriod: type: integer description: >- Set for periodic notification reporting.Value indicates the notification period in seconds. contentEncoding: int32 requestTestNotification: type: boolean description: Set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as specified in ETSI GS MEC 009, clause 6.12a. staId: type: array items: $ref: '#/components/schemas/StaIdentity' description: Identifier(s) to uniquely specify the target client station(s) for the subscription. websockNotifConfig: $ref: '#/components/schemas/WebsockNotifConfig' description: Provides details to negotiate and signal the use of a Websocket connection between the WAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select an alternative and return only that alternative in the response, as specified in ETSI GS MEC 009, clause 6.12a StaIdentity: title: StaIdentity required: - macId type: object properties: aid: type: string description: Number which identifies a particular association between a station and an Access Point ipAddress: type: array items: type: string description: IPv4 or IPv6 address(es) allocated for the station. macId: type: string description: Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment. ssid: type: array items: type: string description: Service Set Identifier(s) to identify logical networks. StaInfo: title: StaInfo required: - staId type: object properties: apAssociated: $ref: '#/components/schemas/ApAssociated' beaconReport: type: array items: $ref: '#/components/schemas/BeaconReport' description: Beacon Report as defined in IEEE 802.11-2016. channel: type: integer description: Channel currently used by the station to connect with its associated Access Point. contentEncoding: int32 channelLoad: type: array items: $ref: '#/components/schemas/ChannelLoad' description: Channel Load reports as seen by the station as defined IEEE 802.11-2016. Channel Load reports may be configured for any channel, including the station's current channel for association. neighborReport: type: array items: $ref: '#/components/schemas/NeighborReport' description: Information about neighbor Access Points seen by the station as defined IEEE 802.11-2016. rssi: $ref: '#/components/schemas/Rssi' staDataRate: $ref: '#/components/schemas/StaDataRate' staId: $ref: '#/components/schemas/StaIdentity' staStatistics: type: array items: $ref: '#/components/schemas/StaStatistics' description: Statistics as defined in IEEE 802.11-2016 for the client station collected over measurement duration. timeStamp: $ref: '#/components/schemas/TimeStamp' StaStatistics: title: StaStatistics required: - groupIdentity - measurementDuration - measurementId type: object properties: group2to9Data: $ref: '#/components/schemas/StaStatisticsGroup2to9Data' groupIdentity: type: integer description: >- Indicates the requested statistics group describing the Statistics Group Data according to Table 9-114 of IEEE 802.11-2016. Depending on group identity, one and only one of the STA Statistics Group Data will be present. contentEncoding: int32 groupOneData: $ref: '#/components/schemas/StaStatisticsGroupOneData' groupZeroData: $ref: '#/components/schemas/StaStatisticsGroupZeroData' measurementDuration: type: integer description: Duration over which the Statistics Group Data was measured in time units of 1 024 µs. Duration equal to zero indicates a report of current values. contentEncoding: int32 measurementId: type: string description: Measurement ID of the Measurement configuration applied to this STA Statistics Report. staId: $ref: '#/components/schemas/StaIdentity' StaStatisticsConfig: title: StaStatisticsConfig required: - groupIdentity - triggeredReport type: object properties: groupIdentity: type: integer description: As per Table 9-92 of IEEE 802.11-2016. contentEncoding: int32 measurementCount: type: integer description: >- Valid if triggeredReport = true. Specifies the number of MAC service data units or protocol data units to determine if the trigger conditions are met. contentEncoding: int32 triggerCondition: $ref: '#/components/schemas/STACounterTriggerCondition' triggerTimeout: type: integer description: >- Valid if triggeredReport = true. The Trigger Timeout field contains a value in units of 100 time-units of 1 024 µs during which a measuring STA does not generate further triggered STA Statistics Reports after a trigger condition has been met. contentEncoding: int32 triggeredReport: type: boolean description: True = triggered reporting, otherwise duration. StaStatisticsGroup2to9Data: title: StaStatisticsGroup2to9Data required: - qosAckFailureCount - qosDiscardedFrameCount - qosFailedCount - qosFrameDuplicateCount - qosMPDUsReceivedCount - qosMultipleRetryCount - qosRTSFailureCount - qosRTSSuccessCount - qosReceivedFragmentCount - qosRetriesReceivedCount - qosRetryCount - qosTransmittedFragmentCount - qosTransmittedFrameCount type: object properties: qosAckFailureCount: type: integer description: dot11QosAckFailureCount counter contentEncoding: int32 qosDiscardedFrameCount: type: integer description: dot11QosDiscardedFrameCount counter contentEncoding: int32 qosFailedCount: type: integer description: dot11QosFailedCount counter contentEncoding: int32 qosFrameDuplicateCount: type: integer description: dot11QosFrameDuplicateCount counter contentEncoding: int32 qosMPDUsReceivedCount: type: integer description: dot11QosMPDUsReceivedCount counter contentEncoding: int32 qosMultipleRetryCount: type: integer description: dot11QosMultipleRetryCount counter contentEncoding: int32 qosRTSFailureCount: type: integer description: dot11QosRTSFailureCount counter contentEncoding: int32 qosRTSSuccessCount: type: integer description: dot11QosRTSSuccessCount counter contentEncoding: int32 qosReceivedFragmentCount: type: integer description: dot11QosReceivedFragmentCount counter contentEncoding: int32 qosRetriesReceivedCount: type: integer description: dot11QosRetriesReceivedCount counter contentEncoding: int32 qosRetryCount: type: integer description: dot11QosRetryCount counter contentEncoding: int32 qosTransmittedFragmentCount: type: integer description: dot11QosTransmittedFragmentCount counter contentEncoding: int32 qosTransmittedFrameCount: type: integer description: dot11QosTransmittedFrameCount counter contentEncoding: int32 reportingReasonQoSCounters: $ref: '#/components/schemas/ReportingReasonQoSCounters' StaStatisticsGroupOneData: title: StaStatisticsGroupOneData required: - ackFailureCount - frameDuplicateCount - multipleRetryCount - retryCount - rtsFailureCount - rtsSuccessCount type: object properties: ackFailureCount: type: integer description: dot11AckFailureCount counter contentEncoding: int32 frameDuplicateCount: type: integer description: dot11FrameDuplicateCount counter contentEncoding: int32 multipleRetryCount: type: integer description: dot11MultipleRetryCount counter contentEncoding: int32 reportingReasonStaCounters: $ref: '#/components/schemas/ReportingReasonStaCounters' retryCount: type: integer description: dot11RetryCount counter contentEncoding: int32 rtsFailureCount: type: integer description: dot11RTSFailureCount counter contentEncoding: int32 rtsSuccessCount: type: integer description: dot11RTSSuccessCount counter contentEncoding: int32 StaStatisticsGroupZeroData: title: StaStatisticsGroupZeroData required: - failedCount - fcsErrorCount - groupReceivedFrameCount - groupTransmittedFrameCount - receivedFragmentCount - transmittedFragmentCount - transmittedFrameCount type: object properties: failedCount: type: integer description: dot11FailedCount counter contentEncoding: int32 fcsErrorCount: type: integer description: dot11FCSErrorCount counter contentEncoding: int32 groupReceivedFrameCount: type: integer description: dot11GroupReceivedFrameCount counter contentEncoding: int32 groupTransmittedFrameCount: type: integer description: dot11GroupTransmittedFrameCount counter contentEncoding: int32 receivedFragmentCount: type: integer description: dot11ReceivedFragmentCount counter contentEncoding: int32 reportingReasonStaCounters: $ref: '#/components/schemas/ReportingReasonStaCounters' transmittedFragmentCount: type: integer description: dot11TransmittedFragmentCount counter contentEncoding: int32 transmittedFrameCount: type: integer description: dot11TransmittedFrameCount counter contentEncoding: int32 SubscriptionLinkList: title: SubscriptionLinkList required: - _links type: object properties: _links: $ref: '#/components/schemas/Links6' subscription: type: array items: $ref: '#/components/schemas/Subscription' description: '' TestNotification: title: TestNotification required: - _links - notificationType type: object properties: _links: $ref: '#/components/schemas/Links1' notificationType: type: string description: Shall be set to "TestNotification". TimeStamp: title: TimeStamp required: - nanoSeconds - seconds type: object properties: nanoSeconds: type: integer description: The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC. contentEncoding: int32 seconds: type: integer description: The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC. contentEncoding: int32 VhtCapabilities: title: VhtCapabilities required: - vhtCapInfo - vhtMcsNss type: object properties: vhtCapInfo: type: integer description: VHT capabilities Info as defined in IEEE 802.11-2016. contentEncoding: int32 vhtMcsNss: type: integer description: Supported VHT-MCS and NSS Set as defined in IEEE 802.11-2016. contentEncoding: int32 WanMetrics: title: WanMetrics required: - downlinkLoad - downlinkSpeed - lmd - uplinkLoad - uplinkSpeed - wanInfo type: object properties: downlinkLoad: type: integer description: 1-octet positive integer representing the current percentage loading of the downlink WAN connection, scaled linearly with 255 representing 100 %, as measured over an interval the duration of which is reported in Load Measurement Duration. In cases where the downlink load is unknown to the AP, the value is set to zero. contentEncoding: int32 downlinkSpeed: type: integer description: 4-octet positive integer whose value is an estimate of the WAN Backhaul link current downlink speed in kilobits per second. contentEncoding: int32 lmd: type: integer description: The LMD (Load Measurement Duration) field is a 2-octet positive integer representing the duration over which the Downlink Load and Uplink Load have been measured, in tenths of a second. When the actual load measurement duration is greater than the maximum value, the maximum value will be reported. The value of the LMD field is set to 0 when neither the uplink nor downlink load can be computed. When the uplink and downlink loads are computed over different intervals, the maximum interval is reported. contentEncoding: int32 uplinkLoad: type: integer description: 1-octet positive integer representing the current percentage loading of the uplink WAN connection, scaled linearly with 255 representing 100 %, as measured over an interval, the duration of which is reported in Load Measurement Duration. In cases where the uplink load is unknown to the AP, the value is set to zero. contentEncoding: int32 uplinkSpeed: type: integer description: 4-octet positive integer whose value is an estimate of the WAN Backhaul link's current uplink speed in kilobits per second. contentEncoding: int32 wanInfo: type: integer description: Info about WAN link status, link symmetricity and capacity currently used. contentEncoding: int32 WebsockNotifConfig: title: WebsockNotifConfig type: object properties: requestWebsocketUri: type: boolean description: Set to true by the service consumer to indicate that Websocket delivery is requested. websocketUri: type: string description: Set by WAIS to indicate to the service consumer the Websocket URI to be used for delivering notifications. WlanCapabilities: title: WlanCapabilities type: object properties: dmg: $ref: '#/components/schemas/DmgCapabilities' edmg: $ref: '#/components/schemas/EdmgCapabilities' he: $ref: '#/components/schemas/HeCapabilities' ht: $ref: '#/components/schemas/HtCapabilities' vht: $ref: '#/components/schemas/VhtCapabilities' InlineNotification: title: InlineNotification required: - notificationType type: object properties: notificationType: type: string discriminator: propertyName: notificationType mapping: AssocStaNotification: '#/components/schemas/AssocStaNotification' MeasurementReportNotification: '#/components/schemas/MeasurementReportNotification' StaDataRateNotification: '#/components/schemas/StaDataRateNotification' InlineSubscription: title: InlineSubscription required: - subscriptionType type: object properties: subscriptionType: type: string discriminator: propertyName: subscriptionType mapping: AssocStaNotification: '#/components/schemas/AssocStaNotification' MeasurementReportNotification: '#/components/schemas/MeasurementReportNotification' StaDataRateNotification: '#/components/schemas/StaDataRateNotification' Links: title: Links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. Links1: title: Links1 required: - subscription type: object properties: subscription: $ref: '#/components/schemas/LinkType' description: Hyperlink related to the resource. Links4: title: Links4 required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' description: Hyperlink related to the resource. Links6: title: Links6 required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' description: List of hyperlinks related to the resource. MeasurementConfig1: title: MeasurementConfig1 required: - href - measurementId type: object properties: href: type: string description: The URI referring to a measurement configuration. measurementId: type: string description: Unique identifier allocated by the service consumer to identify measurement reports associated with this measurement configuration. NotificationEvent: title: NotificationEvent required: - threshold - trigger type: object properties: threshold: type: integer description: Number of connected stations threshold for trigger-based event reporting. contentEncoding: int32 trigger: $ref: '#/components/schemas/Trigger' description: Set for trigger-based event notification reporting. NotificationEvent1: title: NotificationEvent1 required: - trigger type: object properties: downlinkRateThreshold: type: integer description: Downlink data rate threshold for StaDataRate reporting. contentEncoding: int32 trigger: $ref: '#/components/schemas/Trigger1' uplinkRateThreshold: type: integer description: Uplink data rate threshold for StaDataRate reporting. contentEncoding: int32 description: Set for trigger-based event notification reporting. Subscription: title: Subscription required: - href - subscriptionType type: object properties: href: type: string description: The URI referring to the subscription. subscriptionType: type: string description: >- Type of the subscription. The string shall be set according to the "subscriptionType" attribute of the associated subscription data type defined in 6.3.2, 6.3.3. and 6.3.5: “AssocStaSubscription” “StaDataRateSubscription” “MeasurementReportSubscription” Trigger: title: Trigger enum: - 1 - 2 type: integer description: >- 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. examples: - 1 Trigger1: title: Trigger1 enum: - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 type: integer description: >- Trigger event for the notification: 1 = Notification issued when the STA's downlink data rate is greater than or equal to the downlink threshold. 2 = Notification issued when the STA's downlink data rate is less than or equal to the downlink threshold. 3 = Notification issued when the STA's uplink data rate is greater than or equal to the uplink threshold. 4 = Notification issued when the STA's uplink data rate is less than or equal to the uplink threshold. 5 = Notification issued when the STA's downlink and uplink data rate is greater than or equal to their thresholds. 6 = Notification issued when the STA's downlink and uplink data rate is less than or equal to their thresholds. 7 = Notification issued when the STA's downlink or uplink data rate is greater than or equal to their thresholds. 8 = Notification issued when the STA's downlink or uplink data rate is less than or equal to their thresholds. examples: - 1 security: - {}