ETSI MEC 029 Fixed Access Information API

The Fixed Access Information Service from ETSI GS MEC 029, extending MEC information exposure beyond mobile to fixed broadband access networks including PON and cable, so edge applications can read fixed-line network conditions.

OpenAPI Specification

MEC029_FAI.yaml Raw ↑
openapi: 3.1.0
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
info:
  contact:
    url: https://forge.etsi.org/rep/mec/gs029-fai-api
  title: ETSI GS MEC 029 Fixed Access Information API
  description: The ETSI MEC ISG Fixed Access Information API described using OpenAPI.
  license:
    name: BSD-3-Clause
    url: https://forge.etsi.org/legal-matters
  version: 2.2.1
servers:
- url: https://localhost/fai/v1
paths:
  /queries/fa_info:
    get:
      summary: Retrieve current status of the FAI.
      description: The GET method is used to query information about the available fixed access networks.
      operationId: QueriesFainfoGET
      tags:
      - queries
      parameters:
      - $ref: '#/components/parameters/Query.Customerpremisesinfo'
      - $ref: '#/components/parameters/Query.Lastmiletech'
      - $ref: '#/components/parameters/Query.Interfacetype'
      - $ref: '#/components/parameters/Query.Dsbw'
      - $ref: '#/components/parameters/Query.Usbw'
      - $ref: '#/components/parameters/Query.Latency'
      responses:
        '200':
          description: Upon success, a response body containing the information of zero or more fix access networks is returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FaInfo'
        '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/device_info:
    get:
      summary: Retrieve current status of the device information.
      description: The GET method is used to query information about the devices that are connected to a fixed access network.
      operationId: QueriesDeviceinfoGET
      tags:
      - queries
      parameters:
      - $ref: '#/components/parameters/Query.Gwid'
      - $ref: '#/components/parameters/Query.Deviceid'
      - $ref: '#/components/parameters/Query.Devicestatus'
      responses:
        '200':
          description: Upon success, a response body containing the information of zero or more devices is returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeviceInfo'
        '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/cable_line_info:
    get:
      summary: Retrieve current status of the cable line information.
      description: The GET method is used to query information about the cable line of a fixed access network.
      operationId: QueriesCablelineinfoGET
      tags:
      - queries
      - cable_line_info
      parameters:
      - $ref: '#/components/parameters/Query.Customerpremisesinfo1'
      - $ref: '#/components/parameters/Query.Cmid'
      responses:
        '200':
          description: Upon success, a response body containing the information of zero or more cable lines is returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/CableLineInfo'
        '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/optical_network_info:
    get:
      summary: Retrieve current status of the optical network information.
      description: The GET method is used to query information about the optical network.
      operationId: QueriesOpticalnetworkinfoGET
      tags:
      - queries
      - optical_network_info
      parameters:
      - $ref: '#/components/parameters/Query.Customerpremisesinfo2'
      - $ref: '#/components/parameters/Query.Ponys_id'
      - $ref: '#/components/parameters/Query.Onuid'
      responses:
        '200':
          description: Upon success, a response body containing the information of zero or more optical networks is returned.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/PonInfo'
        '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:
      summary: Retrieve a list of active subscriptions for this subscriber.
      description: The GET method is used to request information about the subscriptions for this requestor. Upon success, the response contains entity body with the list of links to the subscriptions that are present for the requestor.
      operationId: SubscriptionsGET
      tags:
      - subscriptions
      parameters:
      - $ref: '#/components/parameters/Query.Subscription_type'
      responses:
        '200':
          description: Upon success, a response body containing the list of links to requestor's subscriptions is returned. The list shall only contain subscriptions of the subscription type specified by the URI query parameters.
          content:
            application/json:
              schema:
                type: object
                properties:
                  SubscriptionLinkList:
                    $ref: '#/components/schemas/SubscriptionLinkList'
        '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:
      summary: Create a new subscription.
      description: The POST method is used to create a new subscription to FAI notifications. Upon success, the response contains entity body describing the created subscription.
      operationId: SubscriptionsPOST
      tags:
      - subscriptions
      requestBody:
        description: 'The entity body in the request contains data type of the specific FAI event subscription that is to be created, where the data type options are listed below:

          OnuAlarmSubscription.

          DevInfoSubscription.

          CmConnSubscription.

          AniAlarmSubscription.'
        content:
          application/json:
            schema:
              type: object
              properties:
                OnuAlarmSubscription:
                  $ref: '#/components/schemas/OnuAlarmSubscription'
      responses:
        '201':
          description: 'Indicates successful resource creation, where the resource URI shall be returned in the HTTP Location header field.


            In the returned NotificationSubscription structure, the created subscription is described using the appropriate data type from the list below:

            OnuAlarmSubscription.

            DevInfoSubscription.

            CmConnSubscription.

            AniAlarmSubscription.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  OnuAlarmSubscription:
                    $ref: '#/components/schemas/OnuAlarmSubscription'
        '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#/callbackUri}':
            post:
              summary: Callback POST used to send a notification
              description: Subscription notification
              operationId: notificationPOST710301
              requestBody:
                description: Subscription notification
                required: true
                content:
                  application/json:
                    schema:
                      type: object
                      properties:
                        subscriptionNotification:
                          oneOf:
                          - $ref: '#/components/schemas/OnuAlarmSubscription'
                          - $ref: '#/components/schemas/DevInfoSubscription'
                          - $ref: '#/components/schemas/CmConnSubscription'
                          - $ref: '#/components/schemas/AniAlarmSubscription'
              responses:
                '204':
                  description: No content
                '404':
                  description: Not found
      parameters: []
  /subscriptions/{subscriptionId}:
    get:
      summary: Retrieve information on current specific subscription.
      description: The GET method is used to retrieve information about this subscription. Upon success, the response contains entity body with the data type describing the subscription.
      operationId: SubscriptionsGETSubscriptionid
      tags:
      - subscriptions
      responses:
        '200':
          description: 'Upon success, a response body containing data type describing the specific FAI event subscription is returned. The allowed data types for subscriptions are as follows:

            OnuAlarmSubscription.

            DevInfoSubscription.

            CmConnSubscription.

            AniAlarmSubscription.'
          content:
            application/json:
              schema:
                type: object
                properties:
                  OnuAlarmSubscription:
                    $ref: '#/components/schemas/OnuAlarmSubscription'
        '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'
      parameters:
      - name: subscriptionId
        in: path
        required: true
        description: The unique identifier of the subscriptionId.
        schema:
          type: string
    put:
      summary: Modify existing subscription by sending a new data structure.
      description: The PUT method is used to update the existing subscription. PUT method in this case has "replace" semantics. Upon successful operation, the target resource is updated with new Data Type received within the message body of the PUT request.
      operationId: SubscriptionsPUTSubscriptionid
      tags:
      - subscriptions
      parameters:
      - name: subscriptionId
        in: path
        required: true
        description: The unique identifier of the subscriptionId.
        schema:
          type: string
    delete:
      summary: Cancel the existing subscription.
      description: The DELETE method is used to cancel the existing subscription. Cancellation can be made by deleting the resource that represents existing subscription.
      operationId: SubscriptionsDELETESubscriptionid
      tags:
      - subscriptions
      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'
      parameters:
      - name: subscriptionId
        in: path
        required: true
        description: The unique identifier of the subscriptionId.
        schema:
          type: string
