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

File changed.

Preview size limit exceeded, changes collapsed.

+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