{
    "$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."
                        },
                        "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."
                                                        }
                                                    }   
                                                }  
                                            }
                                        }
                                    },
                                    "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"
    ]
}
