WlanInformationApi.yaml 112 KB
Newer Older
openapi: 3.0.0
info:
  contact:
Michel Roy's avatar
Michel Roy committed
    url: 'https://forge.etsi.org/rep/mec/gs028-wai-api'
  title: ETSI GS MEC 028 - WLAN Access Information API
Michel Roy's avatar
Michel Roy committed
  version: 2.2.1
  description: The ETSI MEC ISG MEC028 WLAN Access Information API described using OpenAPI
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
externalDocs:
Michel Roy's avatar
Michel Roy committed
  description: ETSI MEC028 V2.2.1 WLAN Information API
  url: >-
    https://www.etsi.org/deliver/etsi_gs/MEC/001_099/028/02.02.01_60/gs_mec028v020201p.pdf
servers:
  - url: 'https://localhost/wai/v2'
tags:
Michel Roy's avatar
Michel Roy committed
  - name: wai
paths:
  /queries/ap/ap_information:
    get:
      tags:
Michel Roy's avatar
Michel Roy committed
        - 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:
Michel Roy's avatar
Michel Roy committed
        - 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:
Michel Roy's avatar
Michel Roy committed
        - 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':
Michel Roy's avatar
Michel Roy committed
          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:
Michel Roy's avatar
Michel Roy committed
                        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:
Michel Roy's avatar
Michel Roy committed
        - 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:
Michel Roy's avatar
Michel Roy committed
                bssid: 005C0A0A0A0A
                ssid:
                  - myNetworkSsid
                ipAddress:
                  - 10.10.100.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'
                expiryDeadline:
                  seconds: 1977836800
                  nanoSeconds: 0
                apId:
Michel Roy's avatar
Michel Roy committed
                  bssid: 005C0A0A0A0A
                  ssid:
                    - myNetworkSsid
                  ipAddress:
                    - 10.10.100.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:
Michel Roy's avatar
Michel Roy committed
              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:
Michel Roy's avatar
Michel Roy committed
                        bssid: 005C0A0A0A0A
                        ssid:
                          - myNetworkSsid
                        ipAddress:
                          - 10.10.100.1
                      staId:
                        macId: 005C01111111
                        ssid:
Michel Roy's avatar
Michel Roy committed
                          - myNetworkSsid
                          - myOtherNetworkSsid
                        aid: '1122'
Michel Roy's avatar
Michel Roy committed
                        ipAddress:
                          - 10.10.1.255
              responses:
                '204':
                  $ref: '#/components/responses/204'
  '/subscriptions/{subscriptionId}':
    get:
      tags:
Michel Roy's avatar
Michel Roy committed
        - 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'
                expiryDeadline:
                  seconds: 1977836800
                  nanoSeconds: 0
                apId:
Michel Roy's avatar
Michel Roy committed
                  bssid: 005C0A0A0A0A
                  ssid:
                    - myNetworkSsid
                  ipAddress:
                    - 10.10.100.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:
Michel Roy's avatar
Michel Roy committed
        - 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'
              expiryDeadline:
                seconds: 1977836800
                nanoSeconds: 0
              apId:
Michel Roy's avatar
Michel Roy committed
                bssid: 005C0A0A0A0A
                ssid:
                  - myNetworkSsid
                ipAddress:
                  - 10.10.100.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:
Michel Roy's avatar
Michel Roy committed
                  bssid: 005C0A0A0A0A
                  ssid:
                    - myNetworkSsid
                  ipAddress:
                    - 10.10.100.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:
Michel Roy's avatar
Michel Roy committed
        - 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'
Michel Roy's avatar
Michel Roy committed
  /measurements:
    get:
      tags:
        - wai
      summary: Retrieve information on measurements configuration
      description: Queries information on measurements configuration
      operationId: measurementLinkList_measurementsGET
      responses:
        '200':
          description: >-
            Response body contains the list of links to requestors measurement
            configurations.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementConfigLinkList'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/measurements'
                measurementConfig:
                  - href: 'http://meAppServer.example.com/wai/v2/measurements/meas123'
                    measurementId: myId1
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
    post:
      tags:
        - wai
      summary: Create a new measurement configuration
      description: Creates a new measurement configuration
      operationId: measurementsPOST
      requestBody:
        description: Measurement configuration information
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeasurementConfig'
            example:
              staId:
                macId: 005C01111111
                ssid:
                  - myNetworkSsid
                  - myOtherNetworkSsid
              measurementId: myId1
              measurementInfo: {}
      responses:
        '201':
          description: Successful measurement configuration response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementConfig'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/measurements/meas123'
                staId:
                  macId: 005C01111111
                  ssid:
                    - myNetworkSsid
                    - myOtherNetworkSsid
                measurementId: myId1
                measurementInfo: {}
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
  '/measurements/{measurementConfigId}':
    get:
      tags:
        - wai
      summary: Retrieve information on an existing measurement configuration
      description: >-
        Queries information about an existing measurement configuration,
        identified by its self-referring URI returned on creation (initial POST)
      operationId: measurementsGET
      parameters:
        - $ref: '#/components/parameters/Path.measurementConfigId'
      responses:
        '200':
          description: Measurement configuration information
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementConfig'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/measurements/meas123'
                staId:
                  macId: 005C01111111
                  ssid:
                    - myNetworkSsid
                    - myOtherNetworkSsid
                measurementId: myId1
                measurementInfo: {}
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
    put:
      tags:
        - wai
      summary: Modify an existing measurement configuration
      description: >-
        Updates an existing measurement configuration, identified by its
        self-referring URI returned on creation (initial POST)
      operationId: measurementsPUT
      requestBody:
        description: Measurement configuration to be modified
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MeasurementConfig'
            example:
              _links:
                self:
                  href: 'http://meAppServer.example.com/wai/v2/measurements/meas123'
              staId:
                macId: 005C01111111
                ssid:
                  - myNetworkSsid
                  - myOtherNetworkSsid
              measurementId: myId1
              measurementInfo: {}
      parameters:
        - $ref: '#/components/parameters/Path.measurementConfigId'
      responses:
        '200':
          description: Successful measurement configuration modification
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MeasurementConfig'
              example:
                _links:
                  self:
                    href: 'http://meAppServer.example.com/wai/v2/measurements/123'
                staId:
                  macId: 005C01111111
                  ssid:
                    - myNetworkSsid
                    - myOtherNetworkSsid
                measurementId: myId1
                measurementInfo: {}
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '412':
          $ref: '#/components/responses/412'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
    delete:
      tags:
        - wai
      summary: Cancel a measurement configuration
      description: >-
        Cancels an existing measurement configuration, identified by its
        self-referring URI returned on creation (initial POST)
      operationId: measurementsDELETE
      parameters:
        - $ref: '#/components/parameters/Path.measurementConfigId'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
