WlanInformationApi.yaml 113 KB
Newer Older
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: {}
piscione's avatar
piscione committed
  description: WLAN Access Information
paths:
  /queries/ap/ap_information:
    get:
      tags:
      summary: 'Queries information about existing WLAN Access Points'
Michel Roy's avatar
Michel Roy committed
      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
          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:
      summary: 'Queries information about existing WLAN stations'
Michel Roy's avatar
Michel Roy committed
      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
          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:
      summary: 'Queries information on subscriptions for notifications'
Michel Roy's avatar
Michel Roy committed
      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:
      summary: 'Creates a new subscription to WLAN Access Information notifications'
Michel Roy's avatar
Michel Roy committed
      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
          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'
                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"
piscione's avatar
piscione committed
                '400':
                 description: "Bad Request"
    parameters: []
  /subscriptions/{subscriptionId}:
    get:
      tags:
      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
          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:
      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
          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'
                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:
      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: []
Michel Roy's avatar
Michel Roy committed
  /measurements:
    get:
      tags:
      summary: 'Queries information on measurements configuration'
Michel Roy's avatar
Michel Roy committed
      description: Queries information on measurements configuration
      operationId: measurementLinkList_measurementsGET
      parameters: []
Michel Roy's avatar
Michel Roy committed
      responses:
        '200':
          description: Response body contains the list of links to requestors measurement configurations.
          headers: {}
Michel Roy's avatar
Michel Roy committed
          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
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
Michel Roy's avatar
Michel Roy committed
    post:
      tags:
      summary: 'Creates a new measurement configuration'
Michel Roy's avatar
Michel Roy committed
      description: Creates a new measurement configuration
      operationId: measurementsPOST
      parameters: []
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      responses:
        '201':
          description: Successful measurement configuration response
Michel Roy's avatar
Michel Roy committed
          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: {}
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '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'
                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
Michel Roy's avatar
Michel Roy committed
        '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}:
Michel Roy's avatar
Michel Roy committed
    get:
      tags:
      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)
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      responses:
        '200':
          description: Measurement configuration information
Michel Roy's avatar
Michel Roy committed
          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: {}

Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
Michel Roy's avatar
Michel Roy committed
    put:
      tags:
      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)
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      requestBody:
        description: Measurement configuration to be modified
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeasurementConfig'
        required: true
Michel Roy's avatar
Michel Roy committed
      responses:
        '200':
          description: Successful measurement configuration modification
Michel Roy's avatar
Michel Roy committed
          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'
Michel Roy's avatar
Michel Roy committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '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'
                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
Michel Roy's avatar
Michel Roy committed
        '429':
          description: 'Too Many Requests : used when a rate limiter has triggered.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
      deprecated: false
Michel Roy's avatar
Michel Roy committed
    delete:
      tags:
      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)
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      responses:
        '204':
          description: No Content
          headers: {}
          content: {}
Michel Roy's avatar
Michel Roy committed
        '401':
          description: 'Unauthorized :  used when the client did not submit credentials.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '403':
          description: 'Forbidden :  operation is not allowed given the current status of the resource.'
          headers: {}
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
        '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'
Michel Roy's avatar
Michel Roy committed
        '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.
Michel Roy's avatar
Michel Roy committed
        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:
      type: object
      properties:
Michel Roy's avatar
Michel Roy committed
        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:
      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'
Michel Roy's avatar
Michel Roy committed
        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:
Michel Roy's avatar
Michel Roy committed
        - 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:
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        bssid:
          type: string
          description: Indicates the BSSID of the BSS for which a beacon report has been received.
Michel Roy's avatar
Michel Roy committed
        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.
Michel Roy's avatar
Michel Roy committed
        operatingClass:
          type: integer
          description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
      properties:
        reportingCondition:
Michel Roy's avatar
Michel Roy committed
          description: >-
            Reporting condition for the Beacon Report as per Table 9-89 of IEEE 802.11-2016:
Michel Roy's avatar
Michel Roy committed

            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.
Michel Roy's avatar
Michel Roy committed

            6 = measured RCPI level is less than a threshold defined by an offset from the serving AP's reference RCPI.
