MEC029 v2.2.1 - OAS v3.1

Merge request reports

Loading
+262 −277
Changes for MEC029_FAI.json: 262 added lines, 277 removed lines.
Original line number Diff line number Diff line
@@ -2,7 +2,7 @@
  "openapi": "3.1.0",
  "info": {
    "title": "ETSI GS MEC 029 Fixed Access Information API",
      "version": "2.1.1",
    "version": "2.2.1",
    "description": "ETSI GS MEC 029 Fixed Access Information API described using OpenAPI.",
    "license": {
      "name": "BSD-3-Clause",
@@ -15,8 +15,8 @@
    }
  },
  "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"
    "description": "ETSI GS MEC 029 Fixed Access Information API, v2.2.1",
    "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/029/02.02.01_60/gs_mec029v020201p.pdf"
  },
  "servers": [
    {
@@ -29,6 +29,12 @@
    },
    {
      "name": "Subscription"
    },
    {
      "name": "Cable line info"
    },
    {
      "name": "Optical network info"
    }
  ],
  "paths": {
@@ -119,10 +125,13 @@
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/FaInfo"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400"
@@ -132,15 +141,6 @@
          },
          "403": {
            "$ref": "#/components/responses/403"
            },
            "404": {
              "$ref": "#/components/responses/404"
            },
            "406": {
              "$ref": "#/components/responses/406"
            },
            "429": {
              "$ref": "#/components/responses/429"
          }
        }
      }