components:
  responses:
Michel Roy's avatar
Michel Roy committed
    '200':
      description: OK
Michel Roy's avatar
Michel Roy committed
    '204':
      description: No Content
Michel Roy's avatar
Michel Roy committed
    '400':
      description: >-
        Bad Request : used to indicate that incorrect parameters were passed to
        the request.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
    '401':
      description: 'Unauthorized :  used when the client did not submit credentials.'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
    '403':
      description: >-
        Forbidden :  operation is not allowed given the current status of the
        resource.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
    '404':
      description: >-
        Not Found :  used when a client provided a URI that cannot be mapped to
        a valid resource URI.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
    '406':
      description: >-
        Not Acceptable : used to indicate that the server cannot provide the any
        of the content formats supported by the client.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
    '412':
      description: >-
        Precondition failed :  used when a condition has failed during
        conditional requests, e.g. when using ETags to avoid write conflicts
        when using PUT
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
    '415':
      description: >-
        Unsupported Media Type :  used to indicate that the server or the client
        does not support the content type of the entity body.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
Michel Roy's avatar
Michel Roy committed
    '422':
      description: >-
        Unprocessable Entity : used to indicate that the server understands the
        content type of the request entity and that the syntax of the request
        entity is correct but that the server is unable to process the contained
        instructions. This error condition can occur if an JSON request body is
        syntactically correct but semantically incorrect, for example if the
        target area for the request is considered too large. This error
        condition can also occur if the capabilities required by the request are
        not supported.
      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
Michel Roy's avatar
Michel Roy committed
    '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
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
      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:
Michel Roy's avatar
Michel Roy committed
          description: >-
            Unique number which identifies a particular association between the
            station and Access Point.
          type: string
          x-etsi-mec-cardinality: 0..1
Michel Roy's avatar
Michel Roy committed
          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
Michel Roy's avatar
Michel Roy committed
          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:
Michel Roy's avatar
Michel Roy committed
        - bssid
      type: object
      x-etsi-ref: 6.5.12
    ApIdentity:
      properties:
Michel Roy's avatar
Michel Roy committed
        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:
Michel Roy's avatar
Michel Roy committed
          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:
Michel Roy's avatar
Michel Roy committed
        - 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.
Michel Roy's avatar
Michel Roy committed
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        extBssLoad:
          $ref: '#/components/schemas/ExtBssLoad'
Michel Roy's avatar
Michel Roy committed
        oBssLoad:
          $ref: '#/components/schemas/OBssLoad'
        timeStamp:
          $ref: '#/components/schemas/TimeStamp'
        wanMetrics:
          $ref: '#/components/schemas/WanMetrics'
        wlanCap:
          $ref: '#/components/schemas/WlanCapabilities'
      required:
Michel Roy's avatar
Michel Roy committed
        - 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:
Michel Roy's avatar
Michel Roy committed
        - notificationType
        - apId
      type: object
      x-etsi-ref: 6.4.2
    AssocStaSubscription:
      properties:
        _links:
Michel Roy's avatar
Michel Roy committed
          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:
Michel Roy's avatar
Michel Roy committed
            - self
          type: object
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Structure (inlined)
        apId:
          $ref: '#/components/schemas/ApIdentity'
        callbackReference:
          type: string
        expiryDeadline:
          $ref: '#/components/schemas/TimeStamp'
Michel Roy's avatar
Michel Roy committed
        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
            on the callbackReference URI to determine if it is reachable by the
            WAIS for notifications.
          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
Michel Roy's avatar
Michel Roy committed
        websockNotifConfig:
          $ref: '#/components/schemas/WebsockNotifConfig'
      required:
Michel Roy's avatar
Michel Roy committed
        - subscriptionType
        - apId
      type: object
Michel Roy's avatar
Michel Roy committed
      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
Michel Roy's avatar
Michel Roy committed
    BeaconReport:
      properties:
Michel Roy's avatar
Michel Roy committed
        antennaId:
          description: "The Antenna ID field contains the identifying number for the antenna(s) used for this measurement. Antenna ID is defined in section\_9.4.2.40 of IEEE 802.11-2016 [8]."
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
Michel Roy's avatar
Michel Roy committed
          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
Michel Roy's avatar
Michel Roy committed
        channel:
          description: Channel number where the beacon was received.
Michel Roy's avatar
Michel Roy committed
          format: uint8
          type: integer
          x-etsi-mec-cardinality: '1'
Michel Roy's avatar
Michel Roy committed
          x-etsi-mec-origin-type: Uint8
        measurementId:
Michel Roy's avatar
Michel Roy committed
          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
Michel Roy's avatar
Michel Roy committed
        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'
Michel Roy's avatar
Michel Roy committed
          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