components:
  schemas:
    LinkType:
      x-etsi-ref: 6.5.8
      type: object
      properties:
        href:
          description: URI referring to a resource
          type: string
          format: uri
      required:
      - href
    Href:
      description: The URI referring to the subscription.
      type: string
      format: uri
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          format: uri
          description: A URI reference according to IETF RFC 3986 that identifies the problem type
        title:
          type: string
          description: A short, human-readable summary of the problem type
        status:
          type: integer
          format: uint32
          description: The HTTP status code for this occurrence of the problem
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem
        instance:
          type: string
          format: uri
          description: A URI reference that identifies the specific occurrence of the problem
    FaInfo:
      x-etsi-ref: 6.2.2
      type: object
      properties:
        timeStamp:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
        customerPremisesInfo:
          description: The physical location of a customer site.
          $ref: '#/components/schemas/CpInfo'
        lastMileTech:
          type: integer
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          description: 'An informative field identifying the last mile access technology used.

            The valid values are:

            1 = ADSL.

            2 = VDSL.

            3 = GPON.

            4 = XGPON.

            5 = NGPON2.

            6 = XGSPON.

            7 = GFAST.

            8 = P2PEthernet.'
        interfaceType:
          type: integer
          enum:
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          description: 'The physical interface used for the end customer site:

            1   =   100BASE-TX.

            2   =   1000BASE-TX.

            3   =   1000BASE-LX.

            4   =   1000BASELX10.

            5   =   1000BASEBX10.

            6   =   1000BASE-LH.

            7   =   1000Base-ZX.

            8   =   ADSL-RJ11.

            9   =   VDSL-RJ11.

            10 =   GPON.'
        dsbw:
          description: The bandwidth (in Mbps) from the network towards the customer site.
          type: integer
        usbw:
          description: The bandwidth (in Mbps) from the customer site towards the network.
          type: integer
        latency:
          description: Maximum baseline latency (in ms) between customer site and service edge node.
          type: integer
      required:
      - customerPremisesInfo
      - lastMileTech
      - interfaceType
    DeviceInfo:
      x-etsi-ref: 6.2.3
      type: object
      properties:
        timeStamp:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
        gwId:
          description: 'Information (typically the serial number) to identify an Internet Gateway Device through which the customer premises device is connected.


            This value shall remain fixed over the lifetime of the device, including across firmware updates.'
          type: string
        deviceId:
          description: 'Typically, the serial number of the device.


            This value shall remain fixed over the lifetime of the device, including across firmware updates.'
          type: string
        deviceStatus:
          type: integer
          enum:
          - 1
          - 2
          - 3
          - 4
          description: 'Current operational status of the device. Enumeration of:

            1 = Up.

            2 = Initializing.

            3 = Error.

            4 = Disabled.'
        upTime:
          description: Time in seconds since the device was last restarted.
          type: integer
        iPConnectionUpTime:
          description: The time in seconds that the IP interface has been connected.
          type: integer
        totalBytesSent:
          description: Total number of IP payload bytes sent since the device was last restarted.
          type: integer
        totalBytesReceived:
          description: Total number of IP payload bytes received since the device was last restarted.
          type: integer
        totalPacketsSent:
          description: Total number of packets sent since the device was last restarted.
          type: integer
        totalPacketsReceived:
          description: Total number of packets received since the device was last restarted.
          type: integer
        iPPingDiagnostics:
          description: The result of an IP-layer ping test.
          $ref: '#/components/schemas/IPPingDiagnostics'
        traceRouteDiagnostics:
          description: The result of an IP-layer trace-route test.
          $ref: '#/components/schemas/TraceRouteDiagnostics'
        downloadDiagnostics:
          description: The result of a HTTP and FTP DownloadDiagnostics Test.
          $ref: '#/components/schemas/DownloadDiagnostics'
        uploadDiagnostics:
          description: The result of a HTTP and FTP UploadDiagnostics Test.
          $ref: '#/components/schemas/UploadDiagnostics'
      required:
      - gwId
      - deviceId
      - deviceStatus
      - upTime
      - iPConnectionUpTime
      - totalBytesSent
      - totalBytesReceived
      - totalPacketsSent
      - totalPacketsReceived
    CableLineInfo:
      x-etsi-ref: 6.2.4
      type: object
      properties:
        timeStamp:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
        customerPremisesInfo:
          description: The physical location of a customer site.
          $ref: '#/components/schemas/CpInfo'
        cmId:
          description: 'Information (typically the serial number) to identify a Cable Modem at subscriber locations intended for use in conveying data communications on a cable data system.


            This value SHALL remain fixed over the lifetime of the device, including across firmware updates.'
          type: string
        cmStatus:
          $ref: '#/components/schemas/CmStatus'
        cmDpvStats:
          $ref: '#/components/schemas/CmDpvStats'
        serviceFlowStats:
          $ref: '#/components/schemas/ServiceFlowStats'
      required:
      - customerPremisesInfo
      - cmId
    PonInfo:
      x-etsi-ref: 6.2.5
      type: object
      properties:
        timeStamp:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
        customerPremisesInfo:
          description: The physical location of a customer site.
          $ref: '#/components/schemas/CpInfo'
        ponSYS_ID:
          description: 'The 20-bit identity of the optical system within a certain domain.

            This is a reference value set by the OSS.'
          type: string
        onuId:
          description: Information to identify an Optical Network Unit.
          type: string
        ponTech:
          type: integer
          enum:
          - 1
          - 2
          - 3
          - 4
          description: 'An informative field identifying the optical technology used.


            The valid values are:

            1 = GPON.

            2 = XGPON.

            3 = NGPON2.

            4 = XGSPON.'
        operationalState:
          type: integer
          enum:
          - 0
          - 1
          description: 'It reports whether the ONU is currently capable of performing its function. Valid values are:

            0 = enabled

            1 = disabled'
        dsRate:
          type: integer
          enum:
          - 1
          - 2
          description: "Downstream line rate, valid values are:\n1 =\t2,48832 Gbit/s: G-PON [i.9]; or\nNG-PON2 option 2 [i.8].\n2 =\t9,95328 Gbit/s:  XG-PON [i.10]; or\nXGS-PON [i.11]; or\nNG-PON2 option 1 [i.8]."
        usRate:
          type: integer
          enum:
          - 1
          - 2
          - 3
          description: "Upstream line rate, valid values are:\n1 =\t1,24416 Gbit/s: G-PON option 1 [i.9].\n2 =\t2,48832 Gbit/s: G-PON option 2 [i.9]; or\nXG-PON [i.10]; or\nNG-PON2 option 2 [i.8].\n3 =\t9,95328 Gbit/s: XGS-PON [i.11]; or\nNG-PON2 option 1 [i.8]."
      required:
      - customerPremisesInfo
      - ponSYS_ID
      - onuId
      - ponTech
      - operationalState
      - dsRate
      - usRate
    OnuAlarmSubscription:
      x-etsi-ref: 6.3.2
      type: object
      properties:
        subscriptionType:
          description: Shall be set to "OnuAlarmSubscription".
          type: string
        callbackReference:
          description: URI exposed by the client on which to receive notifications via HTTP. See note.
          type: string
          format: uri
        requestTestNotification:
          description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS MEC 009 [i.1], clause\_6.12a.\nDefault: FALSE. "
          type: boolean
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. See note.
          $ref: '#/components/schemas/WebsockNotifConfig'
        _links:
          $ref: '#/components/schemas/_links'
        filterCriteriaOnuAlarm:
          $ref: '#/components/schemas/FilterCriteriaOnuAlarm'
        expiryDeadline:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
      required:
      - subscriptionType
      - filterCriteriaOnuAlarm
      description: "|-\n  NOTE:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a."
    DevInfoSubscription:
      x-etsi-ref: 6.3.3
      type: object
      properties:
        subscriptionType:
          description: Shall be set to "DevInfoSubscription".
          type: string
        callbackReference:
          description: URI exposed by the client on which to receive notifications via HTTP. See note.
          type: string
          format: uri
        requestTestNotification:
          description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS MEC 009 [i.1], clause\_6.12a.\nDefault: FALSE. "
          type: boolean
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. See note.
          $ref: '#/components/schemas/WebsockNotifConfig'
        _links:
          $ref: '#/components/schemas/_links'
        filterCriteriaDevInfo:
          $ref: '#/components/schemas/FilterCriteriaDevInfo'
        expiryDeadline:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
      required:
      - subscriptionType
      - filterCriteriaDevInfo
      description: "|-\n  NOTE:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a."
    CmConnSubscription:
      x-etsi-ref: 6.3.4
      type: object
      properties:
        subscriptionType:
          description: Shall be set to "CmConnSubscription".
          type: string
        callbackReference:
          description: URI exposed by the client on which to receive notifications via HTTP. See note 1.
          type: string
          format: uri
        requestTestNotification:
          description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS MEC 009 [i.1], clause\_6.12a.\nDefault: FALSE. "
          type: boolean
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. See note 1.
          $ref: '#/components/schemas/WebsockNotifConfig'
        _links:
          $ref: '#/components/schemas/_links'
        filterCriteriaCmConn:
          $ref: '#/components/schemas/FilterCriteriaCmConn'
        expiryDeadline:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
      required:
      - subscriptionType
      - filterCriteriaCmConn
      description: "|-\n  NOTE 1:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a.\nNOTE 2:\t'notReady' indicates that the CM has not started the registration process yet.\n\t'notSynchronized' indicates that the CM has not initiated or completed the synchronization of the downstream physical layer.\n\t'phySynchronized' indicates that the CM has completed the synchronization of the downstream physical layer.\n\t'dsTopologyResolutionInProgress' indicates that the CM is attempting to determine its MD-DS-SG.\n\t'usParametersAcquired' indicates that the CM has completed the upstream parameters acquisition or have completed the downstream and upstream service groups resolution.\n\t'rangingInProgress' indicates that the CM has initiated the initial ranging process.\n\t'rangingComplete' indicates that the CM has completed initial ranging and received a Ranging Status of success from the CMTS in the RNG-RSP message.\n\t'eaeInProgress' indicates that the CM has sent an Auth Info message for EAE.\n\t'dhcpv4InProgress' indicates that the CM has sent a DHCPv4 DISCOVER to gain IP connectivity.\n\t'dhcpv6InProgress' indicates that the CM has sent a DHCPv6 Solicit message.\n\t'dhcpv4Complete' indicates that the CM has received a DHCPv4 ACK message from the CMTS.\n\t'dhcpv6Complete' indicates that the CM has received a DHCPv6 Reply message from the CMTS.\n\t'todEstablished' indicates that the CM has successfully acquired time of day.\n\t'securityEstablished' indicates that the CM has successfully completed the BPI initialization process.\n\t'configFileDownloadComplete' indicates that the CM has completed the config file download process.\n\t'registrationInProgress' indicates that the CM has sent a Registration Request.\n\t'registrationComplete' indicates that the CM has successfully completed the Registration process with the CMTS.\n\t'accessDenied' indicates that the CM has received a registration aborted notification from the CMTS.\n\t'operational' indicates that the CM has completed all necessary initialization steps and is operational.\n\t'bpiInit' indicates that the CM has started the BPI initialization process as indicated in the CM config file.\n\t'forwardingDisabled' indicates that the registration process was completed, but the network access option in the received configuration file prohibits forwarding."
    SubscriptionLinkList:
      x-etsi-ref: 6.3.5
      type: object
      properties:
        _links:
          $ref: '#/components/schemas/_links1'
      required:
      - _links
    AniAlarmSubscription:
      x-etsi-ref: 6.3.6
      type: object
      properties:
        subscriptionType:
          description: Shall be set to "AniAlarmSubscription".
          type: string
        callbackReference:
          description: URI exposed by the client on which to receive notifications via HTTP. See note.
          type: string
          format: uri
        requestTestNotification:
          description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS MEC 009 [i.1], clause\_6.12a.\nDefault: FALSE. "
          type: boolean
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. See note.
          $ref: '#/components/schemas/WebsockNotifConfig'
        _links:
          $ref: '#/components/schemas/_links'
        filterCriteriaAniAlarm:
          $ref: '#/components/schemas/FilterCriteriaAniAlarm'
        onuId:
          description: The unique identifiers for the optical network unit,
          type: string
        aniIndex:
          description: The index of an access network interface supported by the optical network unit.
          type: string
        alarms:
          description: "In case alarms is not included in the subscription request, the default value -1 = All shall be used and included in the response:\n0  =\tLowReceivedOpticalPower.\n(Received downstream optical power below threshold.)\n1  =\tHighReceivedOpticalPower.\n\t(Received downstream optical power above threshold.)\n2  =\tSignalFalure.\n(Bit error-based signal fail.)\n3  =\tSignalDegrade.\n(Bit error-based signal degrade.)\n4  =\tLowTransmitOpticalPower.\n(Transmit optical power below lower threshold.)\n5  =\tHighTransmitOpticalPower.\n(Transmit optical power above upper threshold.)\n6  =\tLaserBiasCurrent.\n(Laser bias current above threshold determined by vendor.)\n-1 =\tAll."
          type: array
          minItems: 0
          items:
            type: integer
        expiryDeadline:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
      required:
      - subscriptionType
      - filterCriteriaAniAlarm
      - onuId
      - aniIndex
      description: "|-\n  NOTE:\tAt least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a."
    OnuAlarmNotification:
      x-etsi-ref: 6.4.2
      type: object
      properties:
        notificationType:
          description: Shall be set to "OnuAlarmNotification".
          type: string
        timeStamp:
          description: Time stamp.
          $ref: '#/components/schemas/TimeStamp'
        customerPremisesInfo:
          description: The physical location of the related customer sites.
          type: array
          minItems: 0
          items:
            $ref: '#/components/schemas/CpInfo'
        onuId:
          description: The unique identifier for an optical network unit.
          type: string
        alarm:
          type: integer
          enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
          - 7
          - 8
          - 9
          - 10
          - 11
          - 12
          - 13
          - 14
          - 15
          description: "Indicates the alarm of the ONU:\n0  \t= \tEquipmentAlarm.\n1  \t= \tPoweringAlarm.\n2  \t= \tBatteryMissing.\n3  \t= \tBatteryFailure.\n4  \t= \tBatteryLow.\n5  \t= \tPhysicalIntrusion.\n6  \t= \tOnuSelfTestFailure.\n7  \t= \tDyingGasp.\n8  \t= \tTemperatureYellow.\n9  \t= \tTemperatureRed.\n10 \t= \tVoltageYellow.\n11 \t= \tVoltageRed.\n12 \t= \tOnuManualPowerOff.\n13 \t= \tInvImage.\n14 \t= \tPseOverloadYellow.\n15 \t= \tPseOverloadRed."
      required:
      - notificationType
      - onuId
      - alarm
    DevInfoNotification:
      x-etsi-ref: 6.4.3
      type: object
      properties:
        notificationType:
          description: Shall be set to "DevInfoNotification".
          type: string
        timeStamp:
          description: Time stamp.

# --- truncated at 32 KB (67 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/etsi/refs/heads/main/openapi/mec/MEC029_FAI.yaml