Michel Roy's avatar
Michel Roy committed

            7 = measured RSNI level is greater than a threshold defined by an offset from the serving AP's reference RSNI.
Michel Roy's avatar
Michel Roy committed

            8 = measured RSNI level is less than a threshold defined by an offset from the serving AP's reference RSNI.
Michel Roy's avatar
Michel Roy committed

            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.
Michel Roy's avatar
Michel Roy committed

            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
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
      required:
      - beaconReportingConf
      - channelId
      - measurementMode
      - operatingClass
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
Michel Roy's avatar
Michel Roy committed
        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: >-
Michel Roy's avatar
Michel Roy committed
            0 for passive.
            1 for active.
Michel Roy's avatar
Michel Roy committed
            2 for beacon table.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        operatingClass:
          type: integer
          description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.112016 .
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
      properties:
        apsd:
          type: boolean
          description: APSD Option implemented
Michel Roy's avatar
Michel Roy committed
        delayedBACK:
          type: boolean
          description: Delayed Block Ack Option implemented
Michel Roy's avatar
Michel Roy committed
        immediateBACK:
          type: boolean
          description: Immediate Block Ack Option implemented
Michel Roy's avatar
Michel Roy committed
        qos:
          type: boolean
          description: QoS Option implemented
Michel Roy's avatar
Michel Roy committed
        radioMeasurements:
          type: boolean
          description: Radio Measurement Activated
Michel Roy's avatar
Michel Roy committed
        spectrumManagement:
          type: boolean
          description: Spectrum Management required
    BssLoad:
      title: BssLoad
Michel Roy's avatar
Michel Roy committed
      required:
      - availAdmCap
      - channelUtilization
      - staCount
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
        apReachability:
Michel Roy's avatar
Michel Roy committed
          description: >-
            The apReachability field indicates whether the AP identified by this BSSID is reachable by the STA that requested the neighbor report. Valid values:
Michel Roy's avatar
Michel Roy committed

            0 = reserved

            1 = not reachable

            2 = unknown

            3 = reachable.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        capabilities:
          $ref: '#/components/schemas/BssCapabilities'
        ftm:
Michel Roy's avatar
Michel Roy committed
          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.
Michel Roy's avatar
Michel Roy committed


            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.
Michel Roy's avatar
Michel Roy committed
        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.
Michel Roy's avatar
Michel Roy committed
        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.
Michel Roy's avatar
Michel Roy committed
        security:
Michel Roy's avatar
Michel Roy committed
          description: >-
            True indicates the AP identified by this BSSID supports the same security provisioning as used by the STA in its current association.
Michel Roy's avatar
Michel Roy committed


            False indicates either that the AP does not support the same security provisioning or that the security information is not available at this time.
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
      required:
      - channel
      - channelLoad
      - measurementDuration
      - measurementId
      - operatingClass
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        channel:
          type: integer
          description: Channel number indicates the channel number for which the measurement report applies.
          contentEncoding: int32
        channelLoad:
Michel Roy's avatar
Michel Roy committed
          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
Michel Roy's avatar
Michel Roy committed
        measurementDuration:
          type: integer
          description: Duration over which the Channel Load report was measured, in units of TUs of 1 024 µs.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        measurementId:
          type: string
          description: Measurement ID of the Measurement configuration applied to this Channel Load Report.
Michel Roy's avatar
Michel Roy committed
        operatingClass:
          type: integer
          description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016 .
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        staId:
          $ref: '#/components/schemas/StaIdentity'
    ChannelLoadConfig:
      title: ChannelLoadConfig
Michel Roy's avatar
Michel Roy committed
      required:
      - channel
      - operatingClass
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        channel:
          type: integer
          description: Channel for which the channel load report is requested.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        operatingClass:
          type: integer
          description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        reportingCondition:
Michel Roy's avatar
Michel Roy committed
          description: >-
            Reporting condition for the Beacon Report as per Table 9-153 of IEEE 802.11-2016:
Michel Roy's avatar
Michel Roy committed

            0 = Report to be issued after each measurement.

            1 = Report to be issued when Channel Load is greater than or equal to the threshold.
