{
  "$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": "iqrfDali_Frc-response",
    "format": "jsonschema",
    "version": "1-0-0"
  },
  "type": "object",
  "required": [
    "mType",
    "data"
  ],
  "additionalProperties": false,
  "properties": {
    "mType": {
      "type": "string",
      "description": "Standard peripheral DALI - FRC response.",
      "enum": [
        "iqrfDali_Frc"
      ]
    },
    "data": {
      "type": "object",
      "required": [
        "msgId",
        "rsp",
        "status"
      ],
      "additionalProperties": false,
      "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",
          "required": [
            "nAdr",
            "hwpId",
            "rCode",
            "dpaVal"
          ],
          "additionalProperties": false,
          "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",
              "required": [
                "command",
                "answers"
              ],
              "additionalProperties": false,
              "properties": {
                "command": {
                  "title": "DALI command",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 65535
                },
                "answers": {
                  "type": "array",
                  "description": "Array of objects for every DALI answer. Object array index represent the node address (or index in case selectedNodes parameter was used). The object has the same fields as object at the return object of iqrf.DALI.SendCommands_Response.",
                  "items": {
                    "oneOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "object",
                        "title": "Regular format",
                        "required": [
                          "status",
                          "value"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "status": {
                            "type": "integer",
                            "description": "DALI status: See IQRF DALI standard for details.",
                            "minimum": 0,
                            "maximum": 255
                          },
                          "value": {
                            "type": "integer",
                            "description": "DALI value: See IQRF DALI standard for details.",
                            "minimum": 0,
                            "maximum": 255
                          }
                        }
                      },
                      {
                        "type": "object",
                        "title": "Extended format",
                        "required": [
                          "nAdr",
                          "answer"
                        ],
                        "additionalProperties": false,
                        "properties": {
                          "nAdr": {
                            "type": "integer",
                            "description": "Node address."
                          },
                          "mid": {
                            "description": "Node module ID.",
                            "oneOf": [
                              { "type": "integer" },
                              { "type": "null" }
                            ]
                          },
                          "hwpid": {
                            "description": "Node hardware profile ID.",
                            "oneOf": [
                              { "type": "integer" },
                              { "type": "null" }
                            ]
                          },
                          "metaData": {
                            "oneOf": [
                                {"type": "object"},
                                {"type": "null"}
                            ],
                            "description": "Device metedata"
                          },
                          "answer": {
                            "oneOf": [
                              {
                                "type": "null"
                              },
                              {
                                "type": "object",
                                "required": [
                                  "status",
                                  "value"
                                ],
                                "additionalProperties": false,
                                "properties": {
                                  "status": {
                                    "type": "integer",
                                    "description": "DALI status: See IQRF DALI standard for details.",
                                    "minimum": 0,
                                    "maximum": 255
                                  },
                                  "value": {
                                    "type": "integer",
                                    "description": "DALI value: See IQRF DALI standard for details.",
                                    "minimum": 0,
                                    "maximum": 255
                                  }
                                }
                              }
                            ]
                          }
                        }
                      }
                    ]
                  }
                },
                "selectedNodes": {
									"description": "Array of network device addresses requested to execute FRC command.",
									"type": "array",
									"additionalItems": false,
									"uniqueItems": true,
									"minItems": 1,
									"maxItems": 239,
									"items": {
										"type": "integer",
										"minimum": 1,
										"maximum": 239
									}
								}
              }
            },
            "errorStr": {
              "type": "string",
              "description": "Error description from JS drivers."
            }
          }
        },
        "raw": {
          "type": "array",
          "description": "Returns array of objects req-cnf-rsp, see its description.",
          "items": {
            "type": "object",
            "required": [
              "request",
              "requestTs",
              "confirmation",
              "confirmationTs",
              "response",
              "responseTs"
            ],
            "additionalProperties": false,
            "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"
              }
            }
          }
        },
        "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."
        }
      }
    }
  }
}
