MEC029_FAI.yaml 82.7 KB
Newer Older
Elian Kraja's avatar
Elian Kraja committed
info:
  title: "ETSI GS MEC 029 Fixed Access Information API"
  version: 2.1.1
  description: "ETSI GS MEC 029 Fixed Access Information API described using OpenAPI."
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
  contact:
Elian Kraja's avatar
Elian Kraja committed
    name: ETSI Forge
    email: cti_support@etsi.org
Elian Kraja's avatar
Elian Kraja committed
    url: https://forge.etsi.org/rep/mec/gs029-fai-api 
externalDocs:
  description: "ETSI GS MEC 029 Fixed Access Information API, v2.1.1"
  url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/029/02.01.01_60/gs_mec029v020101p.pdf' 
openapi: 3.0.0
servers:
  - url: 'https://localhost/fai/v1'
tags:
  - name: Queries
  - name: Subscription  
Elian Kraja's avatar
Elian Kraja committed

paths:
 /queries/fa_info:
  get:
   tags:
Elian Kraja's avatar
Elian Kraja committed
   summary: 'Retrieve information on the available fixed access networks.'
   description: 'Retrieve information on the available fixed access networks.'
   operationId: fa_infoGET  
   parameters:
        - in: query
          name: customerPremisesInfo
          schema:
           type: array
           items:
            $ref: '#/components/schemas/CpInfo'
          required: false
          description: 'Comma separated list of customer premises information'
        - in: query
          name: lastMileTech
          schema:
            type: array
            items:
             type: integer
          required: false
          description: 'Comma separated list of last mile technologies.'
        - in: query
          name: interfaceType
          schema:
            type: array
            items:
             type: integer
          description: 'Comma separated list of interface types.'
        - in: query
          name: dsbw
          schema:
            type: array
            items:
             type: integer
          required: false
          description: 'Comma separated list of the bandwidth (in Mbps) from the network towards the customer site.'    
        - in: query
          name: usbw
          schema:
            type: array
            items:
             type: integer
          required: false
          description: 'Comma separated list of the bandwidth (in Mbps) from the customer site towards the network.' 
        - in: query
          name: latency
          schema:
            type: array
            items:
             type: integer
          required: false
          description: 'Comma separated list of the maximum baseline latency (in ms) between customer site and service edge node.'   
   responses:
        '200':
          description: 'A response body containing the FAI is returned. '
          content:
            application/json:
              schema:
                $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:
   tags:
Elian Kraja's avatar
Elian Kraja committed
   summary: 'retrieve information on the devices that are connected to a fixed access network.'
   description: 'retrieve information on the devices that are connected to a fixed access network.'
   operationId: device_infoGET  
   parameters:
        - in: query
          name: gwId
          schema:
           type: array
           items:
            type: string
          required: false
          description: 'Comma separated list of gateway identifier'
        - in: query
          name: deviceId
          schema:
            type: array
            items:
             type: string
          required: false
          description: 'Comma separated list of device identifier.'
        - in: query
          name: deviceStatus
          schema:
            type: array
            items:
             type: integer
          description: 'Comma separated list of device status.'
    
 
   responses:
        '200':
          description: 'A response body containing the device information is returned'
          content:
            application/json:
              schema:
                $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:
   tags:
    - 'Cable line info'
   summary: 'It Queries information about the cable line of a fixed access network.'
   description: 'It Queries information about the cable line of a fixed access network.'
   operationId: cable_line_infoGET  
   parameters:
        - in: query
          name: customerPremisesInfo
          schema:
           type: array
           items:
            $ref: '#/components/schemas/CpInfo'
          required: false
          description: 'Comma separated list of customer premises information'
        - in: query
          name: cmId
          schema:
            type: array
            items:
             type: string
          required: false
          description: 'Comma separated list of Cable Modem identifiers.'
    
 
   responses:
        '200':
          description: 'A response body containing the cable line information is returned.'
          content:
            application/json:
              schema:
                $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:
   tags:
    - 'Optical network info'
   summary: 'used to query information about the optical network.'
   description: 'used to query information about the optical network.'
   operationId: optical_network_infoGET  
   parameters:
        - in: query
          name: customerPremisesInfo
          schema:
           type: array
           items:
            $ref: '#/components/schemas/CpInfo'
          required: false
          description: 'Comma separated list of customer premises information'
        - in: query
          name: ponYS_ID
          schema:
            type: array
            items:
             type: string
          required: false
          description: 'Comma separated list of optical system identifiers.'
        - in: query
          name: onuId
          schema:
            type: array
            items:
             type: string
          required: false
          description: 'Comma separated list of optical network unit identifiers.'   
 
   responses:
        '200':
          description: 'A response body containing the optical network information 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:
   tags:
    - 'Subscription'
   summary: 'request information about the subscriptions for this requestor.'
   description: 'request information about the subscriptions for this requestor.'
   operationId: subGET  
   parameters:
        - in: query
          name: subscription_type
          schema:
           type: string
          required: false
        
          description: 'Query parameter to filter on a specific subscription type. Permitted values: ONU_ALARM. DEVICE_ABNORMAL_ALERT. CM_CONNECTIVITY_STATE.  ANI_ALARM.'
   responses:
        '200':
          description: 'A response body containing the list of links to requestor subscriptions is returned.'
          content:
            application/json:
              schema:
                 $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:
   tags:
    - 'Subscription'
   summary: ' create a new subscription to FAI notifications.'
   description: ' create a new subscription to FAI notifications.'
   operationId: subPOST  
   requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
               - $ref: '#/components/schemas/OnuAlarmSubscription'
               - $ref: '#/components/schemas/DevInfoSubscription'
               - $ref: '#/components/schemas/CmConnSubscription'
               - $ref: '#/components/schemas/AniAlarmSubscription'

   responses:
        '201':
          description: 'In the returned NotificationSubscription structure, the created subscription is described using the appropriate data type.'
          content:
            application/json:
              schema:
               oneOf:
               - $ref: '#/components/schemas/OnuAlarmSubscription'
               - $ref: '#/components/schemas/DevInfoSubscription'
               - $ref: '#/components/schemas/CmConnSubscription'
               - $ref: '#/components/schemas/AniAlarmSubscription'      
        '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: 'A notification from FAIS.'
              operationId: notificationPOST
              requestBody:
                description: Subscription notification
                required: true
                content:
                  application/json:
                    schema:
                      oneOf:
                      - $ref: '#/components/schemas/OnuAlarmNotification'
                      - $ref: '#/components/schemas/DevInfoNotification'
                      - $ref: '#/components/schemas/CmConnNotification'
                      - $ref: '#/components/schemas/AniAlarmNotification'
              responses:
                '204':
                  $ref: '#/components/responses/204'
          
 /subscriptions/{subscriptionId}: 
    parameters:
    - in: path
      name: subscriptionId
      description: 'Refers to created subscription, where the FAI API allocates a unique resource name for this subscription'
      schema:
        type: string
      required: true  

  

    get:
      tags:
      - 'Subscription'
      summary: 'Retrieve information about this subscription.'
      description: 'Retrieve information about this subscription.'
      operationId: individualSubscriptionGET
      
      responses:
        '200':
          description: 'A response body containing data type describing the specific FAI event subscription is returned' 
          content:
            application/json:
              schema:
               oneOf:
               - $ref: '#/components/schemas/OnuAlarmSubscription'
               - $ref: '#/components/schemas/DevInfoSubscription'
               - $ref: '#/components/schemas/CmConnSubscription'
               - $ref: '#/components/schemas/AniAlarmSubscription'  
        '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:
      - 'Subscription'
      summary: 'Used to update the existing subscription.'
      description: 'Used to update the existing subscription.'
      operationId: individualSubscriptionPUT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
               - $ref: '#/components/schemas/OnuAlarmSubscription'
               - $ref: '#/components/schemas/DevInfoSubscription'
               - $ref: '#/components/schemas/CmConnSubscription'
               - $ref: '#/components/schemas/AniAlarmSubscription'
      responses:
        '200':
          description: 'A response body containing data type describing the updated subscription is returned' 
          content:
            application/json:
              schema:
               oneOf:
               - $ref: '#/components/schemas/OnuAlarmSubscription'
               - $ref: '#/components/schemas/DevInfoSubscription'
               - $ref: '#/components/schemas/CmConnSubscription'
               - $ref: '#/components/schemas/AniAlarmSubscription'  
        '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:
      - 'Subscription'
      summary: 'Used to cancel the existing subscription.'
      description: 'Used to cancel the existing subscription.'
      operationId: individualSubscriptionDELETE
      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'
          