Michel Roy's avatar
Michel Roy committed

            2 = Report to be issued when Channel Load is less than or equal to the threshold.
Michel Roy's avatar
Michel Roy committed


            If this optional field is not provided, channel load report should be issued after each measurement (reportingCondition = 0).
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        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:
      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
Michel Roy's avatar
Michel Roy committed
      properties:
        _links:
          $ref: '#/components/schemas/Links1'
Michel Roy's avatar
Michel Roy committed
        expiryDeadline:
          $ref: '#/components/schemas/TimeStamp'
        notificationType:
          type: string
          description: Shall be set to "ExpiryNotification".
    ExtBssLoad:
      title: ExtBssLoad
Michel Roy's avatar
Michel Roy committed
      required:
      - muMimoStaCount
      - obsSec20MhzUtil
      - obsSec40MhzUtil
      - obsSec80MhzUtil
      - spatStreamUnderUtil
Michel Roy's avatar
Michel Roy committed
      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:
      type: object
      properties:
        href:
          type: string
    MeasurementConfig:
      title: MeasurementConfig
      required:
      - measurementId
      - measurementInfo
      - staId
      type: object
      properties:
Michel Roy's avatar
Michel Roy committed
        _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.
Michel Roy's avatar
Michel Roy committed
        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:
      type: object
      properties:
Michel Roy's avatar
Michel Roy committed
        _links:
          $ref: '#/components/schemas/Links4'
Michel Roy's avatar
Michel Roy committed
        measurementConfig:
          type: array
          items:
            $ref: '#/components/schemas/MeasurementConfig1'
          description: ''
Michel Roy's avatar
Michel Roy committed
    MeasurementInfo:
      title: MeasurementInfo
      type: object
      properties:
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        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'
Michel Roy's avatar
Michel Roy committed
    MeasurementReportSubscription:
      title: MeasurementReportSubscription
      allOf:
      - $ref: '#/components/schemas/InlineSubscription'
      - required:
Michel Roy's avatar
Michel Roy committed
        - 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.
Michel Roy's avatar
Michel Roy committed
    NeighborReport:
      title: NeighborReport
      required:
      - bssid
      - bssidInfo
      - channel
      - measurementId
      - operatingClass
      - phyType
      type: object
      properties:
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        bssid:
          type: string
          description: BSSID (MAC address) of the Access Point that is being reported.
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        measurementId:
          type: string
          description: Measurement ID of the Measurement configuration applied to this Neighbor Report.
Michel Roy's avatar
Michel Roy committed
        operatingClass:
          type: integer
          description: Operating Class field indicates an operating class value as defined in Annex E within IEEE 802.11-2016.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        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.
        staId:
          $ref: '#/components/schemas/StaIdentity'
Michel Roy's avatar
Michel Roy committed
    NeighborReportConfig:
      title: NeighborReportConfig
      type: object
      properties:
Michel Roy's avatar
Michel Roy committed
        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.
Michel Roy's avatar
Michel Roy committed
        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.
Michel Roy's avatar
Michel Roy committed
    OBssLoad:
      title: OBssLoad
      required:
      - allocatedTrafficSelfMean
      - allocatedTrafficShareMean
      type: object
Michel Roy's avatar
Michel Roy committed
      properties:
        allocatedTrafficSelfMean:
          type: integer
          description: Mean of allocated traffic from this AP (BSS) in units of 32 µs per second.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        allocatedTrafficSelfStdDev:
          type: integer
          description: Standard deviation from the mean of allocation traffic from this BSS in units of 32 µs per second.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        overlap:
          type: integer
          description: Indicates the number of other APs that are sharing the same channel as the reporting AP.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
    ProblemDetails:
      title: ProblemDetails
      type: object
Michel Roy's avatar
Michel Roy committed
      properties:
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem
Michel Roy's avatar
Michel Roy committed
        instance:
          type: string
          description: A URI reference that identifies the specific occurrence of the problem
Michel Roy's avatar
Michel Roy committed
        status:
          type: integer
          description: The HTTP status code for this occurrence of the problem
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        title:
          type: string
          description: A short, human-readable summary of the problem type
