{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "description": "",
    "type": "object",
    "properties": {
        "meta": {
            "type": "object",
            "properties": {
                "inputFileType": {
                    "type": "string",
                    "minLength": 1
                },
                "inputFileVersion": {
                    "type": "string",
                    "minLength": 1
                },
                "targetMachine": {
                    "type": "string",
                    "minLength": 1
                },
                "programName": {
                    "type": "string",
                    "minLength": 1
                },
                "programVersion": {
                    "type": "string",
                    "minLength": 1
                }
            },
            "required": [
                "inputFileType",
                "inputFileVersion"
            ]
        },
        "networkType":{
            "type": "string",
            "description": "Current only support 'OrientedObjectDetection'"
        },
        "classList": {
            "type": "object",
            "description": "[Deprecated] Please rename to 'classes'"
        },
        "thresholdList": {
            "type": "object",
            "description": "[Deprecated] Please rename to 'thresholds'"
        },
        "classes": {
            "type": "object",
            "description": "Key: Index as string type, Value: Class name"
        },
        "thresholds": {
            "type": "object",
            "description": "Key: Class Name, Value: <0-1 float> threshold value between 0 and 1"
        },
        "resizedImageShape": {
            "type": "object",
            "properties": {
                "height": {
                    "type": "number"
                },
                "width": {
                    "type": "number"
                }
            },
            "required": [
                "height",
                "width"
            ]
        },
        "normalizationMean": {
            "type": "array",
            "items": {
                "type": "number",
                "required": [],
                "properties": {}
            },
            "minItems": 3,
            "maxItems": 3
        },
        "normalizationStd": {
            "type": "array",
            "items": {
                "type": "number",
                "required": [],
                "properties": {}
            },
            "minItems": 3,
            "maxItems": 3
        },
        "provider": {
            "type": "string",
            "description": "Type of provider, currently only CPU is supported.",
            "minLength": 1,
            "enum": ["CPU","HAILO"]
        },
        "deviceIndex": {
            "description": "Index of the device to use. If the provider is CPU, this value is ignored. If the provider is GPU, this value is the index of the GPU to use.",
            "type": "number"
        },
        "spacialNMSRadius": {
            "type": "number"
        },
        "pathToNetwork": {
            "type": "string",
            "minLength": 1,
            "description": "Path to the network file. The network file must be in ONNX format and the path is relative to the description file."
        }
    },
    "required": [
        "meta",
        "networkType",
        "classes",
        "thresholds",
        "resizedImageShape",
        "normalizationMean",
        "normalizationStd",
        "provider",
        "deviceIndex",
        "spacialNMSRadius",
        "pathToNetwork"
    ]
}