{
  "$schema": "https://apidocs.iqrf.org/iqrf-gateway-daemon/latest/com.iqrftech.self-desc/schema/jsonschema/1-0-0#",
  "self": {
    "vendor": "com.iqrftech.self-desc",
    "name": "iqrfSensor_Enumerate-response",
    "format": "jsonschema",
    "version": "1-0-0"
  },
  "type": "object",
  "properties": {
    "mType": {
      "type": "string",
      "description": "Message type for IQRF standard communication.",
      "enum": [
        "iqrfSensor_Enumerate"
      ]
    },
    "data": {
      "type": "object",
      "properties": {
        "msgId": {
          "type": "string",
          "description": "Message identification for binding request with response."
        },
        "timeout": {
          "type": "integer",
          "description": "Timeout to wait for IQRF DPA response."
        },
        "rsp": {
          "type": "object",
          "properties": {
            "nAdr": {
              "type": "integer",
              "description": "Network device address."
            },
            "pnum": {
              "type": "integer",
              "description": "Peripheral number."
            },
            "pcmd": {
              "type": "integer",
              "description": "Peripheral response command."
            },
            "hwpId": {
              "type": "integer",
              "description": "Hardware profile identification."
            },
            "rCode": {
              "type": "integer",
              "description": "DPA error code."
            },
            "dpaVal": {
              "type": "integer",
              "description": "DPA value."
            },
            "result": {
              "type": "object",
              "properties": {
                "sensors": {
                  "type": "array",
                  "description": "Returns array of objects for every sensor, see its description.",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "Value type as text id."
                      },
                      "type": {
                        "type": "integer",
                        "description": "Value type of the sensor (quantity)."
                      },
                      "name": {
                        "type": "string",
                        "description": "Name of the sensor (quantity)."
                      },
                      "shortName": {
                        "type": "string",
                        "description": " Short name of the sensor (quantity). Typically it is a symbol used at physics."
                      },
                      "unit": {
                        "type": "string",
                        "description": "Unit of the quantity. Dimensionless quantities has \"\"."
                      },
                      "decimalPlaces": {
                        "type": "number",
                        "description": "Number of valid decimal places."
                      },
                      "frcs": {
                        "type": "array",
                        "description": "Array of FRC commands supported by the sensor.",
                        "items": {
                          "type": "integer"
                        }
                      },
                      "breakdown": {
                        "type": "array",
                        "description": "Parsed generic types if present in device response.",
                        "items": {
                          "type": "object",
                          "properties": {
                            "type": {
                              "type": "integer",
                              "description": "Value type of the sensor (quantity)."
                            },
                            "name": {
                              "type": "string",
                              "description": "Name of the sensor (quantity)."
                            },
                            "shortName": {
                              "type": "string",
                              "description": " Short name of the sensor (quantity). Typically it is a symbol used at physics."
                            },
                            "value": {
                              "oneOf": [
                                {
                                  "type": "number"
                                },
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "array",
                                  "items": {
                                    "type": "integer"
                                  }
                                }
                              ],
                              "description": "Value of the sensor."
                            },
                            "unit": {
                              "type": "string",
                              "description": "Unit of the quantity. Dimensionless quantities has \"\"."
                            },
                            "decimalPlaces": {
                              "type": "number",
                              "description": "Number of valid decimal places."
                            },
                            "buttonValue": {
                              "type": "number",
                              "description": "Button label - this property is only present for breakdown of sensor type Action - Button."
                            },
                            "valueAsText": {
                              "type": "string",
                              "description": "String representation of value."
                            }
                          }
                        }
                      }
                    }
                  },
                  "required": [
                    "type",
                    "name",
                    "shortName",
                    "unit",
                    "decimalPlaces",
                    "frcs"
                  ]
                }
              }
            },
            "errorStr": {
              "type": "string",
              "description": "Error description from JS drivers."
            }
          },
          "required": [
            "nAdr",
            "hwpId",
            "rCode",
            "dpaVal"
          ]
        },
        "raw": {
          "type": "array",
          "description": "Returns array of objects req-cnf-rsp, see its description.",
          "items": {
            "type": "object",
            "properties": {
              "request": {
                "type": "string",
                "description": "Binary buffer with DPA request."
              },
              "requestTs": {
                "type": "string",
                "description": "YYYY-MM-DDTHH:MM:SS.SSS±HH:MM"
              },
              "confirmation": {
                "type": "string",
                "description": "Binary buffer with DPA confirmation."
              },
              "confirmationTs": {
                "type": "string",
                "description": "YYYY-MM-DDTHH:MM:SS.SSS±HH:MM"
              },
              "response": {
                "type": "string",
                "description": "Binary buffer with DPA response."
              },
              "responseTs": {
                "type": "string",
                "description": "YYYY-MM-DDTHH:MM:SS.SSS±HH:MM"
              }
            },
            "required": [
              "request",
              "requestTs",
              "confirmation",
              "confirmationTs",
              "response",
              "responseTs"
            ]
          }
        },
        "insId": {
          "type": "string",
          "description": "IQRF GW daemon instance identification."
        },
        "status": {
          "type": "integer",
          "description": "IQRF GW daemon API (general or mType) status."
        },
        "statusStr": {
          "type": "string",
          "description": "IQRF GW daemon API (general or mType) status in string form."
        }
      },
      "required": [
        "msgId",
        "rsp",
        "status"
      ]
    }
  },
  "required": [
    "mType",
    "data"
  ]
}