Michel Roy's avatar
Michel Roy committed
        type:
          type: string
          description: A URI reference according to IETF RFC 3986 that identifies the problem type
Michel Roy's avatar
Michel Roy committed
    ReportedBeaconFrameInfo:
      title: ReportedBeaconFrameInfo
      required:
      - frameType
      - phyType
      type: object
Michel Roy's avatar
Michel Roy committed
      properties:
        frameType:
          type: integer
          description: >-
Michel Roy's avatar
Michel Roy committed
            A value of 0 indicates a Beacon or Probe Response.
Michel Roy's avatar
Michel Roy committed
            A value of 1 indicates a Measurement Pilot frame.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        phyType:
          type: integer
          description: Value between 0 and 127 coded according to dot11PHYType.
          contentEncoding: int32
    ReportingReasonQoSCounters:
      title: ReportingReasonQoSCounters
Michel Roy's avatar
Michel Roy committed
      required:
      - qosAckFailure
      - qosDiscarded
      - qosFailed
      - qosFrameDuplicate
      - qosMultipleRetry
      - qosRetry
      - qosRtsFailure
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        qosAckFailure:
          type: boolean
          description: dot11QoSAckFailure
Michel Roy's avatar
Michel Roy committed
        qosDiscarded:
          type: boolean
          description: dot11QoSDiscarded
Michel Roy's avatar
Michel Roy committed
        qosFailed:
          type: boolean
          description: dot11QoSFailed
Michel Roy's avatar
Michel Roy committed
        qosFrameDuplicate:
          type: boolean
          description: dot11QoSFrameDuplicate
Michel Roy's avatar
Michel Roy committed
        qosMultipleRetry:
          type: boolean
          description: dot11QoSMultipleRetry
Michel Roy's avatar
Michel Roy committed
        qosRetry:
          type: boolean
          description: dot11QoSRetry
Michel Roy's avatar
Michel Roy committed
        qosRtsFailure:
          type: boolean
          description: dot11QoSRTSFailure
    ReportingReasonStaCounters:
      title: ReportingReasonStaCounters
Michel Roy's avatar
Michel Roy committed
      required:
      - ackFailure
      - failed
      - fcsError
      - frameDuplicate
      - multipleRetry
      - retry
      - rtsFailure
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        ackFailure:
          type: boolean
          description: dot11AckFailure
Michel Roy's avatar
Michel Roy committed
        failed:
          type: boolean
          description: dot11Failed
Michel Roy's avatar
Michel Roy committed
        fcsError:
          type: boolean
          description: dot11FCSError
Michel Roy's avatar
Michel Roy committed
        frameDuplicate:
          type: boolean
          description: dot11FrameDuplicate
Michel Roy's avatar
Michel Roy committed
        multipleRetry:
          type: boolean
          description: dot11MultipleRetry
Michel Roy's avatar
Michel Roy committed
        retry:
          type: boolean
          description: dot11Retry
Michel Roy's avatar
Michel Roy committed
        rtsFailure:
          type: boolean
          description: dot11RTSFailure
Michel Roy's avatar
Michel Roy committed
    Rssi:
      title: Rssi
      required:
      - rssi
      type: object
Michel Roy's avatar
Michel Roy committed
      properties:
        rssi:
          type: integer
          description: The Received Signal Strength Indicator from a station
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
    STACounterTriggerCondition:
      title: STACounterTriggerCondition
      type: object
Michel Roy's avatar
Michel Roy committed
      properties:
        ackFailureCountThreshold:
          type: integer
          description: Configure and set threshold for dot11AckFailureCount trigger
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        failedCountThreshold:
          type: integer
          description: Configure and set threshold for dot11FailedCount trigger
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        fcsErrorCountThreshold:
          type: integer
          description: Configure and set threshold for dot11FCSErrorCount trigger
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        frameDuplicateCountThreshold:
          type: integer
          description: Configure and set threshold for dot11FrameDuplicateCount trigger
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        multipleRetryCountThreshold:
          type: integer
          description: Configure and set threshold for dot11MultipleRetryCount trigger
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        retryCountThreshold:
          type: integer
          description: Configure and set threshold for dot11RetryCount trigger
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        rtsFailureCountThreshold:
          type: integer
          description: Configure and set threshold for dot11RTSFailureCount trigger
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
    StaDataRate:
      title: StaDataRate
      type: object
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
    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'
