openapi: 3.0.0
info:
  contact:
    url: 'https://forge.etsi.org/rep/mec/gs028-wai-api'
  title: ETSI GS MEC 028 - WLAN Access Information API
  version: 2.3.1
  description: 'The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
    <p>**Note**<br>MEC Sandbox supports all WAI API endpoints and a limited set of subscription types; complete details on the WAI API can be found on [ETSI Forge](http://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.03.01_60/gs_mec028v020301p.pdf).
    <p>Supported subscriptions types:
    <p> - AssocStaSubscription'
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
externalDocs:
  description: ETSI MEC028 V2.3.1 WLAN Information API
  url: >-
    https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.03.01_60/gs_mec028v020301p.pdf
servers:
  - url: 'https://localhost/sandboxname/wai/v2'
tags:
  - name: wai
  - name: unsupported
paths:
  /queries/ap/ap_information:
    get:
      tags:
        - wai
      summary: Retrieve information on existing Access Points
      description: Queries information about existing WLAN Access Points
      operationId: apInfoGET
      parameters:
        - $ref: '#/components/parameters/Query.Filter'
        - $ref: '#/components/parameters/Query.AllFields'
        - $ref: '#/components/parameters/Query.Fields'
        - $ref: '#/components/parameters/Query.ExcludeFields'
        - $ref: '#/components/parameters/Query.ExcludeDefault'
      responses:
        '200':
          description: Successful response to ap_info request
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ApInfo'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
  /queries/sta/sta_information:
    get:
      tags:
        - wai
      summary: Retrieve information on existing Stations
      description: Queries information about existing WLAN stations
      operationId: staInfoGET
      parameters:
        - $ref: '#/components/parameters/Query.Filter'
        - $ref: '#/components/parameters/Query.AllFields'
        - $ref: '#/components/parameters/Query.Fields'
        - $ref: '#/components/parameters/Query.ExcludeFields'
        - $ref: '#/components/parameters/Query.ExcludeDefault'
      responses:
        '200':
          description: Successful response to sta_info request
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StaInfo'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
  /subscriptions:
    get:
      tags:
        - wai
      summary: Retrieve information on subscriptions for notifications
      description: Queries information on subscriptions for notifications
      operationId: subscriptionLinkList_subscriptionsGET
      parameters:
        - $ref: '#/components/parameters/Query.SubscriptionType'
      responses:
        '200':
          description: >-
            Response body contains the list of links to requestors
            subscriptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionLinkList'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/subscriptions'
                subscription:
                  - _links:
                      self:
                        href: >-
                          http://meAppServer.example.com/wai/v2/subscriptions/sub123
                    callbackReference: 'http://my.callback.com/wai/assocStaSubscription/some-id'
                    subscriptionType: AssocStaSubscription
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
    post:
      tags:
        - wai
      summary: Create a new subscription
      description: Creates a new subscription to WLAN Access Information notifications
      operationId: subscriptionsPOST
      requestBody:
        description: Subscription to be created
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InlineSubscription'
            example:
              subscriptionType: AssocStaSubscription
              callbackReference: 'http://meAppClient.example.com/wai/v2/notifications/1'
              expiryDeadline:
                seconds: 1977836800
                nanoSeconds: 0
              apId:
                bssid: 005C0A0A0A0A
              notificationEvent:
                threshold: 1
                trigger: 1
      responses:
        '201':
          description: Successful subscription response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InlineSubscription'
              example:
                subscriptionType: AssocStaSubscription
                callbackReference: 'http://meAppClient.example.com/wai/v2/notifications/1'
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/subscriptions/sub123'
                apId:
                  bssid: 005C0A0A0A0A
                notificationEvent:
                  threshold: 1
                  trigger: 1
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
      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'
                    example:
                      notificationType: AssocStaNotification
                      timeStamp:
                        seconds: 1977836800
                        nanoseconds: 0
                      apId:
                        bssid: 005C0A0A0A0A
                      staId:
                        macId: 005C01111111
              responses:
                '204':
                  $ref: '#/components/responses/204'
  /subscriptions/{subscriptionId}:
    get:
      tags:
        - wai
      summary: Retrieve information on current specific subscription
      description: >-
        Queries information about an existing subscription, identified by its
        self-referring URI returned on creation (initial POST)
      operationId: subscriptionsGET
      parameters:
        - $ref: '#/components/parameters/Path.subscrId'
      responses:
        '200':
          description: Subscription information regarding subscription notifications
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InlineSubscription'
              example:
                subscriptionType: AssocStaSubscription
                callbackReference: 'http://meAppClient.example.com/wai/v2/notifications/1'
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/subscriptions/sub123'
                apId:
                  bssid: 005C0A0A0A0A
                notificationEvent:
                  threshold: 1
                  trigger: 1
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
    put:
      tags:
        - wai
      summary: Modify an existing subscription
      description: >-
        Updates an existing subscription, identified by its self-referring URI
        returned on creation (initial POST)
      operationId: subscriptionsPUT
      requestBody:
        description: Subscription to be modified
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InlineSubscription'
            example:
              subscriptionType: AssocStaSubscription
              callbackReference: 'http://meAppClient.example.com/wai/v2/notifications/1'
              _links:
                self:
                  href: 'http://meAppServer.example.com/wai/v2/subscriptions/sub123'
              apId:
                bssid: 005C0A0A0A0A
              notificationEvent:
                threshold: 1
                trigger: 1
      parameters:
        - $ref: '#/components/parameters/Path.subscrId'
      responses:
        '200':
          description: Successful subscription modification
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InlineSubscription'
              example:
                _links:
                  self:
                    href: 'http://[hostIP]/sbox-xyz123/wai/v2/subscriptions/sub123'
                callbackReference: 'http://my.callback.com/wai/some-id'
                apId:
                  bssid: 005C0A0A0A0A
                notificationEvent:
                  threshold: 1
                  trigger: 1
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '412':
          $ref: '#/components/responses/412'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
    delete:
      tags:
        - wai
      summary: Cancel an existing subscription
      description: >-
        Cancels an existing subscription, identified by its self-referring URI
        returned on creation (initial POST)
      operationId: subscriptionsDELETE
      parameters:
        - $ref: '#/components/parameters/Path.subscrId'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
  /measurements:
    get:
      tags:
        - unsupported
      summary: Retrieve information on measurements configuration
      description: Queries information on measurements configuration
      operationId: measurementLinkList_measurementsGET
      responses:
        '200':
          description: >-
            Response body contains the list of links to requestors measurement
            configurations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementConfigLinkList'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/measurements'
                measurementConfig:
                  - href: 'http://meAppServer.example.com/wai/v2/measurements/meas123'
                    measurementId: myId1
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
    post:
      tags:
        - unsupported
      summary: Create a new measurement configuration
      description: Creates a new measurement configuration
      operationId: measurementsPOST
      requestBody:
        description: Measurement configuration information
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeasurementConfig'
            example:
              staId:
                macId: 005C01111111
              measurementId: myId1
              measurementInfo: {}
      responses:
        '201':
          description: Successful measurement configuration response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementConfig'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/measurements/meas123'
                staId:
                  macId: 005C01111111
                  ssid:
                    - myNetworkSsid
                    - myOtherNetworkSsid
                measurementId: myId1
                measurementInfo: {}
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
  /measurements/{measurementConfigId}:
    get:
      tags:
        - unsupported
      summary: Retrieve information on an existing measurement configuration
      description: >-
        Queries information about an existing measurement configuration,
        identified by its self-referring URI returned on creation (initial POST)
      operationId: measurementsGET
      parameters:
        - $ref: '#/components/parameters/Path.measurementConfigId'
      responses:
        '200':
          description: Measurement configuration information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementConfig'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/measurements/meas123'
                staId:
                  macId: 005C01111111
                  ssid:
                    - myNetworkSsid
                    - myOtherNetworkSsid
                measurementId: myId1
                measurementInfo: {}
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
    put:
      tags:
        - unsupported
      summary: Modify an existing measurement configuration
      description: >-
        Updates an existing measurement configuration, identified by its
        self-referring URI returned on creation (initial POST)
      operationId: measurementsPUT
      requestBody:
        description: Measurement configuration to be modified
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeasurementConfig'
            example:
              _links:
                self:
                  href: 'http://meAppServer.example.com/wai/v2/measurements/meas123'
              staId:
                macId: 005C01111111
                ssid:
                  - myNetworkSsid
                  - myOtherNetworkSsid
              measurementId: myId1
              measurementInfo: {}
      parameters:
        - $ref: '#/components/parameters/Path.measurementConfigId'
      responses:
        '200':
          description: Successful measurement configuration modification
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementConfig'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/measurements/123'
                staId:
                  macId: 005C01111111
                  ssid:
                    - myNetworkSsid
                    - myOtherNetworkSsid
                measurementId: myId1
                measurementInfo: {}
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '412':
          $ref: '#/components/responses/412'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
    delete:
      tags:
        - unsupported
      summary: Cancel a measurement configuration
      description: >-
        Cancels an existing measurement configuration, identified by its
        self-referring URI returned on creation (initial POST)
      operationId: measurementsDELETE
      parameters:
        - $ref: '#/components/parameters/Path.measurementConfigId'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
components:
  responses:
    '200':
      description: OK
    '204':
      description: No Content
    '400':
      description: >-
        Bad Request : used to indicate that incorrect parameters were passed to
        the request.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    '401':
      description: 'Unauthorized :  used when the client did not submit credentials.'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    '403':
      description: >-
        Forbidden :  operation is not allowed given the current status of the
        resource.
      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.
      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.
      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
      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.
      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.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
          example:
            application/problem+json:
              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.'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
  parameters:
    Path.subscrId:
      name: subscriptionId
      in: path
      description: >-
        Subscription Id, specifically the "self" returned in the subscription
        request
      required: true
      schema:
        type: string
        format: uri
    Path.measurementConfigId:
      name: measurementConfigId
      in: path
      description: >-
        Measurement configuration Id, specifically the "self" returned in the
        measurement configuration request
      required: true
      schema:
        type: string
        format: uri
    Query.Filter:
      name: filter
      in: query
      description: >-
        Attribute-based filtering expression according to clause 6.19 of ETSI GS
        MEC 009. .
      required: false
      schema:
        type: string
    Query.AllFields:
      name: all_fields
      in: query
      description: >-
        Include all complex attributes in the response. See clause 6.18 of ETSI
        GS MEC 009 for details.
      required: false
      schema:
        type: string
    Query.Fields:
      name: fields
      in: query
      description: >-
        Complex attributes to be included into the response. See clause 6.18 of
        ETSI GS MEC 009 for details.
      required: false
      schema:
        type: array
        items:
          type: string
    Query.ExcludeFields:
      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.
      required: false
      schema:
        type: array
        items:
          type: string
    Query.ExcludeDefault:
      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
      required: false
      schema:
        type: array
        items:
          type: string
    Query.SubscriptionType:
      name: subscription_type
      in: query
      description: >-
        Filter on a specific subscription type. Permitted values: assoc_sta,
        sta_data_rate, measure_report.
      required: false
      schema:
        type: string
  schemas:
    ApAssociated:
      properties:
        assocId:
          description: >-
            Unique number which identifies a particular association between the
            station and Access Point.
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        bssid:
          description: >-
            Basic Service Set Identifier (BSSID) is a unique identifier assigned
            to the Access Point (as network interface controller) for
            communications at the data link layer of a network segment. BSSID is
            typically set to an access point's MAC address.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        ipAddress:
          description: IPv4 or IPv6 address allocated for the Access Point.
          items:
            type: string
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
        ssid:
          description: Service Set Identifier to identify logical networks.
          items:
            type: string
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
      required:
        - bssid
      type: object
      x-etsi-ref: 6.5.12
    ApIdentity:
      properties:
        bssid:
          description: >-
            Basic Service Set Identifier (BSSID) is a unique Identifier assigned
            to an Access Point (as network interface controller) for
            communications at the data link layer of a network segment. BSSID is
            typically set to an access point's MAC address.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        ipAddress:
          description: IPv4 or IPv6 address allocated for the Access Point.
          items:
            type: string
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
        ssid:
          description: >-
            Service Set Identifier (SSID) to identify logical WLAN networks
            available via the Access Point.
          items:
            type: string
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
      required:
        - bssid
      type: object
      x-etsi-ref: 6.5.3
    ApInfo:
      properties:
        apId:
          $ref: '#/components/schemas/ApIdentity'
        apLocation:
          $ref: '#/components/schemas/ApLocation'
        bssLoad:
          $ref: '#/components/schemas/BssLoad'
        channel:
          description: Channel configured for the Access Point.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        extBssLoad:
          $ref: '#/components/schemas/ExtBssLoad'
        oBssLoad:
          $ref: '#/components/schemas/OBssLoad'
        timeStamp:
          $ref: '#/components/schemas/TimeStamp'
        wanMetrics:
          $ref: '#/components/schemas/WanMetrics'
        wlanCap:
          $ref: '#/components/schemas/WlanCapabilities'
      required:
        - apId
      type: object
      x-etsi-ref: 6.2.2
    ApLocation:
      properties:
        civicLocation:
          $ref: '#/components/schemas/CivicLocation'
        geolocation:
          $ref: '#/components/schemas/GeoLocation'
      type: object
      x-etsi-ref: 6.5.9
    AssocStaNotification:
      properties:
        apId:
          $ref: '#/components/schemas/ApIdentity'
        notificationType:
          description: Shall be set to "AssocStaNotification".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        staId:
          description: Identifier(s) to uniquely specify the client station(s) associated.
          items:
            $ref: '#/components/schemas/StaIdentity'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: StaIdentity
        timeStamp:
          $ref: '#/components/schemas/TimeStamp'
      required:
        - notificationType
        - apId
      type: object
      x-etsi-ref: 6.4.2
    AssocStaSubscription:
      properties:
        _links:
          description: >-
            Hyperlink related to the resource. This shall be only included in
            the HTTP responses and in HTTP PUT requests.
          properties:
            self:  
              $ref: '#/components/schemas/LinkType'
          required:
            - self
          type: object
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Structure (inlined)
        apId:
          $ref: '#/components/schemas/ApIdentity'
        callbackReference:
          description: >-
            URI exposed by the client on which to receive notifications
          type: string
        expiryDeadline:
          $ref: '#/components/schemas/TimeStamp'
        notificationEvent:
          description: 'Set for trigger-based event notification reporting. '
          properties:
            threshold:
              description: >-
                Number of connected stations threshold for trigger-based event
                reporting.
              format: uint8
              type: integer
              x-etsi-mec-cardinality: '1'
              x-etsi-mec-origin-type: Uint8
            trigger:
              description: >-
                Trigger for the notification:

                1 = Notification issued when the number of connected stations is
                greater than or equal to the threshold.

                2 = Notification issued when the number of connected stations is
                less than or equal to the threshold.
              enum:
                - 1
                - 2
              type: integer
              x-etsi-mec-cardinality: '1'
              x-etsi-mec-origin-type: Enum (inline)
          required:
            - trigger
            - threshold
          type: object
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Structure (inline)
        notificationPeriod:
          description: |-
            Set for periodic notification reporting.
            Value indicates the notification period in seconds.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        requestTestNotification:
          description: >-
            Set to TRUE by the service consumer to request a test notification via HTTP
            on the callbackReference URI.
          type: boolean
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Boolean
        subscriptionType:
          description: Shall be set to "AssocStaSubscription".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        websockNotifConfig:
          $ref: '#/components/schemas/WebsockNotifConfig'
      required:
        - subscriptionType
        - apId
      type: object
      x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select the method to be used for notifications and to return only that method in the response.\nNOTE 2:\tAssocStaSubscription shall include either notificationPeriod or notificationEvent.\nNOTE 3:\tIf both notificationPeriod and notificationEvent attributes are set, notifications are issued periodically when the trigger threshold is satisfied."
      x-etsi-ref: 6.3.2
    BeaconReport:
      properties:
        antennaId:
          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 [8]."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        bssid:
          description: >-
            Indicates the BSSID of the BSS for which a beacon report has been
            received.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        channel:
          description: Channel number where the beacon was received.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        measurementId:
          description: >-
            Measurement ID of the Measurement configuration applied to this
            Beacon Report.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        operatingClass:
          description: >-
            Operating Class field indicates an operating class value as defined
            in Annex E within IEEE 802.11-2016 [8].
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        parentTsf:
          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.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        rcpi:
          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\_9.4.2.38 of IEEE 802.11-2016 [8]."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        reportedFrameInfo:
          $ref: '#/components/schemas/ReportedBeaconFrameInfo'
        rsni:
          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 [8]."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        ssid:
          description: >-
            The SSID subelement indicates the ESS or IBSS for which a beacon
            report is received.
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        staId:
          $ref: '#/components/schemas/StaIdentity'
      required:
        - measurementId
        - operatingClass
        - channel
        - reportedFrameInfo
        - bssid
      type: object
      x-etsi-ref: 6.5.27
    BeaconReportingConfig:
      properties:
        reportingCondition:
          description: >-
            Reporting condition for the Beacon Report as per Table 9-89 of IEEE
            802.11-2016 [8]:

            0 = Report to be issued after each measurement.

            1 = measured RCPI level is greater than the threshold.

            2 = measured RCPI level is less than the threshold.

            3 = measured RSNI level is greater than the threshold.

            4 = measured RSNI level is less than the threshold.

            5 = measured RCPI level is greater than a threshold defined by an
            offset from the serving AP's reference RCPI.

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

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

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

            9 = measured RCPI level is in a range bound by the serving AP's
            reference RCPI and an offset from the serving AP's reference RCPI.

            10 = measured RSNI level is in a range bound by the serving AP's
            reference RSNI and an offset from the serving AP's reference RSNI.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        threshold:
          description: "The threshold subfield contains either the threshold value or the offset value to be used for conditional reporting.\n\nFor 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 [8].\n\nFor 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 [8].\n\nFor 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."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
      required:
        - reportingCondition
        - threshold
      type: object
      x-etsi-ref: 6.5.28
    BeaconRequestConfig:
      properties:
        beaconReportingConf:
          $ref: '#/components/schemas/BeaconReportingConfig'
        bssid:
          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.
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        channelId:
          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."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        measurementMode:
          description: |-
            0 for passive.
            1 for active.
            2 for beacon table.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        operatingClass:
          description: "Operating Class field indicates an operating class value as defined in Annex E within IEEE\_802.112016\_[8]."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        ssid:
          description: >-
            The SSID subelement indicates the ESS or IBSS for which a beacon
            report is requested.
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
      required:
        - operatingClass
        - channelId
        - measurementMode
        - beaconReportingConf
      type: object
      x-etsi-ref: 6.5.25
    BssCapabilities:
      properties:
        apsd:
          description: APSD Option implemented
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        delayedBACK:
          description: Delayed Block Ack Option implemented
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        immediateBACK:
          description: Immediate Block Ack Option implemented
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        qos:
          description: QoS Option implemented
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        radioMeasurements:
          description: Radio Measurement Activated
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        spectrumManagement:
          description: Spectrum Management required
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
      required:
        - spectrumManagement
        - qos
        - apsd
        - radioMeasurements
        - delayedBACK
        - immediateBACK
      type: object
      x-etsi-ref: 6.5.31
    BssLoad:
      properties:
        availAdmCap:
          description: >-
            Available Admission Capacity that specifies the remaining amount of
            medium time available via explicit admission control, in units of 32
            s/s.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint16
        channelUtilization:
          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."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt8
        staCount:
          description: >-
            An unsigned integer that indicates the total number of STAs
            currently associated with this BSS.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt16
      required:
        - staCount
        - channelUtilization
        - availAdmCap
      type: object
      x-etsi-ref: 6.5.7
    BssidInfo:
      properties:
        apReachability:
          description: >-
            The apReachability field indicates whether the AP identified by this
            BSSID is reachable by the STA that requested the neighbor report.
            Valid values:

            0 = reserved

            1 = not reachable

            2 = unknown

            3 = reachable.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        capabilities:
          $ref: '#/components/schemas/BssCapabilities'
        ftm:
          description: >-
            True indicates the AP represented by this BSSID is an AP that has
            set the Fine Timing Measurement Responder field of the Extended
            Capabilities element to 1.


            False indicates either that the reporting AP has
            dot11FineTimingMsmtRespActivated equal to false, or the reported AP
            has not set the Fine Timing Measurement Responder field of the
            Extended Capabilities element to 1 or that the Fine Timing
            Measurement Responder field of the reported AP is not available to
            the reporting AP at this time.
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        highThroughput:
          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.
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        mobilityDomain:
          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.
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        security:
          description: >-
            True indicates the AP identified by this BSSID supports the same
            security provisioning as used by the STA in its current association.


            False indicates either that the AP does not support the same
            security provisioning or that the security information is not
            available at this time.
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        veryHighThroughput:
          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.
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
      required:
        - apReachability
        - security
        - capabilities
        - mobilityDomain
        - highThroughput
        - veryHighThroughput
        - ftm
      type: object
      x-etsi-ref: 6.5.30
    ChannelLoad:
      properties:
        channel:
          description: >-
            Channel number indicates the channel number for which the
            measurement report applies.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        channelLoad:
          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\_%."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        measurementDuration:
          description: >-
            Duration over which the Channel Load report was measured, in units
            of TUs of 1 024 µs.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        measurementId:
          description: >-
            Measurement ID of the Measurement configuration applied to this
            Channel Load Report.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        operatingClass:
          description: >-
            Operating Class field indicates an operating class value as defined
            in Annex E within IEEE 802.11-2016 [8].
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        staId:
          $ref: '#/components/schemas/StaIdentity'
      required:
        - measurementId
        - operatingClass
        - channel
        - measurementDuration
        - channelLoad
      type: object
      x-etsi-ref: 6.5.39
    ChannelLoadConfig:
      properties:
        channel:
          description: Channel for which the channel load report is requested.
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Integer
        operatingClass:
          description: >-
            Operating Class field indicates an operating class value as defined
            in Annex E within IEEE 802.11-2016 [8].
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        reportingCondition:
          description: >-
            Reporting condition for the Beacon Report as per Table 9-153 of IEEE
            802.11-2016 [8]:

            0 = Report to be issued after each measurement.

            1 = Report to be issued when Channel Load is greater than or equal
            to the threshold.

            2 = Report to be issued when Channel Load is less than or equal to
            the threshold.


            If this optional field is not provided, channel load report should
            be issued after each measurement (reportingCondition = 0).
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        threshold:
          description: >-
            Channel Load reference value for threshold reporting. This field
            shall be provided for reportingCondition values 1 and 2.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
      required:
        - operatingClass
        - channel
      type: object
      x-etsi-ref: 6.5.24
    CivicLocation:
      properties:
        ca0:
          description: Language
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca1:
          description: 'National subdivisions (state, canton, region, province, prefecture) '
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca128:
          description: Script
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca16:
          description: Leading street direction
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca17:
          description: Trailing street suffix
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca18:
          description: Street suffix or type
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca19:
          description: House number
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca2:
          description: 'County, parish, gun (JP), district (IN)'
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca20:
          description: House number suffix
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca21:
          description: Landmark of vanity address
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca22:
          description: Additional location information
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca23:
          description: Name (residence and office occupant)
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca24:
          description: Postal/zip code
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca25:
          description: Building (structure)
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca26:
          description: Unit (apartment/suite)
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca27:
          description: Floor
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca28:
          description: Room
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca29:
          description: Type of place
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca3:
          description: 'City, township, shi (JP)'
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca30:
          description: Postal community name
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca31:
          description: Post office box
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca32:
          description: Additional code
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca33:
          description: 'Seat (desk.cubicle, workstation)'
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca34:
          description: Primary road name
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca35:
          description: Road section
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca36:
          description: Branch road name
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca37:
          description: Sub-branch road name
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca38:
          description: Street name pre-modifier
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca39:
          description: Street name post-modifier
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca4:
          description: 'City division, borough, city district, ward, chou (JP)'
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca5:
          description: 'Neighborhood, block'
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ca6:
          description: 'Group of streets below the neighborhood level '
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        country:
          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]
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
      required:
        - country
      type: object
      x-etsi-ref: 6.5.20
    DmgCapabilities:
      properties:
        ExtScMcsCap:
          description: "Extended SC MCS capabilities as defined in IEEE\_802.11-2016 [8]."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        dmgApOrPcpCapInfo:
          description: >-
            DMG AP or PCP capabilities information as defined in IEEE
            802.11-2016 [8].
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint16
        dmgStaBeamTrackTimeLimit:
          description: "DMG station beam tracking time limit as defined in IEEE\_802.11-2016 [8]. "
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint16
        dmgStaCapInfo:
          description: "DMG station capabilities information as defined in IEEE\_802.11-2016 [8]. "
          format: uint64
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint64
        maxNrBasicAmsduSubframes:
          description: >-
            Number of basic A-MSDU subframes in A-MSDU as defined in IEEE
            802.11-2016 [8].
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        maxNrShortAmsduSubframes:
          description: >-
            Number of short A-MSDU subframes in A-MSDU as defined in IEEE
            802.11-2016 [8].
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
      required:
        - dmgStaCapInfo
        - dmgApOrPcpCapInfo
        - dmgStaBeamTrackTimeLimit
        - ExtScMcsCap
        - maxNrBasicAmsduSubframes
        - maxNrShortAmsduSubframes
      type: object
      x-etsi-ref: 6.5.17
    EdmgCapabilities:
      properties:
        ampduParameters:
          description: 'A-MPDU parameters as defined in draft IEEE P802.11ay [i.11]'
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        supportedMcs:
          description: 'Supported MCS as defined in draft IEEE P802.11ay [i.11]'
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        trnParameters:
          description: 'Training parameters as defined in draft IEEE P802.11ay [i.11]'
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint16
      required:
        - ampduParameters
        - trnParameters
        - supportedMcs
      type: object
      x-etsi-ref: 6.5.18
    ExpiryNotification:
      properties:
        _links:
          description: Hyperlink related to the resource.
          properties:
            subscription:
              $ref: '#/components/schemas/LinkType'
          required:
            - subscription
          type: object
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Structure (inlined)
        expiryDeadline:
          $ref: '#/components/schemas/TimeStamp'
        notificationType:
          description: Shall be set to "ExpiryNotification".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
      required:
        - notificationType
        - _links
        - expiryDeadline
      type: object
      x-etsi-ref: 6.4.4
    ExtBssLoad:
      properties:
        muMimoStaCount:
          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.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt16
        obsSec20MhzUtil:
          description: Observable loading on each of the secondary 20 MHz channel.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        obsSec40MhzUtil:
          description: Observable loading on each of the secondary 40 MHz channel.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        obsSec80MhzUtil:
          description: Observable loading on each of the secondary 80 MHz channel.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        spatStreamUnderUtil:
          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."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt8
      required:
        - muMimoStaCount
        - spatStreamUnderUtil
        - obsSec20MhzUtil
        - obsSec40MhzUtil
        - obsSec80MhzUtil
      type: object
      x-etsi-ref: 6.5.8
    GeoLocation:
      properties:
        altitude:
          description: "The altitude value of location as defined in IETF RFC\_6225 [6]"
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        altitudeType:
          description: >-
            The type description for altitude information e.g. floors or meters
            as defined in IETF RFC 6225 [6]
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        altitudeUncertainty:
          description: >-
            The uncertainty for altitude information as defined in IETF RFC 6225
            [6]
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        datum:
          description: >-
            The datum value to express how coordinates are organized and related
            to real world as defined in IETF RFC 6225 [6]
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        lat:
          description: "The latitude value of location as defined in IETF RFC\_6225 [6]"
          format: uint64
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint64
        latUncertainty:
          description: >-
            The uncertainty for Latitude information as defined in IETF RFC 6225
            [6]
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        long:
          description: "The longitude value of location as defined in IETF RFC\_6225 [6]"
          format: uint64
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint64
        longUncertainty:
          description: >-
            The uncertainty for Longitude information as defined in IETF RFC
            6225 [6]
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
      required:
        - latUncertainty
        - lat
        - longUncertainty
        - long
        - datum
      type: object
      x-etsi-ref: 6.5.19
    HeCapabilities:
      properties:
        heMacCapInfo:
          description: MAC capabilities of an Access Point.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        hePhyCapinfo:
          description: PHY capabilities of an Access Point.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        supportedHeMcsNssSet:
          description: Supported MCS and NSS Set.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
      required:
        - heMacCapInfo
        - hePhyCapinfo
        - supportedHeMcsNssSet
      type: object
      x-etsi-ref: 6.5.16
    HtCapabilities:
      properties:
        ampduParameters:
          description: 'A-MPDU parameters as defined in IEEE 802.11-2016 [8].'
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt8
        aselCap:
          description: 'ASEL capabilities as defined in IEEE 802.11-2016 [8].'
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt8
        htCapabilityInfo:
          description: 'HT Capability Information as defined in IEEE 802.11-2016 [8].'
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt16
        htExtendedCap:
          description: 'Extended HT Capabilities as defined in IEEE 802.11-2016 [8].'
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt16
        supportedMcsSet:
          description: 'Supported MCS set as defined in IEEE 802.11-2016 [8].'
          format: uint128
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint128
        txBeamFormCap:
          description: >-
            Transmit Beamforming Capabilities as defined in IEEE 802.11-2016
            [8].
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt32
      required:
        - htCapabilityInfo
        - ampduParameters
        - supportedMcsSet
        - htExtendedCap
        - txBeamFormCap
        - aselCap
      type: object
      x-etsi-ref: 6.5.14
    InlineNotification:
      discriminator:
        propertyName: notificationType
      oneOf:
        - $ref: '#/components/schemas/AssocStaNotification'
        - $ref: '#/components/schemas/StaDataRateNotification'
        - $ref: '#/components/schemas/MeasurementReportNotification'
    InlineSubscription:
      discriminator:
        propertyName: subscriptionType
      oneOf:
        - $ref: '#/components/schemas/AssocStaSubscription'
        - $ref: '#/components/schemas/StaDataRateSubscription'
        - $ref: '#/components/schemas/MeasurementReportSubscription'
    LinkType:
      properties:
        href:
          type: string
      required:
        - href
      type: object
      x-etsi-ref: 6.5.23
    MeasurementConfig:
      properties:
        _links:
          description: Hyperlink related to the resource.
          properties:
            self:
              $ref: '#/components/schemas/LinkType'
          required:
            - self
          type: object
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Structure (inlined)
        measurementId:
          description: >-
            Unique identifier allocated by the service consumer to identify
            measurement reports (within sta_information query), associated with
            this measurement configuration.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        measurementInfo:
          $ref: '#/components/schemas/MeasurementInfo'
        staId:
          description: >-
            Identifier(s) to uniquely specify the target client station(s) for
            the measurement configuration.
          items:
            $ref: '#/components/schemas/StaIdentity'
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: StaIdentity
      required:
        - staId
        - measurementId
        - measurementInfo
      type: object
      x-etsi-ref: 6.2.4
    MeasurementConfigLinkList:
      properties:
        _links:
          description: Hyperlink related to the resource.
          properties:
            self:
              $ref: '#/components/schemas/LinkType'
          required:
            - self
          type: object
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Structure (inlined)
        measurementConfig:
          description: ''
          items:
            properties:
              href:
                description: The URI referring to a measurement configuration.
                format: uri
                type: string
                x-etsi-mec-cardinality: '1'
                x-etsi-mec-origin-type: URI
              measurementId:
                description: >-
                  Unique identifier allocated by the service consumer to
                  identify measurement reports associated with this measurement
                  configuration.
                type: string
                x-etsi-mec-cardinality: '1'
                x-etsi-mec-origin-type: String
            required:
              - href
              - measurementId
            type: object
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Structure (inlined)
      required:
        - _links
      type: object
      x-etsi-ref: 6.2.5
    MeasurementInfo:
      properties:
        beaconRequestConf:
          $ref: '#/components/schemas/BeaconRequestConfig'
        channelLoadConf:
          $ref: '#/components/schemas/ChannelLoadConfig'
        measurementDuration:
          description: "Duration of the measurement in Time Units (TUs) of 1\_024 µs, as defined in section 11.11.4 of IEEE\_802.11-2016 [8]. If not provided, the underlying system may utilize a default configuration that will be indicated in resulting measurement reports."
          format: uint16
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint16
        neighborReportConf:
          $ref: '#/components/schemas/NeighborReportConfig'
        randomInterval:
          description: "Random interval to be used for starting the measurement in TUs of 1\_024 µs, as specified in section\_11.11.3 of IEEE 802.11-2016 [8]. If not provided, the underlying system may utilize a default configuration that will be indicated in resulting measurement reports."
          format: uint16
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint16
        staStatisticsConf:
          $ref: '#/components/schemas/StaStatisticsConfig'
      type: object
      x-etsi-notes: "NOTE 1:\tOnly one of channelLoadConf, beaconRequestConf, staStatisticsConf or neighborReportConf is allowed in a MeasurementInfo instance.\nNOTE 2:\tAs per IEEE 802.11-2016 [8], measurementDuration and randomInterval apply to channelLoad, beaconRequest, staStatistics, and neighborReport configurations."
      x-etsi-ref: 6.5.41
    MeasurementReportNotification:
      properties:
        beaconReport:
          description: 'Beacon Report as defined in IEEE 802.11-2016 [8].'
          items:
            $ref: '#/components/schemas/BeaconReport'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: BeaconReport
        channelLoad:
          description: >-
            Channel Load reports as seen by the station as defined in IEEE
            802.11-2016 [8].
          items:
            $ref: '#/components/schemas/ChannelLoad'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: ChannelLoad
        neighborReport:
          description: "Neighbor Report providing information about neighbor Access Points seen by the station as defined in IEEE\_802.112016 [8]."
          items:
            $ref: '#/components/schemas/NeighborReport'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: NeighborReport
        notificationType:
          description: Shall be set to "MeasurementReportNotification".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        staStatistics:
          description: 'STA Statistics Report as defined in IEEE 802.11-2016 [8].'
          items:
            $ref: '#/components/schemas/StaStatistics'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: StaStatistics
        timeStamp:
          $ref: '#/components/schemas/TimeStamp'
      required:
        - notificationType
      type: object
      x-etsi-notes: "NOTE 1:\tEach MeasurementReportNotification shall include a single measurement report type (channelLoad, beaconRequest, etc.), based on the MeasurementReportSubscription.\nNOTE 2:\tA single MeasurementReportNotification may include multiple measurement reports (of the same type), if the MeasurementReportSubscription configured the measurement report for several client stations and multiple reports are available to WAIS."
      x-etsi-ref: 6.4.5
    MeasurementReportSubscription:
      properties:
        _links:
          description: >-
            Hyperlink related to the resource. This shall be only included in
            the HTTP responses and in HTTP PUT requests.
          properties:
            self:
              $ref: '#/components/schemas/LinkType'
          required:
            - self
          type: object
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Structure (inlined)
        callbackReference:
          description: URI exposed by the client on which to receive notifications.
          type: string
        expiryDeadline:
          $ref: '#/components/schemas/TimeStamp'
        measurementId:
          description: >-
            Unique identifier allocated by the service consumer to identify
            measurement reports associated with this measurement subscription.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        measurementInfo:
          $ref: '#/components/schemas/MeasurementInfo'
        requestTestNotification:
          description: >-
            Set to TRUE by the service consumer to request a test notification
             via HTTP on the callbackReference URI.
          type: boolean
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Boolean
        staId:
          description: >-
            Identifier(s) to uniquely specify the target client station(s) for
            the subscription.
          items:
            $ref: '#/components/schemas/StaIdentity'
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: StaIdentity
        subscriptionType:
          description: Shall be set to "MeasurementReportSubscription".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        websockNotifConfig:
          $ref: '#/components/schemas/WebsockNotifConfig'
      required:
        - subscriptionType
        - staId
        - measurementId
        - measurementInfo
      type: object
      x-etsi-notes: "NOTE:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select the method to be used for notifications and to return only that method in the response."
      x-etsi-ref: 6.3.5
    NeighborReport:
      properties:
        bssTransitionCandidatePreference:
          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\_[8]."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        bssid:
          description: BSSID (MAC address) of the Access Point that is being reported.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        bssidInfo:
          $ref: '#/components/schemas/BssidInfo'
        channel:
          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 [8].
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        measurementId:
          description: >-
            Measurement ID of the Measurement configuration applied to this
            Neighbor Report.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        operatingClass:
          description: >-
            Operating Class field indicates an operating class value as defined
            in Annex E within IEEE 802.11-2016 [8].
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        phyType:
          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 [8].\n2 = dsss\n4 = ofdm\n5 = hrdsss\n6 = erp\n7 = ht\n8 = dmg\n9 = vht\n10 = tvht"
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        staId:
          $ref: '#/components/schemas/StaIdentity'
      required:
        - measurementId
        - bssid
        - bssidInfo
        - operatingClass
        - channel
        - phyType
      type: object
      x-etsi-ref: 6.5.10
    NeighborReportConfig:
      properties:
        bssid:
          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.
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ssid:
          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.
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
      type: object
      x-etsi-notes: "NOTE:\tBoth SSID and BSSID are optional configuration parameters. BSSID is valid when a SSID setting is provided, otherwise ignored. If SSID is not included, the neighbor report will be generated for the SSID (i.e.\_current ESS) that the station is associated."
      x-etsi-ref: 6.5.32
    OBssLoad:
      properties:
        allocatedTrafficSelfMean:
          description: "Mean of allocated traffic from this AP (BSS) in units of 32\_µs per second."
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint16
        allocatedTrafficSelfStdDev:
          description: >-
            Standard deviation from the mean of allocation traffic from this BSS
            in units of 32 µs per second.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint16
        allocatedTrafficShareMean:
          description: >-
            Mean of the sum of allocated traffic from other APs on the
            overlapping channel in unit of 32 µs per second.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint16
        allocatedTrafficShareStdDev:
          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.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint16
        overlap:
          description: >-
            Indicates the number of other APs that are sharing the same channel
            as the reporting AP.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
      required:
        - allocatedTrafficSelfMean
        - allocatedTrafficShareMean
      type: object
      x-etsi-ref: 6.5.40
    ProblemDetails:
      properties:
        detail:
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        instance:
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem
          format: uri
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: URI
        status:
          description: The HTTP status code for this occurrence of the problem
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        title:
          description: 'A short, human-readable summary of the problem type'
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        type:
          description: >-
            A URI reference according to IETF RFC 3986 that identifies the
            problem type
          format: uri
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: URI
      type: object
    ReportedBeaconFrameInfo:
      properties:
        frameType:
          description: |-
            A value of 0 indicates a Beacon or Probe Response.
            A value of 1 indicates a Measurement Pilot frame.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        phyType:
          description: Value between 0 and 127 coded according to dot11PHYType.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
      required:
        - phyType
        - frameType
      type: object
      x-etsi-ref: 6.5.29
    ReportingReasonQoSCounters:
      properties:
        qosAckFailure:
          description: dot11QoSAckFailure
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        qosDiscarded:
          description: dot11QoSDiscarded
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        qosFailed:
          description: 'dot11QoSFailed '
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        qosFrameDuplicate:
          description: dot11QoSFrameDuplicate
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        qosMultipleRetry:
          description: dot11QoSMultipleRetry
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        qosRetry:
          description: dot11QoSRetry
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        qosRtsFailure:
          description: dot11QoSRTSFailure
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
      required:
        - qosFailed
        - qosRetry
        - qosMultipleRetry
        - qosFrameDuplicate
        - qosRtsFailure
        - qosAckFailure
        - qosDiscarded
      type: object
      x-etsi-ref: 6.5.38
    ReportingReasonStaCounters:
      properties:
        ackFailure:
          description: dot11AckFailure
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        failed:
          description: dot11Failed
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        fcsError:
          description: 'dot11FCSError '
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        frameDuplicate:
          description: 'dot11FrameDuplicate '
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        multipleRetry:
          description: dot11MultipleRetry
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        retry:
          description: dot11Retry
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
        rtsFailure:
          description: dot11RTSFailure
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
      required:
        - failed
        - fcsError
        - multipleRetry
        - frameDuplicate
        - rtsFailure
        - ackFailure
        - retry
      type: object
      x-etsi-ref: 6.5.37
    Rssi:
      properties:
        rssi:
          description: The Received Signal Strength Indicator from a station
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
      required:
        - rssi
      type: object
      x-etsi-ref: 6.5.21
    STACounterTriggerCondition:
      properties:
        ackFailureCountThreshold:
          description: Configure and set threshold for dot11AckFailureCount trigger
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        failedCountThreshold:
          description: Configure and set threshold for dot11FailedCount trigger
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        fcsErrorCountThreshold:
          description: Configure and set threshold for dot11FCSErrorCount trigger
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        frameDuplicateCountThreshold:
          description: Configure and set threshold for dot11FrameDuplicateCount trigger
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        multipleRetryCountThreshold:
          description: Configure and set threshold for dot11MultipleRetryCount trigger
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        retryCountThreshold:
          description: Configure and set threshold for dot11RetryCount trigger
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        rtsFailureCountThreshold:
          description: Configure and set threshold for dot11RTSFailureCount trigger
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
      type: object
      x-etsi-ref: 6.5.33
    StaDataRate:
      properties:
        staId:
          $ref: '#/components/schemas/StaIdentity'
        staLastDataDownlinkRate:
          description: >-
            The data transmit rate in kbps that was most recently used for
            transmission of data PPDUs from the access point to the station.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        staLastDataUplinkRate:
          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.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
      type: object
      x-etsi-notes: "NOTE:\tStaDataRate shall include at least one instance of either downlink rate or uplink rate and may include both.\n If this report is contained within a data type that provides the station's identifier, staId field may be omitted"
      x-etsi-ref: 6.5.22
    StaDataRateNotification:
      properties:
        notificationType:
          description: Shall be set to "StaDataRateNotification".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        staDataRate:
          description: Data rates of a client station.
          items:
            $ref: '#/components/schemas/StaDataRate'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: StaDataRate
        timeStamp:
          $ref: '#/components/schemas/TimeStamp'
      required:
        - notificationType
      type: object
      x-etsi-ref: 6.4.3
    StaDataRateSubscription:
      properties:
        _links:
          description: >-
            Hyperlink related to the resource. This shall be only included in
            the HTTP responses and in HTTP PUT requests.
          properties:
            self:
              $ref: '#/components/schemas/LinkType'
          required:
            - self
          type: object
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Structure (inlined)
        callbackReference:
          description: >-
            URI exposed by the client on which to receive notifications
          type: string
        expiryDeadline:
          $ref: '#/components/schemas/TimeStamp'
        notificationEvent:
          description: Set for trigger-based event notification reporting.
          properties:
            downlinkRateThreshold:
              description: Downlink data rate threshold for StaDataRate reporting.
              format: uint32
              type: integer
              x-etsi-mec-cardinality: 0..1
              x-etsi-mec-origin-type: Uint32
            trigger:
              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.
              enum:
                - 1
                - 2
                - 3
                - 4
                - 5
                - 6
                - 7
                - 8
              type: integer
              x-etsi-mec-cardinality: '1'
              x-etsi-mec-origin-type: Enum (inline)
            uplinkRateThreshold:
              description: Uplink data rate threshold for StaDataRate reporting.
              format: uint32
              type: integer
              x-etsi-mec-cardinality: 0..1
              x-etsi-mec-origin-type: Uint32
          required:
            - trigger
          type: object
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Structure (inline)
        notificationPeriod:
          description: |-
            Set for periodic notification reporting.
            Value indicates the notification period in seconds.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        requestTestNotification:
          description: >-
            Set to TRUE by the service consumer to request a test notification via HTTP
            on the callbackReference URI.
          type: boolean
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Boolean
        staId:
          description: >-
            Identifier(s) to uniquely specify the target client station(s) for
            the subscription.
          items:
            $ref: '#/components/schemas/StaIdentity'
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: StaIdentity
        subscriptionType:
          description: Shall be set to "StaDataRateSubscription".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        websockNotifConfig:
          $ref: '#/components/schemas/WebsockNotifConfig'
      required:
        - subscriptionType
        - staId
      type: object
      x-etsi-notes: "NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to WAIS to select the method to be used for notifications and to return only that method in the response.\nNOTE 2:\tStaDataRateSubscription shall include either notificationPeriod or notificationEvent.\nNOTE 3:\tIf both notificationPeriod and notificationEvent attributes are set, notifications are issued periodically when the trigger threshold is satisfied."
      x-etsi-ref: 6.3.3
    StaIdentity:
      properties:
        aid:
          description: >-
            Number which identifies a particular association between a station
            and an Access Point
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        ipAddress:
          description: IPv4 or IPv6 address(es) allocated for the station.
          items:
            type: string
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
        macId:
          description: >-
            Unique identifier assigned to station (as network interface
            controller) for communications at the data link layer of a network
            segment.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        ssid:
          description: Service Set Identifier(s) to identify logical networks.
          items:
            type: string
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
      required:
        - macId
      type: object
      x-etsi-ref: 6.5.11
    StaInfo:
      properties:
        apAssociated:
          $ref: '#/components/schemas/ApAssociated'
        beaconReport:
          description: 'Beacon Report as defined in IEEE 802.11-2016 [8]. '
          items:
            $ref: '#/components/schemas/BeaconReport'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: BeaconReport
        channel:
          description: >-
            Channel currently used by the station to connect with its associated
            Access Point.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        channelLoad:
          description: "Channel Load reports as seen by the station as defined IEEE\_802.11-2016 [8]. Channel Load reports may be configured for any channel, including the station's current channel for association."
          items:
            $ref: '#/components/schemas/ChannelLoad'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: ChannelLoad
        neighborReport:
          description: >-
            Information about neighbor Access Points seen by the station as
            defined IEEE 802.11-2016 [8].
          items:
            $ref: '#/components/schemas/NeighborReport'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: NeighborReport
        rssi:
          $ref: '#/components/schemas/Rssi'
        staDataRate:
          $ref: '#/components/schemas/StaDataRate'
        staId:
          $ref: '#/components/schemas/StaIdentity'
        staStatistics:
          description: >-
            Statistics as defined in IEEE 802.11-2016 [8] for the client station
            collected over measurement duration.
          items:
            $ref: '#/components/schemas/StaStatistics'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: StaStatistics
        timeStamp:
          $ref: '#/components/schemas/TimeStamp'
      required:
        - staId
      type: object
      x-etsi-ref: 6.2.3
    StaStatistics:
      properties:
        group2to9Data:
          $ref: '#/components/schemas/StaStatisticsGroup2to9Data'
        groupIdentity:
          description: "Indicates the requested statistics group describing the Statistics Group Data according to Table 9-114 of IEEE\_802.11-2016 [8].\nDepending on group identity, one and only one of the STA Statistics Group Data will be present."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt8
        groupOneData:
          $ref: '#/components/schemas/StaStatisticsGroupOneData'
        groupZeroData:
          $ref: '#/components/schemas/StaStatisticsGroupZeroData'
        measurementDuration:
          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.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt16
        measurementId:
          description: >-
            Measurement ID of the Measurement configuration applied to this STA
            Statistics Report.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        staId:
          $ref: '#/components/schemas/StaIdentity'
      required:
        - measurementId
        - measurementDuration
        - groupIdentity
      type: object
      x-etsi-ref: 6.5.13
    StaStatisticsConfig:
      properties:
        groupIdentity:
          description: 'As per Table 9-92 of IEEE 802.11-2016 [8].'
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        measurementCount:
          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.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        triggerCondition:
          $ref: '#/components/schemas/STACounterTriggerCondition'
        triggerTimeout:
          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.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint16
        triggeredReport:
          description: 'True = triggered reporting, otherwise duration.'
          type: boolean
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Boolean
      required:
        - groupIdentity
        - triggeredReport
      type: object
      x-etsi-ref: 6.5.26
    StaStatisticsGroup2to9Data:
      properties:
        qosAckFailureCount:
          description: dot11QosAckFailureCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosDiscardedFrameCount:
          description: dot11QosDiscardedFrameCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosFailedCount:
          description: dot11QosFailedCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosFrameDuplicateCount:
          description: dot11QosFrameDuplicateCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosMPDUsReceivedCount:
          description: dot11QosMPDUsReceivedCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosMultipleRetryCount:
          description: dot11QosMultipleRetryCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosRTSFailureCount:
          description: dot11QosRTSFailureCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosRTSSuccessCount:
          description: dot11QosRTSSuccessCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosReceivedFragmentCount:
          description: dot11QosReceivedFragmentCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosRetriesReceivedCount:
          description: dot11QosRetriesReceivedCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosRetryCount:
          description: dot11QosRetryCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosTransmittedFragmentCount:
          description: dot11QosTransmittedFragmentCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        qosTransmittedFrameCount:
          description: dot11QosTransmittedFrameCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        reportingReasonQoSCounters:
          $ref: '#/components/schemas/ReportingReasonQoSCounters'
      required:
        - qosTransmittedFragmentCount
        - qosFailedCount
        - qosRetryCount
        - qosMultipleRetryCount
        - qosFrameDuplicateCount
        - qosRTSSuccessCount
        - qosRTSFailureCount
        - qosAckFailureCount
        - qosReceivedFragmentCount
        - qosTransmittedFrameCount
        - qosDiscardedFrameCount
        - qosMPDUsReceivedCount
        - qosRetriesReceivedCount
      type: object
      x-etsi-ref: 6.5.36
    StaStatisticsGroupOneData:
      properties:
        ackFailureCount:
          description: dot11AckFailureCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        frameDuplicateCount:
          description: dot11FrameDuplicateCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        multipleRetryCount:
          description: dot11MultipleRetryCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        reportingReasonStaCounters:
          $ref: '#/components/schemas/ReportingReasonStaCounters'
        retryCount:
          description: dot11RetryCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        rtsFailureCount:
          description: dot11RTSFailureCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        rtsSuccessCount:
          description: dot11RTSSuccessCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
      required:
        - retryCount
        - multipleRetryCount
        - frameDuplicateCount
        - rtsSuccessCount
        - rtsFailureCount
        - ackFailureCount
      type: object
      x-etsi-ref: 6.5.35
    StaStatisticsGroupZeroData:
      properties:
        failedCount:
          description: dot11FailedCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        fcsErrorCount:
          description: dot11FCSErrorCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        groupReceivedFrameCount:
          description: dot11GroupReceivedFrameCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        groupTransmittedFrameCount:
          description: dot11GroupTransmittedFrameCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        receivedFragmentCount:
          description: dot11ReceivedFragmentCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        reportingReasonStaCounters:
          $ref: '#/components/schemas/ReportingReasonStaCounters'
        transmittedFragmentCount:
          description: dot11TransmittedFragmentCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        transmittedFrameCount:
          description: dot11TransmittedFrameCount counter
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
      required:
        - transmittedFragmentCount
        - groupTransmittedFrameCount
        - failedCount
        - receivedFragmentCount
        - groupReceivedFrameCount
        - fcsErrorCount
        - transmittedFrameCount
      type: object
      x-etsi-ref: 6.5.34
    SubscriptionLinkList:
      properties:
        _links:
          description: List of hyperlinks related to the resource.
          properties:
            self:
              $ref: '#/components/schemas/LinkType'
          required:
            - self
          type: object
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Structure (inlined)
        subscription:
          description: ''
          items:
            minItems: 0
            properties:
              href:
                description: The URI referring to the subscription.
                format: uri
                type: string
                x-etsi-mec-cardinality: '1'
                x-etsi-mec-origin-type: URI
              subscriptionType:
                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”
                type: string
                x-etsi-mec-cardinality: '1'
                x-etsi-mec-origin-type: String
            required:
              - href
              - subscriptionType
            type: object
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Structure (inlined)
      required:
        - _links
      type: object
      x-etsi-ref: 6.3.4
    TestNotification:
      properties:
        _links:
          description: 'Hyperlink related to the resource. '
          properties:
            subscription:
              $ref: '#/components/schemas/LinkType'
          required:
            - subscription
          type: object
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Structure (inlined)
        notificationType:
          description: Shall be set to "TestNotification".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
      required:
        - notificationType
        - _links
      type: object
      x-etsi-ref: 6.4.6
    TimeStamp:
      properties:
        nanoSeconds:
          description: >-
            The nanoseconds part of the time. Time is defined as Unix-time since
            January 1, 1970, 00:00:00 UTC.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        seconds:
          description: >-
            The seconds part of the time. Time is defined as Unixtime since
            January 1, 1970, 00:00:00 UTC.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
      required:
        - seconds
        - nanoSeconds
      type: object
      x-etsi-ref: 6.5.2
    VhtCapabilities:
      properties:
        vhtCapInfo:
          description: 'VHT capabilities Info as defined in IEEE 802.11-2016 [8].'
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt32
        vhtMcsNss:
          description: 'Supported VHT-MCS and NSS Set as defined in IEEE 802.11-2016 [8].'
          format: uint64
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt64
      required:
        - vhtCapInfo
        - vhtMcsNss
      type: object
      x-etsi-ref: 6.5.15
    WanMetrics:
      properties:
        downlinkLoad:
          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."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt8
        downlinkSpeed:
          description: >-
            4-octet positive integer whose value is an estimate of the WAN
            Backhaul link current downlink speed in kilobits per second.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint32
        lmd:
          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.
          format: uint16
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint16
        uplinkLoad:
          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."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
        uplinkSpeed:
          description: >-
            4-octet positive integer whose value is an estimate of the WAN
            Backhaul link's current uplink speed in kilobits per second.
          format: uint32
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: UInt32
        wanInfo:
          description: >-
            Info about WAN link status, link symmetricity and capacity currently
            used.
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uint8
      required:
        - wanInfo
        - downlinkSpeed
        - uplinkSpeed
        - downlinkLoad
        - uplinkLoad
        - lmd
      type: object
      x-etsi-ref: 6.5.6
    WebsockNotifConfig:
      properties:
        requestWebsocketUri:
          description: >-
            Set to true by the service consumer to indicate that Websocket
            delivery is requested.
          type: boolean
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Boolean
        websocketUri:
          description: >-
            Set by WAIS to indicate to the service consumer the
            Websocket URI to be used for delivering notifications.
          type: string
      type: object
      x-etsi-ref: 6.3.6
    WlanCapabilities:
      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'
      type: object
      x-etsi-ref: 6.5.4