Elian Kraja's avatar
Elian Kraja committed
 
components:
  schemas:
  
    AniAlarmNotification.alarm:
     description: 'Indicates the alarm of the ANI: 0 = LowReceivedOpticalPower. 1 = HighReceivedOpticalPower. 2 = SignalFailure. 3 = SignalDegrade. 4 = LowTransmitOpticalPower.5 = HighTransmitOpticalPower.6 = LaserBiasCurrent.'
     enum:
          - 0
          - 1
          - 2
          - 3
          - 4
          - 5
          - 6
     type: integer
     x-etsi-mec-cardinality: '1'
     x-etsi-mec-origin-type: Enum
        
    AniAlarmNotification.aniId:
      properties:
       onuId:
          description: The unique identifiers for the optical network unit.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
       aniIndex:
          description: The index of an access network interface supported by the optical network unit.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String    
      required:
       - onuId
       - aniIndex
       
    AniAlarmNotification:
      properties:
        alarm:
          $ref: '#/components/schemas/AniAlarmNotification.alarm'
        aniId:
          $ref: '#/components/schemas/AniAlarmNotification.aniId'
        
        customerPremisesInfo:
          description: The physical location of the related customer sites.
          items:
            $ref: '#/components/schemas/CpInfo'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: CpInfo
        notificationType:
          description: Shall be set to "AniAlarmNotification".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        onuId:
          type: string
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'
      required:
      - notificationType
      - aniIndex
      - alarm
      type: object
      x-etsi-ref: 6.4.6
      
    AniAlarmSubscription.filterCriteriaAniAlarm.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."
     enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - -1
     type: integer
    
    AniAlarmSubscription.links:
     properties:
      self:
              # description': Self referring URI. The URI shall be unique within the FAI API as it acts as an ID for the subscription.
              # x-etsi-mec-cardinality': '1'
              # x-etsi-mec-origin-type': LinkType
              $ref: '#/components/schemas/LinkType'
     required:
       - self
    
    
   
    AniAlarmSubscription.filterCriteriaAniAlarm:
          description: 'List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.'
          required:
          - onuId
          - aniId
          properties:
            customerPremisesInfo:
                required:
                - onuId
                - aniId
                description: 0 to N physical locations of the customer sites.
                minItems: 0
                type: array
                items:
                  $ref: '#/components/schemas/CpInfo'
                
                x-etsi-mec-cardinality: 0..N
                x-etsi-mec-origin-type: CpInfo
            onuId:
              description: '1 to N unique identifiers for the optical network units.  Typical it is the unique serial number for each ONU, which contains the vendor ID and version number. The first four bytes are an ASCII-encoded four-letter vendor ID. The second four bytes are a binary encoded serial number, under the control of the ONU vendor.'
              type: array
              items:
                type: string
                x-etsi-mec-cardinality: '1..N'
                x-etsi-mec-origin-type: String
          
            aniId:
                description: ''
                type: object
                required:
                  - onuId
                  - aniIndex
                properties:
                  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:
             type: array
             items:
               $ref: '#/components/schemas/AniAlarmSubscription.filterCriteriaAniAlarm.alarms'
        
    
    AniAlarmSubscription:
      properties:
        subscriptionType:
         description: 'Shall be set to \"AniAlarmSubscription\"'
         type: string
        _links:
          $ref: '#/components/schemas/AniAlarmSubscription.links'
        aniIndex:
          description: The index of an access network interface supported by the optical network unit.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        callbackReference:
          description: URI selected by the service consumer to receive notifications on the subscribed FAIS information. This shall be included both in the request and in response.
          format: uri
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: URI
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'
        filterCriteriaAniAlarm:
          $ref: '#/components/schemas/AniAlarmSubscription.filterCriteriaAniAlarm'
      required:
      - subscriptionType
      - callbackReference
      - filterCriteriaAniAlarm
      - onuId
      - aniIndex
      type: object
      x-etsi-ref: 6.3.6
      
    CableLineInfo.cmInfo.serviceFlowStats:
                  description: 'It describes statistics associated with the Service Flows in a managed device.'