Michel Roy's avatar
Michel Roy committed
    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
Michel Roy's avatar
Michel Roy committed
      required:
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        aid:
          type: string
          description: Number which identifies a particular association between a station and an Access Point
Michel Roy's avatar
Michel Roy committed
        ipAddress:
          type: array
          items:
            type: string
          description: IPv4 or IPv6 address(es) allocated for the station.
Michel Roy's avatar
Michel Roy committed
        macId:
          type: string
          description: Unique identifier assigned to station (as network interface controller) for communications at the data link layer of a network segment.
Michel Roy's avatar
Michel Roy committed
        ssid:
          type: array
          items:
            type: string
          description: Service Set Identifier(s) to identify logical networks.
    StaInfo:
      title: StaInfo
Michel Roy's avatar
Michel Roy committed
      required:
Michel Roy's avatar
Michel Roy committed
      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.
Michel Roy's avatar
Michel Roy committed
        channel:
          type: integer
          description: Channel currently used by the station to connect with its associated Access Point.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        channelLoad:
Michel Roy's avatar
Michel Roy committed
          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:
Michel Roy's avatar
Michel Roy committed
          type: array
          items:
            $ref: '#/components/schemas/NeighborReport'
          description: Information about neighbor Access Points seen by the station as defined IEEE 802.11-2016.
Michel Roy's avatar
Michel Roy committed
        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.
Michel Roy's avatar
Michel Roy committed
        timeStamp:
          $ref: '#/components/schemas/TimeStamp'
    StaStatistics:
      title: StaStatistics
Michel Roy's avatar
Michel Roy committed
      required:
      - groupIdentity
      - measurementDuration
      - measurementId
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
        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
Michel Roy's avatar
Michel Roy committed
        measurementId:
          type: string
          description: Measurement ID of the Measurement configuration applied to this STA Statistics Report.
Michel Roy's avatar
Michel Roy committed
        staId:
          $ref: '#/components/schemas/StaIdentity'
    StaStatisticsConfig:
      title: StaStatisticsConfig
Michel Roy's avatar
Michel Roy committed
      required:
      - groupIdentity
      - triggeredReport
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        groupIdentity:
          type: integer
          description: As per Table 9-92 of IEEE 802.11-2016.
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        measurementCount:
Michel Roy's avatar
Michel Roy committed
          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
Michel Roy's avatar
Michel Roy committed
        triggerCondition:
          $ref: '#/components/schemas/STACounterTriggerCondition'
        triggerTimeout:
Michel Roy's avatar
Michel Roy committed
          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
Michel Roy's avatar
Michel Roy committed
        triggeredReport:
          type: boolean
          description: True = triggered reporting, otherwise duration.
    StaStatisticsGroup2to9Data:
      title: StaStatisticsGroup2to9Data
Michel Roy's avatar
Michel Roy committed
      required:
      - qosAckFailureCount
      - qosDiscardedFrameCount
      - qosFailedCount
      - qosFrameDuplicateCount
      - qosMPDUsReceivedCount
      - qosMultipleRetryCount
      - qosRTSFailureCount
      - qosRTSSuccessCount
      - qosReceivedFragmentCount
      - qosRetriesReceivedCount
      - qosRetryCount
      - qosTransmittedFragmentCount
      - qosTransmittedFrameCount
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        qosAckFailureCount:
          type: integer
          description: dot11QosAckFailureCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosDiscardedFrameCount:
          type: integer
          description: dot11QosDiscardedFrameCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosFailedCount:
          type: integer
          description: dot11QosFailedCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosFrameDuplicateCount:
          type: integer
          description: dot11QosFrameDuplicateCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosMPDUsReceivedCount:
          type: integer
          description: dot11QosMPDUsReceivedCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosMultipleRetryCount:
          type: integer
          description: dot11QosMultipleRetryCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosRTSFailureCount:
          type: integer
          description: dot11QosRTSFailureCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosRTSSuccessCount:
          type: integer
          description: dot11QosRTSSuccessCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosReceivedFragmentCount:
          type: integer
          description: dot11QosReceivedFragmentCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosRetriesReceivedCount:
          type: integer
          description: dot11QosRetriesReceivedCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosRetryCount:
          type: integer
          description: dot11QosRetryCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosTransmittedFragmentCount:
          type: integer
          description: dot11QosTransmittedFragmentCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        qosTransmittedFrameCount:
          type: integer
          description: dot11QosTransmittedFrameCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        reportingReasonQoSCounters:
          $ref: '#/components/schemas/ReportingReasonQoSCounters'
    StaStatisticsGroupOneData:
      title: StaStatisticsGroupOneData