@@ -192,14 +192,17 @@
        ],
        "responses": {
          "200": {
              "description": "A response body containing the device information is returned",
            "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"
@@ -258,7 +261,7 @@
        ],
        "responses": {
          "200": {
              "description": "A response body containing the cable line information is returned.",
            "description": "Upon success, a response body containing the information of zero or more cable lines is returned.",
            "content": {
              "application/json": {
                "schema": {
@@ -336,7 +339,7 @@
        ],
        "responses": {
          "200": {
              "description": "A response body containing the optical network information is returned.",
            "description": "Upon success, a response body containing the information of zero or more optical networks is returned",
            "content": {
              "application/json": {
                "schema": {
@@ -385,7 +388,7 @@
              "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."
            "description": "Query parameter to filter on a specific subscription type. Permitted values onu_alarm Optical Network Unit alarm  device_abnormal_alert Device abnormal alert - cm_connectivity_state Cable Modem connectivity state - ani_alarm Access Node Interface alarm"
          }
        ],
        "responses": {
@@ -760,7 +763,6 @@
            "items": {
              "$ref": "#/components/schemas/CpInfo"
            },
              "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "CpInfo"
@@ -823,7 +825,6 @@
              "aniId"
            ],
            "description": "0 to N physical locations of the customer sites.",
              "minItems": 0,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CpInfo"
@@ -882,12 +883,20 @@
            "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.",
            "description": "URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "URI"
          },
          "requestTestNotification": {
            "description": "Shall be set to TRUE by the service consumer to request",
            "type": "boolean"
          },
          "websockNotifConfig": {
            "description": "Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.",
            "$ref": "#/components/schemas/WebsockNotifConfig"
          },
          "expiryDeadline": {
            "$ref": "#/components/schemas/TimeStamp"
          },
@@ -905,83 +914,26 @@
        "type": "object",
        "x-etsi-ref": "6.3.6"
      },
        "CableLineInfo.cmInfo.serviceFlowStats": {
          "description": "It describes statistics associated with the Service Flows in a managed device.",
          "properties": {
            "ifIndex": {
              "description": "It represents the interface index of the MAC Domain of the Service Flow",
              "type": "string",
              "x-etsi-mec-cardinality": "1",
              "x-etsi-mec-origin-type": "String"
            },
            "serviceFlowInfo": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CableLineInfo.cmInfo.serviceFlowStats.serviceFlowInfo"
              }
            }
          },
      "CableLineInfo.cmStatus": {
        "description": "It provides CM connectivity status information of the CM.",
        "type": "object",
        "required": [
          "ifIndex",
            "serviceFlowInfo"
          ]
        },
        "CableLineInfo.cmInfo.serviceFlowStats.serviceFlowInfo": {
          "description": "It represents the information of a Service Flow.",
          "cmRegState",
          "resets",
          "lostSyncs",
          "invalidRegRsps",
          "energyMgt1x1OperStatus",
          "emDlsOperStatus"
        ],
        "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"
          "ifIndex": {
            "description": "It denotes the MAC Domain interface index of the CM.",
            "type": "string"
          },
            "timeActive": {
              "description": "It indicates the number of seconds that the service flow has been active.",
          "cmRegState": {
            "type": "integer",
              "x-etsi-mec-cardinality": "1",
              "x-etsi-mec-origin-type": "Integer"
            },
            "timeCreated": {
              "$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.",
            "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. 22 = rangingInProgress. 23 = rfMuteAll.",
            "enum": [
              1,
              2,
@@ -1006,167 +958,161 @@
              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"
          "resets": {
            "description": "It denotes the number of times the CM reset or initialized this interface.",
            "type": "integer"
          },
            "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"
          "lostSyncs": {
            "description": "It denotes the number of times the CM lost synchronization with the downstream channel.",
            "type": "integer"
          },
          "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"
            "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"
          "energyMgt1x1OperStatus": {
            "description": "It indicates whether the CM is currently operating in Energy Management 1x1 Mode.",
            "type": "boolean"
          },
            "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"
          "emDlsOperStatus": {
            "description": "It indicates whether the CM is currently operating in Energy Management DLS Mode.",
            "type": "boolean"
          }
        }
      },
      "CableLineInfo.cmDpvStats": {
        "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.",
          "lastMeasLatency",
          "lastMeasTime",
          "minLatency",
          "maxLatency",
          "avgLatency",
          "numMeas"
        ],
        "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"
            "type": "string"
          },
          "lastMeasLatency": {
              "description": "The last latency measurement.",
              "type": "integer",
              "x-etsi-mec-cardinality": "1",
              "x-etsi-mec-origin-type": "Integer"
            "description": "The last latency measurement",
            "type": "integer"
          },
          "lastMeasTime": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "minLatency": {
            "description": "The minimum latency measurement.",
            "type": "integer"
          },
          "maxLatency": {
            "description": "The maximum latency measurement.",
              "type": "integer",
              "x-etsi-mec-cardinality": "1",
              "x-etsi-mec-origin-type": "Integer"
            "type": "integer"
          },
            "minLatency": {
              "description": "The minimum latency measurement.",
              "type": "integer",
              "x-etsi-mec-cardinality": "1",
              "x-etsi-mec-origin-type": "Integer"
          "avgLatency": {
            "description": "The average latency measurement.",
            "type": "integer"
          },
          "numMeas": {
            "description": "The number of latency measurements made.",
              "type": "integer",
              "x-etsi-mec-cardinality": "1",
              "x-etsi-mec-origin-type": "Integer"
            "type": "integer"
          }
        }
      },
      "CableLineInfo.serviceFlowStats.serviceFlowInfo": {
        "type": "object",
        "required": [
            "ifIndex",
            "lastMeasLatency",
            "lastMeasTime",
            "minLatency",
            "maxLatency",
            "avgLatency",
            "numMeas"
          ]
        },
        "CableLineInfo.cmInfo": {
          "description": "",
          "serviceFlowId",
          "description",
          "timeCreated",
          "timeActive",
          "policedDropPkts",
          "policedDelayPkts",
          "aqmDroppedPkts"
        ],
        "properties": {
            "cmDpvStats": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/CableLineInfo.cmInfo.cmDpvStats"
              }
          "serviceFlowId": {
            "description": "It represents an identifier assigned to a Service Flow by CMTS within a MAC Domain.",
            "type": "integer"
          },
            "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"
          "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"
          },
            "cmStatus": {
              "$ref": "#/components/schemas/CableLineInfo.cmInfo.cmStatus"
          "timeCreated": {
            "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.",
            "$ref": "#/components/schemas/TimeStamp"
          },
            "serviceFlowStats": {
          "timeActive": {
            "description": "FIt indicates the number of seconds that the service flow has been active",
            "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 1) exceeding the selected Buffer Size for the service flow; or 2) UGS packets dropped due to exceeding the Unsolicited Grant Size with a Request/Transmission policy that requires such packets to be dropped.",
            "type": "integer"
          },
          "policedDelayPkts": {
            "description": "It counts only outgoing packets delayed in order to maintain the Maximum Sustained Traffic Rate.",
            "type": "integer"
          },
          "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"
          }
        }
      },
      "CableLineInfo.serviceFlowStats": {
        "type": "object",
        "required": [
          "ifIndex",
          "serviceFlowInfo"
        ],
        "ifIndex": {
          "description": "It represents the interface index of the MAC Domain of the Service Flow.",
          "type": "string"
        },
        "serviceFlowInfo": {
          "description": "It represents the information of a Service Flow.",
          "type": "array",
          "items": {
                "$ref": "#/components/schemas/CableLineInfo.cmInfo.serviceFlowStats"
            "$ref": "#/components/schemas/CableLineInfo.serviceFlowStats.serviceFlowInfo"
          }
        }
      },
      "CableLineInfo": {
        "type": "object",
        "required": [
          "customerPremisesInfo",
          "cmId"
          ]
        },
        "CableLineInfo": {
        ],
        "properties": {
            "cmInfo": {
              "$ref": "#/components/schemas/CableLineInfo.cmInfo"
          "timeStamp": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "customerPremisesInfo": {
            "$ref": "#/components/schemas/CpInfo"
          },
            "timeStamp": {
              "$ref": "#/components/schemas/TimeStamp"
          "cmId": {
            "type": "string",
            "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."
          },
          "cmStatus": {
            "$ref": "#/components/schemas/CableLineInfo.cmStatus"
          },
          "cmDpvStats": {
            "$ref": "#/components/schemas/CableLineInfo.cmDpvStats"
          },
          "serviceFlowStats": {
            "$ref": "#/components/schemas/CableLineInfo.serviceFlowStats"
          }
        },
          "type": "object",
          "required": [
            "customerPremisesInfo",
            "cmInfo"
          ],
        "x-etsi-ref": "6.2.4"
      },
      "CmConnNotification.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.",
        "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. 22 = rangingInProgress. 23 = rfMuteAll.",
        "enum": [
          1,
          2,
@@ -1355,12 +1301,20 @@
            "$ref": "#/components/schemas/CmConnSubscription.links"
          },
          "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.",
            "description": "URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "URI"
          },
          "requestTestNotification": {
            "description": "Shall be set to TRUE by the service consumer to request",
            "type": "boolean"
          },
          "websockNotifConfig": {
            "description": "Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.",
            "$ref": "#/components/schemas/WebsockNotifConfig"
          },
          "expiryDeadline": {
            "$ref": "#/components/schemas/TimeStamp"
          },
@@ -1376,7 +1330,6 @@
        },
        "required": [
          "subscriptionType",
            "callbackReference",
          "filterCriteriaCmConn"
        ],
        "type": "object",
@@ -1386,14 +1339,14 @@
      "CpInfo": {
        "properties": {
          "latitude": {
              "description": "Latitude (DATUM=WGS84)\n-90 to 90 in decimal degree format DDD.ddd",
            "description": "Latitude (DATUM=WGS84) -90 to 90 in decimal degree format DDD.ddd",
            "format": "Float",
            "type": "number",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Float"
          },
          "longitude": {
              "description": "Longitude (DATUM=WGS84)\n-180 to 180 in decimal degree format DDD.ddd",
            "description": "Longitude (DATUM=WGS84) -180 to 180 in decimal degree format DDD.ddd",
            "format": "Float",
            "type": "number",
            "x-etsi-mec-cardinality": "0..1",
@@ -1466,7 +1419,6 @@
            "items": {
              "$ref": "#/components/schemas/deviceErrStatus"
            },
              "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "Enum"
@@ -1476,7 +1428,6 @@
            "items": {
              "type": "string"
            },
              "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "String"
@@ -1486,7 +1437,6 @@
            "items": {
              "type": "string"
            },
              "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "String"
@@ -1501,12 +1451,20 @@
            "$ref": "#/components/schemas/DevInfoSubscription.links"
          },
          "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.",
            "description": "URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "URI"
          },
          "requestTestNotification": {
            "description": "Shall be set to TRUE by the service consumer to request",
            "type": "boolean"
          },
          "websockNotifConfig": {
            "description": "Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.",
            "$ref": "#/components/schemas/WebsockNotifConfig"
          },
          "expiryDeadline": {
            "$ref": "#/components/schemas/TimeStamp"
          },
@@ -1544,10 +1502,7 @@
        "properties": {
          "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": "array",
              "items": {
                "type": "string"
              },
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          },
@@ -1558,7 +1513,7 @@
            "$ref": "#/components/schemas/DownloadDiagnostics"
          },
          "gwId": {
              "description": "Information (typically the serial number) to identify an Internet Gateway Device through which\nthe customer premises device is connected.\n\nThis value shall remain fixed over the lifetime of the device, including across firmware updates.",
            "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.",
            "items": {
              "type": "string"
            },
@@ -1618,6 +1573,7 @@
        },
        "required": [
          "gwId",
          "deviceId",
          "deviceStatus",
          "upTime",
          "iPConnectionUpTime",
@@ -1660,7 +1616,7 @@
          "downloadURI": {
            "description": "The URI for the device to perform the download on.",
            "format": "uri",
              "type": "string",
            "type": "uri",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "URI"
          },
@@ -1701,7 +1657,7 @@
          "self": {
            "description": "Self referring URI. This shall be included in the response from the FAIS. The URI shall be unique within the FAI API as it acts as an ID for the subscription.",
            "format": "uri",
              "type": "string",
            "type": "uri",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "URI"
          }
@@ -1940,7 +1896,6 @@
            "items": {
              "$ref": "#/components/schemas/CpInfo"
            },
              "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "CpInfo"
@@ -2012,7 +1967,6 @@
            "items": {
              "$ref": "#/components/schemas/OnuAlarmSubscription.alarms"
            },
              "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "Enum"
@@ -2022,13 +1976,12 @@
            "items": {
              "$ref": "#/components/schemas/CpInfo"
            },
              "minItems": 0,
            "type": "array",
            "x-etsi-mec-cardinality": "0..N",
            "x-etsi-mec-origin-type": "CpInfo"
          },
          "onuId": {
              "description": "1 to N unique identifiers for the optical network units.\nTypical 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.",
            "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.",
            "items": {
              "type": "string"
            },
@@ -2044,18 +1997,39 @@
        "type": "object",
        "x-etsi-mec-cardinality": "1"
      },
      "WebsockNotifConfig": {
        "type": "object",
        "properties": {
          "subscriptionType": {
            "description": "Set by FAIS to indicate to the service consumer the Websocket URI to be used for delivering notifications.",
            "type": "uri"
          },
          "requestWebsocketUri": {
            "description": "Set to true by the service consumer to indicate that Websocket delivery is requested.",
            "type": "boolean"
          }
        }
      },
      "OnuAlarmSubscription": {
        "properties": {
          "_links": {
            "$ref": "#/components/schemas/OnuAlarmSubscription.links"
          },
          "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.",
            "description": "URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.",
            "format": "uri",
            "type": "string",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "URI"
          },
          "requestTestNotification": {
            "description": "Shall be set to TRUE by the service consumer to request",
            "type": "boolean"
          },
          "websockNotifConfig": {
            "description": "Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.",
            "$ref": "#/components/schemas/WebsockNotifConfig"
          },
          "expiryDeadline": {
            "$ref": "#/components/schemas/TimeStamp"
          },
@@ -2071,7 +2045,6 @@
        },
        "required": [
          "subscriptionType",
            "callbackReference",
          "filterCriteriaOnuAlarm"
        ],
        "type": "object",
@@ -2120,15 +2093,24 @@
        "x-etsi-mec-cardinality": "1",
        "x-etsi-mec-origin-type": "Enum"
      },
        "PonInfo.opticalNetworkInfo": {
          "description": "",
          "items": {
            "type": "object"
      "PonInfo": {
        "properties": {
          "timeStamp": {
            "$ref": "#/components/schemas/TimeStamp"
          },
          "customerPremisesInfo": {
            "description": "The physical location of a customer site.",
            "$ref": "#/components/schemas/CpInfo",
            "minItems": 1,
          "properties": {
            "dsRate": {
              "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.dsRate"
            "type": "array",
            "x-etsi-mec-cardinality": "1..N",
            "x-etsi-mec-origin-type": "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",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
          "onuId": {
            "description": "Information to identify an Optical Network Unit.",
@@ -2136,80 +2118,50 @@
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "String"
          },
          "ponTech": {
            "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.ponTech"
          },
          "operationalState": {
            "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.operationalState"
          },
            "ponTech": {
              "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.ponTech"
          "dsRate": {
            "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.dsRate"
          },
          "usRate": {
            "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo.usRate"
          }
        },
        "required": [
          "customerPremisesInfo",
          "ponSYS_ID",
          "opticalNetworkInfo",
          "onuId",
          "ponTech",
          "operationalState",
          "dsRate",
          "usRate"
          ]
        },
        "PonInfo": {
          "properties": {
            "customerPremisesInfo": {
              "description": "The physical location of a customer site.",
              "items": {
                "$ref": "#/components/schemas/CpInfo"
              },
              "minItems": 1,
              "type": "array",
              "x-etsi-mec-cardinality": "1..N",
              "x-etsi-mec-origin-type": "CpInfo"
            },
            "opticalNetworkInfo": {
              "type": "array",
              "items": {
                "$ref": "#/components/schemas/PonInfo.opticalNetworkInfo"
              }
            },
            "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",
              "x-etsi-mec-cardinality": "1",
              "x-etsi-mec-origin-type": "String"
            },
            "timeStamp": {
              "$ref": "#/components/schemas/TimeStamp"
            }
          },
          "required": [
            "customerPremisesInfo",
            "ponSYS_ID",
            "opticalNetworkInfo"
        ],
        "type": "object",
        "x-etsi-ref": "6.2.5"
      },
      "SubscriptionLinkList.links.subscription.subscriptionType": {
          "description": "Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = ONU_ALARM. 2 = DEVICE_ABNORMAL_ALERT. 3 = CM_CONNECTIVITY_STATE.4 = ANI_ALARM.",
        "description": "Type of the subscription. The string shall be set according to the \"subscriptionType\" attribute of the associated subscription data type defined in clauses 6.3.2, 6.3.3, 6.3.4 and 6.3.6 \"OnuAlarmSubscription\" \"DevInfoSubscription\" \"CmConnSubscription\" \"AniAlarmSubscription\"",
        "enum": [
            0,
            1,
            2,
            3,
            4
          "OnuAlarmSubscription",
          "DevInfoSubscription",
          "CmConnSubscription",
          "AniAlarmSubscription\""
        ],
          "type": "integer",
        "type": "string",
        "x-etsi-mec-cardinality": "1",
        "x-etsi-mec-origin-type": "Enum"
      },
      "SubscriptionLinkList.links.subscription": {
          "description": "A link to a subscription.",
        "properties": {
          "href": {
            "description": "The URI referring to the subscription.",
            "format": "uri",
              "type": "string",
            "type": "uri",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "URI"
          },
@@ -2223,9 +2175,17 @@
        ]
      },
      "SubscriptionLinkList.links": {
          "description": "List of hyperlinks related to the resource.",
        "description": "Hyperlinks related to the resource.",
        "type": "object",
        "required": [
          "self"
        ],
        "properties": {
            "subscription": {
          "self": {
            "$ref": "#/components/schemas/LinkType"
          },
          "subscriptions": {
            "description": "The service consumer's subscriptions.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubscriptionLinkList.links.subscription"
@@ -2245,6 +2205,31 @@
        "type": "object",
        "x-etsi-ref": "6.3.5"
      },
      "TestNotification": {
        "type": "object",
        "required": [
          "notificationType",
          "_links"
        ],
        "properties": {
          "notificationType": {
            "description": "Shall be set to \"TestNotification",
            "type": "string"
          },
          "_links": {
            "description": "Hyperlink related to the resource.",
            "type": "object",
            "required": [
              "subscription"
            ],
            "properties": {
              "subscription": {
                "$ref": "#/components/schemas/LinkType"
              }
            }
          }
        }
      },
      "TimeStamp": {
        "properties": {
          "nanoSeconds": {
@@ -2399,7 +2384,7 @@
        "x-etsi-ref": "6.5.7"
      },
      "LinkType": {
          "description": "'This data type represents a type of link'",
        "description": "'URI referring to a resource'",
        "type": "object",
        "required": [
          "href"
+224 −258
Changes for MEC029_FAI.yaml: 224 added lines, 258 removed lines.
Original line number Diff line number Diff line
openapi: 3.1.0
info:
  title: "ETSI GS MEC 029 Fixed Access Information API"
  version: 2.1.1
  version: 2.2.1
  description: "ETSI GS MEC 029 Fixed Access Information API described using OpenAPI."
  license:
    name: BSD-3-Clause
@@ -11,14 +11,15 @@ info:
    email: cti_support@etsi.org
    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"
  description: "ETSI GS MEC 029 Fixed Access Information API, v2.2.1"
  url: "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/029/02.02.01_60/gs_mec029v020201p.pdf"
servers:
  - url: "https://localhost/fai/v1"
tags:
  - name: Queries
  - name: Subscription

  - name: "Cable line info"
  - name: "Optical network info"
paths:
  /queries/fa_info:
    get:
@@ -81,6 +82,8 @@ paths:
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/FaInfo"
        "400":
          $ref: "#/components/responses/400"
@@ -88,12 +91,6 @@ paths:
          $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:
@@ -129,10 +126,12 @@ paths:

      responses:
        "200":
          description: "A response body containing the device information is returned"
          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"
@@ -174,7 +173,7 @@ paths:

      responses:
        "200":
          description: "A response body containing the cable line information is returned."
          description: "Upon success, a response body containing the information of zero or more cable lines is returned."
          content:
            application/json:
              schema:
@@ -226,7 +225,7 @@ paths:

      responses:
        "200":
          description: "A response body containing the optical network information is returned."
          description: "Upon success, a response body containing the information of zero or more optical networks is returned"
          content:
            application/json:
              schema:
@@ -260,7 +259,7 @@ paths:
            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."
          description: "Query parameter to filter on a specific subscription type. Permitted values onu_alarm Optical Network Unit alarm  device_abnormal_alert Device abnormal alert - cm_connectivity_state Cable Modem connectivity state - ani_alarm Access Node Interface alarm"
      responses:
        "200":
          description: "A response body containing the list of links to requestor subscriptions is returned."
@@ -497,7 +496,6 @@ components:
          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
@@ -554,7 +552,6 @@ components:
            - onuId
            - aniId
          description: 0 to N physical locations of the customer sites.
          minItems: 0
          type: array
          items:
            $ref: "#/components/schemas/CpInfo"
@@ -600,11 +597,17 @@ components:
          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.
          description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          format: uri
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: URI
        requestTestNotification:
          description: Shall be set to TRUE by the service consumer to request
          type: boolean      
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          $ref: "#/components/schemas/WebsockNotifConfig" 
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
@@ -621,73 +624,25 @@ components:
      type: object
      x-etsi-ref: 6.3.6

    CableLineInfo.cmInfo.serviceFlowStats:
      description: "It describes statistics associated with the Service Flows in a managed device."
      properties:
        ifIndex:
          description: "It represents the interface index of the MAC Domain of the Service Flow"
          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

    CableLineInfo.cmStatus:
      description: "It provides CM connectivity status information of the CM."
      type: object
      required:
        - ifIndex
        - serviceFlowInfo

    CableLineInfo.cmInfo.serviceFlowStats.serviceFlowInfo:
      description: It represents the information of a Service Flow.
        - cmRegState
        - resets
        - lostSyncs
        - invalidRegRsps
        - energyMgt1x1OperStatus
        - emDlsOperStatus
      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.
        ifIndex:
          description: "It denotes the MAC Domain interface index of the CM."
          type: string
        cmRegState:
          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."
          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. 22 = rangingInProgress. 23 = rfMuteAll."
          enum:
          - 1
          - 2
@@ -712,144 +667,132 @@ components:
          - 21
          - 22
          - 23   
        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: 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.
          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.
        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
        energyMgt1x1OperStatus:
          description: "It indicates whether the CM is currently operating in Energy Management 1x1 Mode."
          type: boolean
        emDlsOperStatus:
          description: "It indicates whether the CM is currently operating in Energy Management DLS Mode."
          type: boolean          



    CableLineInfo.cmDpvStats:
      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.
        - lastMeasLatency
        - lastMeasTime
        - minLatency
        - maxLatency
        - avgLatency
        - numMeas
      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.
          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"
        minLatency:
          description: The minimum latency measurement.
          type: integer
        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.
        avgLatency:
          description: The average 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: ""
    CableLineInfo.serviceFlowStats.serviceFlowInfo:
      type: object
      required:
         - serviceFlowId
         - description
         - timeCreated
         - timeActive
         - policedDropPkts
         - policedDelayPkts
         - aqmDroppedPkts
      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."
          serviceFlowId:
            description: It represents an identifier assigned to a Service Flow by CMTS within a MAC Domain.
            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
          timeCreated:
            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.
            $ref: "#/components/schemas/TimeStamp"
          timeActive:
            description: FIt indicates the number of seconds that the service flow has been active
            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 1) exceeding the selected Buffer Size for the service flow; or 2) UGS packets dropped due to exceeding the Unsolicited Grant Size with a Request/Transmission policy that requires such packets to be dropped.
            type: integer
          policedDelayPkts:
            description: It counts only outgoing packets delayed in order to maintain the Maximum Sustained Traffic Rate.
            type: integer
          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

    CableLineInfo.serviceFlowStats:
      type: object
      required:
        - ifIndex
        - serviceFlowInfo
      ifIndex:
          description: It represents the interface index of the MAC Domain of the Service Flow.
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: String
        cmStatus:
          $ref: "#/components/schemas/CableLineInfo.cmInfo.cmStatus"
        serviceFlowStats:
      serviceFlowInfo:
          description: It represents the information of a Service Flow.
          type: array
          items:
            $ref: "#/components/schemas/CableLineInfo.cmInfo.serviceFlowStats"
              $ref: "#/components/schemas/CableLineInfo.serviceFlowStats.serviceFlowInfo"

    CableLineInfo:
      type: object
      required:
        - customerPremisesInfo
        - 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
        customerPremisesInfo:
          # description': The physical location of a customer site.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': CpInfo
          $ref: "#/components/schemas/CpInfo"          
        cmId:
          type: string
          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.        
        cmStatus:
          $ref: "#/components/schemas/CableLineInfo.cmStatus"
        cmDpvStats:
           $ref: "#/components/schemas/CableLineInfo.cmDpvStats"
        serviceFlowStats:
          $ref: "#/components/schemas/CableLineInfo.serviceFlowStats"
      x-etsi-ref: 6.2.4

    CmConnNotification.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."
      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. 22 = rangingInProgress. 23 = rfMuteAll."
      enum:
        - 1
        - 2
@@ -1018,13 +961,18 @@ components:
      properties:
        _links:
          $ref: "#/components/schemas/CmConnSubscription.links"

        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.
          description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          format: uri
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: URI
        requestTestNotification:
          description: Shall be set to TRUE by the service consumer to request
          type: boolean      
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          $ref: "#/components/schemas/WebsockNotifConfig" 
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
@@ -1039,7 +987,6 @@ components:
          x-etsi-mec-origin-type: String
      required:
        - subscriptionType
        - callbackReference
        - filterCriteriaCmConn
      type: object
      x-etsi-notes: "NOTE:\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."
@@ -1047,17 +994,13 @@ components:
    CpInfo:
      properties:
        latitude:
          description: "Latitude (DATUM=WGS84)

            -90 to 90 in decimal degree format DDD.ddd"
          description: "Latitude (DATUM=WGS84) -90 to 90 in decimal degree format DDD.ddd"
          format: Float
          type: number
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Float
        longitude:
          description: "Longitude (DATUM=WGS84)

            -180 to 180 in decimal degree format DDD.ddd"
          description: "Longitude (DATUM=WGS84) -180 to 180 in decimal degree format DDD.ddd"
          format: Float
          type: number
          x-etsi-mec-cardinality: 0..1
@@ -1123,7 +1066,6 @@ components:
        deviceErrStatus:
          items:
            $ref: "#/components/schemas/deviceErrStatus"
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Enum
@@ -1131,7 +1073,6 @@ components:
          description: The device identifier.
          items:
            type: string
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
@@ -1139,7 +1080,6 @@ components:
          description: The identifier of an Internet Gateway Device through which the customer premises device is connected.
          items:
            type: string
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: String
@@ -1151,11 +1091,17 @@ components:
        _links:
          $ref: "#/components/schemas/DevInfoSubscription.links"
        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.
          description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          format: uri
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: URI
        requestTestNotification:
          description: Shall be set to TRUE by the service consumer to request
          type: boolean      
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          $ref: "#/components/schemas/WebsockNotifConfig" 
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
@@ -1189,8 +1135,6 @@ components:
      properties:
        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: array
          items:
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
@@ -1203,12 +1147,7 @@ components:
          $ref: "#/components/schemas/DownloadDiagnostics"
        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."
            "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."
          items:
            type: string
          minItems: 1
@@ -1267,6 +1206,7 @@ components:
          $ref: "#/components/schemas/UploadDiagnostics"
      required:
        - gwId
        - deviceId
        - deviceStatus
        - upTime
        - iPConnectionUpTime
@@ -1306,7 +1246,7 @@ components:
        downloadURI:
          description: The URI for the device to perform the download on.
          format: uri
          type: string
          type: uri
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: URI
        eOMTime:
@@ -1349,7 +1289,7 @@ components:
        self:
          description: Self referring URI. This shall be included in the response from the FAIS. The URI shall be unique within the FAI API as it acts as an ID for the subscription.
          format: uri
          type: string
          type: uri
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: URI
      required:
@@ -1568,7 +1508,6 @@ components:
          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
@@ -1627,14 +1566,12 @@ components:
        - self
      type: object
      x-etsi-mec-cardinality: 0..1

    OnuAlarmSubscription.filterCriteriaOnuAlarm:
      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.
      properties:
        alarms:
          items:
            $ref: "#/components/schemas/OnuAlarmSubscription.alarms"
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Enum
@@ -1642,14 +1579,11 @@ components:
          description: 0 to N physical locations of the customer sites.
          items:
            $ref: "#/components/schemas/CpInfo"
          minItems: 0
          type: array
          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."
          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."
          items:
            type: string
          minItems: 1
@@ -1660,16 +1594,32 @@ components:
        - onuId
      type: object
      x-etsi-mec-cardinality: "1"

    WebsockNotifConfig:
      type: object
      properties:
        subscriptionType:
          description: Set by FAIS to indicate to the service consumer the Websocket URI to be used for delivering notifications.
          type: uri
        requestWebsocketUri:
          description: Set to true by the service consumer to indicate that Websocket delivery is requested.
          type: boolean        
    OnuAlarmSubscription:
      properties:
        _links:
          $ref: "#/components/schemas/OnuAlarmSubscription.links"
        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.
          description: URI exposed by the client on which to receive notifications via HTTP. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          format: uri
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: URI
        requestTestNotification:
          description: Shall be set to TRUE by the service consumer to request
          type: boolean      
        websockNotifConfig:
          description: Provides details to negotiate and signal the use of a Websocket connection between FAIS and the service consumer for notifications. At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to FAIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009, clause 6.12a.
          $ref: "#/components/schemas/WebsockNotifConfig" 
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
@@ -1684,7 +1634,6 @@ components:
          x-etsi-mec-origin-type: String
      required:
        - subscriptionType
        - callbackReference
        - filterCriteriaOnuAlarm
      type: object
      x-etsi-ref: 6.3.2
@@ -1724,82 +1673,72 @@ components:
      type: integer
      x-etsi-mec-cardinality: "1"
      x-etsi-mec-origin-type: Enum
    PonInfo.opticalNetworkInfo:
      description: ""
      items:
        type: object
      minItems: 1
      properties:
        dsRate:
          $ref: "#/components/schemas/PonInfo.opticalNetworkInfo.dsRate"
        onuId:
          description: Information to identify an Optical Network Unit.
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: String
        operationalState:
          $ref: "#/components/schemas/PonInfo.opticalNetworkInfo.operationalState"
        ponTech:
          $ref: "#/components/schemas/PonInfo.opticalNetworkInfo.ponTech"
        usRate:
          $ref: "#/components/schemas/PonInfo.opticalNetworkInfo.usRate"
      required:
        - onuId
        - ponTech
        - operationalState
        - dsRate
        - usRate

    PonInfo:
      properties:
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: "#/components/schemas/TimeStamp"
        customerPremisesInfo:
          description: The physical location of a customer site.
          items:
          $ref: "#/components/schemas/CpInfo"
          minItems: 1
          type: array
          x-etsi-mec-cardinality: 1..N
          x-etsi-mec-origin-type: CpInfo
        opticalNetworkInfo:
          type: array
          items:
            $ref: "#/components/schemas/PonInfo.opticalNetworkInfo"
        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
          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"
        onuId:
          description: Information to identify an Optical Network Unit.
          type: string
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: String
        ponTech:
          $ref: "#/components/schemas/PonInfo.opticalNetworkInfo.ponTech"  
        operationalState:
          $ref: "#/components/schemas/PonInfo.opticalNetworkInfo.operationalState"                  
        dsRate:
          $ref: "#/components/schemas/PonInfo.opticalNetworkInfo.dsRate"



        usRate:
          $ref: "#/components/schemas/PonInfo.opticalNetworkInfo.usRate"          
      required:
        - customerPremisesInfo
        - ponSYS_ID
        - opticalNetworkInfo
        - onuId
        - ponTech
        - operationalState
        - dsRate
        - usRate
      type: object
      x-etsi-ref: 6.2.5

    SubscriptionLinkList.links.subscription.subscriptionType:
      description: "Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = ONU_ALARM. 2 = DEVICE_ABNORMAL_ALERT. 3 = CM_CONNECTIVITY_STATE.4 = ANI_ALARM."
      description: Type of the subscription. The string shall be set according to the "subscriptionType" attribute of the associated subscription data type defined in clauses 6.3.2, 6.3.3, 6.3.4 and 6.3.6 "OnuAlarmSubscription" "DevInfoSubscription" "CmConnSubscription" "AniAlarmSubscription"
      enum:
        - 0
        - 1
        - 2
        - 3
        - 4
      type: integer
        - "OnuAlarmSubscription"
        - "DevInfoSubscription"
        - "CmConnSubscription"
        - AniAlarmSubscription"
      type: string
      x-etsi-mec-cardinality: "1"
      x-etsi-mec-origin-type: Enum


    SubscriptionLinkList.links.subscription:
      description: A link to a subscription.
      properties:
        href:
          description: The URI referring to the subscription.
          format: uri
          type: string
          type: uri
          x-etsi-mec-cardinality: "1"
          x-etsi-mec-origin-type: URI
        subscriptionType:
@@ -1809,9 +1748,15 @@ components:
        - subscriptionType

    SubscriptionLinkList.links:
      description: List of hyperlinks related to the resource.
      description: Hyperlinks related to the resource.
      type: object
      required:
        - self
      properties:
        subscription:
        self:
          $ref: "#/components/schemas/LinkType"
        subscriptions:
          description: The service consumer's subscriptions.
          type: array
          items:
            $ref: "#/components/schemas/SubscriptionLinkList.links.subscription"
@@ -1824,6 +1769,27 @@ components:
        - _links
      type: object
      x-etsi-ref: 6.3.5

    TestNotification:
      type: object
      required:
        - notificationType
        - _links
      properties:
        notificationType:
          description: Shall be set to "TestNotification
          type: string
        _links:
          description: Hyperlink related to the resource.
          type: object
          required:
            - subscription
          properties:
            subscription:
              $ref: "#/components/schemas/LinkType"

          

    TimeStamp:
      properties:
        nanoSeconds:
@@ -1977,7 +1943,7 @@ components:

    LinkType:
      description: >-
        'This data type represents a type of link'
        'URI referring to a resource'
      type: object
      required:
        - href
+1 −1
Changes for README.md: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E

## Online resources

* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/029/02.01.01_60/gs_MEC029v020101p.pdf)
* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/029/02.02.01_60/gs_MEC029v020201p.pdf)
* [Navigate the Fixed Access Information API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs029-fai-api/raw/stf606-final/MEC029_FAI.yaml)
* [Edit the Fixed Access Information API online ](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/rep/mec/gs029-fai-api/raw/stf606-final/MEC029_FAI.yaml)

Loading