{
    "configFile": {
        "fromJSON": [
            "wb-hwconf-helper",
            "confed-fromjson"
        ],
        "needReload": true,
        "path": "/etc/wb-hardware.conf",
        "service": "wb-hwconf-manager",
        "toJSON": [
            "wb-hwconf-helper",
            "confed-tojson"
        ]
    },
    "definitions": {
        "module": {
            "properties": {
                "compatible_slots": {
                    "items": {
                        "minLength": 1,
                        "type": "string"
                    },
                    "type": "array"
                },
                "description": {
                    "minLength": 1,
                    "type": "string"
                },
                "id": {
                    "minLength": 1,
                    "type": "string"
                }
            },
            "required": [
                "id",
                "description",
                "compatible_slots"
            ],
            "type": "object"
        },
        "module_none": {
            "options": {
                "collapsed": true,
                "hidden": true,
                "remove_empty_properties": true
            },
            "title": " "
        },
        "slot": {
            "defaultProperties": [
                "id",
                "name",
                "compatible",
                "module",
                "options"
            ],
            "headerTemplate": "{{self.name}}",
            "id": "slot_item",
            "options": {
                "disable_collapse": true
            },
            "properties": {
                "compatible": {
                    "minLength": 1,
                    "options": {
                        "hidden": true
                    },
                    "title": "Slot capabilities",
                    "type": "array"
                },
                "id": {
                    "minLength": 1,
                    "options": {
                        "hidden": true
                    },
                    "title": "Slot ID",
                    "type": "string"
                },
                "module": {
                    "description": "Type of the module plugged to the slot",
                    "enumSource": [
                        {
                            "source": [
                                {
                                    "title": "None",
                                    "value": ""
                                }
                            ],
                            "title": "{{item.title}}",
                            "value": "{{item.value}}"
                        },
                        {
                            "filter": "{{if watched.slot_compatible intersect item.compatible_slots}}1{{endif}}",
                            "source": "all_modules",
                            "title": "{{item.description}}",
                            "value": "{{item.id}}"
                        }
                    ],
                    "propertyOrder": 2,
                    "title": "Module type",
                    "type": "string",
                    "watch": {
                        "all_modules": "modules",
                        "slot_compatible": "slot_item.compatible"
                    }
                },
                "name": {
                    "minLength": 1,
                    "options": {
                        "hidden": true
                    },
                    "propertyOrder": 1,
                    "title": "Name",
                    "type": "string"
                },
                "options": {
                    "links": [
                        {
                            "href": "#/definitions/module_{{if all_modules.[module_type] == \"\"}}none{{else}}{{module_type}}{{endif}}",
                            "rel": "describedBy"
                        }
                    ],
                    "options": {
                        "disable_collapse": true
                    },
                    "propertyOrder": 3,
                    "title": " ",
                    "type": "object",
                    "watch": {
                        "all_modules": "modules",
                        "module_type": "slot_item.module"
                    }
                }
            },
            "required": [
                "id",
                "name",
                "compatible",
                "module"
            ],
            "title": "Slot",
            "type": "object"
        }
    },
    "description": "Lists additional hardare modules configuration",
    "limited": true,
    "properties": {
        "modules": {
            "items": {
                "$ref": "#/definitions/module"
            },
            "options": {
                "hidden": true
            },
            "type": "array"
        },
        "slots": {
            "_format": "tabs",
            "description": "Lists available extension slots",
            "items": {
                "$ref": "#/definitions/slot"
            },
            "options": {
                "disable_array_add": true,
                "disable_array_delete": true,
                "disable_array_reorder": true,
                "disable_collapse": true
            },
            "propertyOrder": 1,
            "title": "List of extension slots",
            "type": "array"
        }
    },
    "required": [
        "slots"
    ],
    "strictProps": false,
    "title": "Hardware Modules Configuration",
    "type": "object"
}