Michel Roy's avatar
Michel Roy committed
      required:
      - ackFailureCount
      - frameDuplicateCount
      - multipleRetryCount
      - retryCount
      - rtsFailureCount
      - rtsSuccessCount
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        ackFailureCount:
          type: integer
          description: dot11AckFailureCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        frameDuplicateCount:
          type: integer
          description: dot11FrameDuplicateCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        multipleRetryCount:
          type: integer
          description: dot11MultipleRetryCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        reportingReasonStaCounters:
          $ref: '#/components/schemas/ReportingReasonStaCounters'
        retryCount:
          type: integer
          description: dot11RetryCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        rtsFailureCount:
          type: integer
          description: dot11RTSFailureCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        rtsSuccessCount:
          type: integer
          description: dot11RTSSuccessCount counter
          contentEncoding: int32
    StaStatisticsGroupZeroData:
      title: StaStatisticsGroupZeroData
Michel Roy's avatar
Michel Roy committed
      required:
      - failedCount
      - fcsErrorCount
      - groupReceivedFrameCount
      - groupTransmittedFrameCount
      - receivedFragmentCount
      - transmittedFragmentCount
      - transmittedFrameCount
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        failedCount:
          type: integer
          description: dot11FailedCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        fcsErrorCount:
          type: integer
          description: dot11FCSErrorCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        groupReceivedFrameCount:
          type: integer
          description: dot11GroupReceivedFrameCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        groupTransmittedFrameCount:
          type: integer
          description: dot11GroupTransmittedFrameCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        receivedFragmentCount:
          type: integer
          description: dot11ReceivedFragmentCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        reportingReasonStaCounters:
          $ref: '#/components/schemas/ReportingReasonStaCounters'
        transmittedFragmentCount:
          type: integer
          description: dot11TransmittedFragmentCount counter
          contentEncoding: int32
Michel Roy's avatar
Michel Roy committed
        transmittedFrameCount:
          type: integer
          description: dot11TransmittedFrameCount counter
          contentEncoding: int32
    SubscriptionLinkList:
      title: SubscriptionLinkList
Michel Roy's avatar
Michel Roy committed
      required:
      type: object
      properties:
        _links:
          $ref: '#/components/schemas/Links6'
Michel Roy's avatar
Michel Roy committed
        subscription:
          type: array
          items:
            $ref: '#/components/schemas/Subscription'
          description: ''
    TestNotification:
      title: TestNotification
Michel Roy's avatar
Michel Roy committed
      required:
      - _links
      - notificationType
Michel Roy's avatar
Michel Roy committed
      type: object
      properties:
        _links:
          $ref: '#/components/schemas/Links1'
Michel Roy's avatar
Michel Roy committed
        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
          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
Michel Roy's avatar
Michel Roy committed
    WebsockNotifConfig:
      title: WebsockNotifConfig
      type: object
Michel Roy's avatar
Michel Roy committed
      properties:
        requestWebsocketUri:
          type: boolean
          description: Set to true by the service consumer to indicate that Websocket delivery is requested.
Michel Roy's avatar
Michel Roy committed
        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:
piscione's avatar
piscione committed
          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:
piscione's avatar
piscione committed
          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:
- {}