{ "$schema": "http://json-schema.org/draft-07/schema", "definitions": { "group": { "type": "object", "properties": { "name": { "description": "The name of the group.", "type": "string" }, "regex": { "description": "A regular expression for matching paths.", "type": "string" }, "default": { "description": "Whether the group is enabled by default.", "type": "boolean" } }, "required": [ "name", "regex", "default" ], "additionalProperties": false }, "regexlist": { "description": "A list of regular expressions.", "oneOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ] }, "rule": { "type": "object", "properties": { "exclude": { "description": "A regular expression for paths to exclude.", "$ref": "#/definitions/regexlist" }, "suppress": { "description": "A regular expression for messages to suppress.", "$ref": "#/definitions/regexlist" } }, "additionalProperties": false }, "ruleList": { "type": "object", "additionalProperties": { "oneOf": [ { "$ref": "#/definitions/rule" }, { "type": "null" } ] } } }, "properties": { "groups": { "description": "A definition of all groups.", "type": "array", "items": { "$ref": "#/definitions/group" }, "minItems": 1 }, "global": { "description": "A global set of rules.", "type": "object", "additionalProperties": { "$ref": "#/definitions/rule" } }, "analyzers": { "description": "A definition of all groups.", "type": "object", "additionalProperties": { "$ref": "#/definitions/ruleList" } } }, "required": [ "groups" ], "additionalProperties": false }