Elian Kraja's avatar
Elian Kraja committed
                  properties:
                      ifIndex:
                        description: 'It represents the interface index of the MAC Domain of the Service Flow'
Elian Kraja's avatar
Elian Kraja committed
                        type: string
                        x-etsi-mec-cardinality: '1'
                        x-etsi-mec-origin-type: String
                      serviceFlowInfo:
                       type: array
                       items:
                        $ref: '#/components/schemas/CableLineInfo.cmInfo.serviceFlowStats.serviceFlowInfo'
                  type: object

                  required:
                  - ifIndex
                  - serviceFlowInfo 
                  
    CableLineInfo.cmInfo.serviceFlowStats.serviceFlowInfo:
      description: It represents the information of a Service Flow.
      properties:
        aqmDroppedPkts:
          description: For upstream service flows on which AQM is enabled, this attribute counts the number of Packet Data PDUs classified to this service flow dropped due to Active Queue Management drop decisions.
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Integer
        pkts:
          description: For outgoing Service Flows, this attribute counts the number of Packet Data PDUs forwarded to this Service Flow. For incoming upstream CMTS service flows, this attribute counts the number of Packet Data PDUs actually received on the Service Flow identified by the SID for which the packet was scheduled.
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Integer
        policedDelayPkts:
          description: It counts only outgoing packets delayed in order to maintain the Maximum Sustained Traffic Rate.
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Integer
        policedDropPkts:
          description: "For upstream service flows, this attribute counts the number of Packet Data PDUs classified to this service flow dropped due to:\n1)\texceeding the selected Buffer Size for the service flow; or\n2)\tUGS packets dropped due to exceeding the Unsolicited Grant Size with a Request/Transmission policy that requires such packets to be dropped."
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Integer
        serviceFlowId:
          description: It represents an identifier assigned to a Service Flow by CMTS within a MAC Domain.
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Integer
        timeActive:
          description: It indicates the number of seconds that the service flow has been active.
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Integer
        timeCreated:
          # description': It indicates the time when the service flow was created.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'
      required:
      - serviceFlowId
      - pkts
      - timeCreated
      - timeActive
      - policedDropPkts
      - policedDelayPkts
      - aqmDroppedPkts
    
    CableLineInfo.cmInfo.cmStatus.cmRegState:
                      description: 'It defines the CM connectivity state. Enumeration of: 1 = other.  2 = notReady. 3 = notSynchronized. 4 = phySynchronized. 5 = usParametersAcquired. 6 = rangingComplete. 7 = dhcpV4Complete. 8 = todEstablished. 9 = securityEstablished. 10 = configFileDownloadComplete. 11 = registrationComplete. 12 = operational. 13 = accessDenied. 14 = eaeInProgress. 15 = dhcpv4InProgress. 16 = dhcpv6InProgress. 17 = dhcpV6Complete. 18 = registrationInProgress. 19 = bpiInit. 20 = forwardingDisabled. 21 = dsTopologyResolutionInProgress. 22 = rangingInProgress. 23 = rfMuteAll.'
                      enum:
                      - 1
                      - 2
                      - 3
                      - 4
                      - 5
                      - 6
                      - 7
                      - 8
                      - 9
                      - 10
                      - 11
                      - 12
                      - 13
                      - 14
                      - 15
                      - 16
                      - 17
                      - 18
                      - 19
                      - 20
                      - 21     
                      - 22
                      - 23                       
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Enum    
    CableLineInfo.cmInfo.cmStatus:
                  description: It provides CM connectivity status information of the CM.
                  properties:
                    cmRegState:
                      $ref: '#/components/schemas/CableLineInfo.cmInfo.cmStatus.cmRegState'
                    emDlsOperStatus:
                      description: It indicates whether the CM is currently operating in Energy Management DLS Mode.
                      type: boolean
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Boolean
                    energyMgt1x1OperStatus:
                      description: It indicates whether the CM is currently operating in Energy Management 1x1 Mode.
                      type: boolean
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Boolean
                    ifIndex:
                      description: It denotes the MAC Domain interface index of the CM.
                      type: string
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: String
                    invalidRegRsps:
                      description: It denotes the number of times the CM received invalid registration response messages.
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Integer
                    lostSyncs:
                      description: It denotes the number of times the CM lost synchronization with the downstream channel.
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Integer
                    resets:
                      description: It denotes the number of times the CM reset or initialized this interface.
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Integer
                  required:
                  - ifIndex
                  - cmRegState
                  - resets
                  - lostSyncs
                  - invalidRegRsps
                  - energyMgt1x1OperStatus
                  - emDlsOperStatus
     
    CableLineInfo.cmInfo.cmDpvStats:
                  description: It represents the DOCSIS Path Verify Statistics collected in the cable modem device.
                  properties:
                    avgLatency:
                      description: The average latency measurement.
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Integer
                    ifIndex:
                      description: It represents the interface Index of the Downstream Interface where the measurements are taken.
                      type: string
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: String
                    lastMeasLatency:
                      description: The last latency measurement.
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Integer
                    lastMeasTime:
                      # description': The last measurement time of the last latency measurement.
                      # x-etsi-mec-cardinality': '1'
                      # x-etsi-mec-origin-type': TimeStamp
                      $ref: '#/components/schemas/TimeStamp'
                    maxLatency:
                      description: The maximum latency measurement.
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Integer
                    minLatency:
                      description: The minimum latency measurement.
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Integer
                    numMeas:
                      description: The number of latency measurements made.
                      type: integer
                      x-etsi-mec-cardinality: '1'
                      x-etsi-mec-origin-type: Integer
                  required:
                  - ifIndex
                  - lastMeasLatency
                  - lastMeasTime
                  - minLatency
                  - maxLatency
                  - avgLatency
                  - numMeas
                  
    CableLineInfo.cmInfo:
            description: ''
            properties:
                cmDpvStats:
                   type: array
                   items:
                   
                    $ref: '#/components/schemas/CableLineInfo.cmInfo.cmDpvStats'
                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 thedevice, including across firmware updates.'
                  type: string
                  x-etsi-mec-cardinality: '1'
                  x-etsi-mec-origin-type: String
                cmStatus:
                  $ref: '#/components/schemas/CableLineInfo.cmInfo.cmStatus'
                serviceFlowStats:
                  type: array
                  items:
                   $ref: '#/components/schemas/CableLineInfo.cmInfo.serviceFlowStats'
            
            required:
            - cmId
         
    CableLineInfo:
        properties:
          cmInfo:
            $ref: '#/components/schemas/CableLineInfo.cmInfo'
          customerPremisesInfo:
            # description': The physical location of a customer site.
            # x-etsi-mec-cardinality': '1'
            # x-etsi-mec-origin-type': CpInfo
            $ref: '#/components/schemas/CpInfo'
          timeStamp:
            # description': Time stamp.
            # x-etsi-mec-cardinality': 0..1
            # x-etsi-mec-origin-type': TimeStamp
            $ref: '#/components/schemas/TimeStamp'
        type: object
        required:
        - customerPremisesInfo
        - cmInfo
        x-etsi-ref: 6.2.4
  
  
  
    CmConnNotification.cmIf.cmRegState:
Elian Kraja's avatar
Elian Kraja committed
       description: 'It indicates the CM connectivity state. Enumeration of:  1 = notReady. 2 = notSynchronized. 3 = phySynchronized. 4 = dsTopologyResolutionInProgress.5 = usParametersAcquired. 6 = rangingInProgress.7 = rangingComplete. 8 = eaeInProgress.9 = dhcpv4InProgress. 10 = dhcpv6InProgress.11 = dhcpV4Complete.12 = dhcpV6Complete.13 = todEstablished.14 = securityEstablished.15 = configFileDownloadComplete.16 = registrationInProgress.17 = registrationComplete. 18 = accessDenied. 19 =operational. 20 = bpiInit.21 =forwardingDisabled.'
       enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
        - 15
        - 16
        - 17
        - 18
        - 19
        - 20
        - 21
Elian Kraja's avatar
Elian Kraja committed
    CmConnNotification.cmIf:
            description: ''
            items:
              type: object
            properties:
              cmId:
                description: The Cable Modem identifier.
                type: string
                x-etsi-mec-cardinality: '1'
                x-etsi-mec-origin-type: String
              cmRegState:
                items:
                  $ref: '#/components/schemas/CmConnNotification.cmIf.cmRegState'
Elian Kraja's avatar
Elian Kraja committed
                minItems: 1
                type: array
                x-etsi-mec-cardinality: 1..N
                x-etsi-mec-origin-type: Enum
              ifIndex:
                description: The MAC Domain interface index of the CM.
                items:
                  type: string
                minItems: 1
                type: array
                x-etsi-mec-cardinality: 1..N
                x-etsi-mec-origin-type: String
            required:
            - cmId
            - ifIndex
            - cmRegState
            
    CmConnNotification:
        required:
        - notificationType
        - cmIf
        properties:
          cmIf:
            type: array
            items:
             $ref: '#/components/schemas/CmConnNotification.cmIf'
          customerPremisesInfo:
            # description': The physical location of a customer site.
            # x-etsi-mec-cardinality': 0..1
            # x-etsi-mec-origin-type': CpInfo
            $ref: '#/components/schemas/CpInfo'
          notificationType:
            description: 'Shall be set to \"CmconnNotification\".'
            type: string
            x-etsi-mec-cardinality: '1'
            x-etsi-mec-origin-type: String
          timeStamp:
            # description': Time stamp.
            # x-etsi-mec-cardinality': 0..1
            # x-etsi-mec-origin-type': TimeStamp
            $ref: '#/components/schemas/TimeStamp'
        type: object
       
        x-etsi-ref: 6.4.4
      
    CmConnSubscription.links:
          description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.
          properties:
            self:
              # description': Self referring URI. The URI shall be unique within the FAI API as it acts as an ID for the subscription.
              # x-etsi-mec-cardinality': '1'
              # x-etsi-mec-origin-type': LinkType
              $ref: '#/components/schemas/LinkType'
          required:
          - self
          type: object
          x-etsi-mec-cardinality: 0..1

    CmConnSubscription.filterCriteriaCmConn.cmIf.cmRegState:
       description: 'It indicates the CM connectivity state. Enumeration of:  1 = notReady. 2 = notSynchronized. 3 = phySynchronized. 4 = dsTopologyResolutionInProgress.5 = usParametersAcquired. 6 = rangingInProgress.7 = rangingComplete. 8 = eaeInProgress.9 = dhcpv4InProgress. 10 = dhcpv6InProgress.11 = dhcpV4Complete.12 = dhcpV6Complete.13 = todEstablished.14 = securityEstablished.15 = configFileDownloadComplete.16 = registrationInProgress.17 = registrationComplete. 18 = accessDenied. 19 =operational. 20 = bpiInit.21 =forwardingDisabled.'
       enum:
        - 1
        - 2
        - 3
        - 4
        - 5
        - 6
        - 7
        - 8
        - 9
        - 10
        - 11
        - 12
        - 13
        - 14
        - 15
        - 16
        - 17
        - 18
        - 19
        - 20
        - 21
       type: integer
       
Elian Kraja's avatar
Elian Kraja committed
    CmConnSubscription.filterCriteriaCmConn.cmIf:
                description: ''
                properties:
                  cmId:
                    description: The identifier of a Cable Modem at subscriber locations intended for use in conveying data communications on a cable data system.
                    type: string
                    x-etsi-mec-cardinality: '1'
                    x-etsi-mec-origin-type: String
                  cmRegState:
                    items:
                      $ref: '#/components/schemas/CmConnSubscription.filterCriteriaCmConn.cmIf.cmRegState'
Elian Kraja's avatar
Elian Kraja committed
                    minItems: 1
                    type: array
                    x-etsi-mec-cardinality: 1..N