{ "$schema": "http://json-schema.org/schema#", "type": "object", "properties": { "Warning!": { "type": "string" }, "config": { "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_.\\-]+$" }, "additionalProperties": { "type": "object", "properties": { "default": {}, "type": { "type": "string" }, "section": { "type": "string" }, "group": { "type": "string" }, "order": { "type": "integer" }, "options": { "type": "object" }, "units": { "type": "string" }, "validate": { "propertyNames": { "pattern": "^value", "type": "string" } }, "when": { "properties": { "setting": { "type": "string" }, "operator": { "type": "string", "enum": [ "equals", "in" ] }, "value": { "type": ["string", "array"] } } }, "disabled": { "type": "boolean" }, "hidden": { "type": "boolean" } }, "required": ["type"], "additionalProperties": false, "oneOf": [ { "properties": { "type": {"const": "select"}, "options": { "type": "object", "minProperties": 2 } }, "required": ["options"] }, { "properties": { "type": {"const": "select-dynamic"}, "options": { "type": "object", "properties": { "allowClear": {"type": "boolean"}, "callback": {"type": "string"}, "placeholder": {"type": "string"}, "target": {"type": "string"} }, "minProperties": 1, "required": ["target"], "additionalProperties": false }, "validate": { "minProperties": 1 } }, "required": ["options", "validate"] }, { "properties": { "type": { "type": "string", "enum": [ "integer", "text", "boolean", "array", "array-sub-keyed", "password", "email", "color", "float", "graph", "snmp3auth", "ldap-groups", "ad-groups", "oxidized-maps", "executable", "directory" ] } }, "not": { "required": ["options"]} } ], "dependencies": { "group": { "required": ["order", "section"] }, "order": { "required": ["group", "section"] }, "section": { "required": ["group", "order"] } } } } }, "required": ["Warning!", "config"], "additionalProperties": false }