{
    "type": "object",
    "required": [
      "customerPremisesInfo",
      "cmId"
    ],
    "properties": {
      "timeStamp": {
        "properties": {
          "nanoSeconds": {
            "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
            "format": "Uint32",
            "type": "integer",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "Uint32"
          },
          "seconds": {
            "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.",
            "format": "Uint32",
            "type": "integer",
            "x-etsi-mec-cardinality": "1",
            "x-etsi-mec-origin-type": "Uint32"
          }
        },
        "required": [
          "seconds",
          "nanoSeconds"
        ],
        "type": "object",
        "x-etsi-ref": "6.5.2"
      },
      "customerPremisesInfo": {
        "properties": {
          "latitude": {
            "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",
            "format": "Float",
            "type": "number",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "Float"
          },
          "postalCode": {
            "description": "Postal code for the location",
            "type": "string",
            "x-etsi-mec-cardinality": "0..1",
            "x-etsi-mec-origin-type": "String"
          }
        },
        "type": "object",
        "x-etsi-ref": "6.5.3"
      },
      "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": {
        "description": "It provides CM connectivity status information of the CM.",
        "type": "object",
        "required": [
          "ifIndex",
          "cmRegState",
          "resets",
          "lostSyncs",
          "invalidRegRsps",
          "energyMgt1x1OperStatus",
          "emDlsOperStatus"
        ],
        "properties": {
          "ifIndex": {
            "description": "It denotes the MAC Domain interface index of the CM.",
            "type": "string"
          },
          "cmRegState": {
            "type": "integer",
            "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,
              3,
              4,
              5,
              6,
              7,
              8,
              9,
              10,
              11,
              12,
              13,
              14,
              15,
              16,
              17,
              18,
              19,
              20,
              21,
              22,
              23
            ]
          },
          "resets": {
            "description": "It denotes the number of times the CM reset or initialized this interface.",
            "type": "integer"
          },
          "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"
          },
          "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"
          }
        }
      },
      "cmDpvStats": {
        "required": [
          "ifIndex",
          "lastMeasLatency",
          "lastMeasTime",
          "minLatency",
          "maxLatency",
          "avgLatency",
          "numMeas"
        ],
        "properties": {
          "ifIndex": {
            "description": "It represents the interface Index of the Downstream Interface where the measurements are taken.",
            "type": "string"
          },
          "lastMeasLatency": {
            "description": "The last latency measurement",
            "type": "integer"
          },
          "lastMeasTime": {
            "properties": {
              "nanoSeconds": {
                "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
                "format": "Uint32",
                "type": "integer",
                "x-etsi-mec-cardinality": "1",
                "x-etsi-mec-origin-type": "Uint32"
              },
              "seconds": {
                "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.",
                "format": "Uint32",
                "type": "integer",
                "x-etsi-mec-cardinality": "1",
                "x-etsi-mec-origin-type": "Uint32"
              }
            },
            "required": [
              "seconds",
              "nanoSeconds"
            ],
            "type": "object",
            "x-etsi-ref": "6.5.2"
          },
          "minLatency": {
            "description": "The minimum latency measurement.",
            "type": "integer"
          },
          "maxLatency": {
            "description": "The maximum latency measurement.",
            "type": "integer"
          },
          "avgLatency": {
            "description": "The average latency measurement.",
            "type": "integer"
          },
          "numMeas": {
            "description": "The number of latency measurements made.",
            "type": "integer"
          }
        }
      },
      "serviceFlowStats": {
        "type": "object",
        "required": [
          "ifIndex",
          "serviceFlowInfo"
        ],
        "properties": {
          "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": {
              "type": "object",
              "required": [
                "serviceFlowId",
                "description",
                "timeCreated",
                "timeActive",
                "policedDropPkts",
                "policedDelayPkts",
                "aqmDroppedPkts"
              ],
              "properties": {
                "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.",
                  "properties": {
                    "nanoSeconds": {
                      "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.",
                      "format": "Uint32",
                      "type": "integer",
                      "x-etsi-mec-cardinality": "1",
                      "x-etsi-mec-origin-type": "Uint32"
                    },
                    "seconds": {
                      "description": "The seconds part of the time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC.",
                      "format": "Uint32",
                      "type": "integer",
                      "x-etsi-mec-cardinality": "1",
                      "x-etsi-mec-origin-type": "Uint32"
                    }
                  },
                  "required": [
                    "seconds",
                    "nanoSeconds"
                  ],
                  "type": "object",
                  "x-etsi-ref": "6.5.2"
                },
                "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"
                }
              }
            }
          }
        }
      }
    },
    "x-etsi-ref": "6.2.4"
  }