{
    "$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": "iqrfEmbedCoordinator_AuthorizeBond-request",
        "format": "jsonschema",
        "version": "1-0-0"
    },
    "type": "object",
    "required": [
        "mType",
        "data"
    ],
    "additionalProperties": false,
    "properties": {
        "mType": {
            "type": "string",
            "description": "Embedded peripheral Coordinator - Authorize Bond request.",
            "enum": ["iqrfEmbedCoordinator_AuthorizeBond"]
        },
        "data": {
            "type": "object",
            "required": [
                "msgId",
                "req"
            ],
            "additionalProperties": false,
            "properties": {
                "msgId": {
                    "type": "string",
                    "description": "Message identification for binding request with response."
                },
                "req": {
                    "type": "object",
                    "required": [
                        "nAdr",
                        "param"
                    ],
                    "additionalProperties": false,
                    "properties": {
                        "nAdr": {
                            "type": "integer",
                            "description": "Network device address."
                        },
                        "hwpId": {
                            "type": "integer",
                            "description": "Hardware profile identification."
                        },
                        "param": {
                            "oneOf": [
                                {
                                    "type": "object",
                                    "required": [
                                        "reqAddr",
                                        "mid"
                                    ],
                                    "additionalProperties": false,
                                    "properties": {
                                        "reqAddr": {"$ref": "#/$defs/reqAddr"},
                                        "mid": {"$ref": "#/$defs/mid"}
                                    }
                                },
                                {
                                    "type": "object",
                                    "required": [
                                        "nodes"
                                    ],
                                    "additionalProperties": false,
                                    "properties": {
                                        "nodes": {
                                            "type": "array",
                                            "additionalItems": false,
                                            "minItems": 1,
                                            "items": {
                                                "type": "object",
                                                "required": [
                                                    "reqAddr",
                                                    "mid"
                                                ],
                                                "additionalProperties": false,
                                                "properties": {
                                                    "reqAddr": {"$ref": "#/$defs/reqAddr"},
                                                    "mid": {"$ref": "#/$defs/mid"}
                                                }
                                            }
                                        }
                                    }
                                }
                            ]
                        }
                    }
                },
                "timeout": {
                    "type": "integer",
                    "description": "Timeout to wait for IQRF DPA response."
                },
                "returnVerbose": {
                    "type": "boolean",
                    "description": "Flag that includes additional parameters in the response."
                }
            }
        }
    },
    "$defs": {
        "reqAddr": {
            "title": "Request address",
            "description": "0 - first free address, 1-239 - specific addresses",
            "type": "integer",
            "minimum": 0,
            "maximum": 239
        },
        "mid": {
            "title": "Module ID",
            "description": "Module ID of the node to be authorized.",
            "type": "integer",
            "minimum": 0
        }
    }
}
