summaryrefslogtreecommitdiff
path: root/data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json
diff options
context:
space:
mode:
Diffstat (limited to 'data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json')
-rw-r--r--data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json177
1 files changed, 177 insertions, 0 deletions
diff --git a/data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json b/data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json
new file mode 100644
index 0000000..5a96d2f
--- /dev/null
+++ b/data/extensions/jsr@javascriptrestrictor/fp_config/schema/groups-schema.json
@@ -0,0 +1,177 @@
+{
+ "$schema":"http://json-schema.org/draft-07/schema",
+ "definitions":{
+ "group":{
+ "type":"object",
+ "title":"Group object",
+ "description":"Object representing group and its properties.",
+ "properties":{
+ "name":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "criteria":{
+ "$ref":"#/definitions/criteria"
+ },
+ "groups":{
+ "title":"Subgroups array",
+ "description":"Array of subgroups of defined group.",
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/group"
+ }
+ }
+ },
+ "required":[
+ "name"
+ ],
+ "additionalProperties":false
+ },
+ "criteria":{
+ "type":"array",
+ "title":"Criteria array",
+ "description":"Contains criterion objects to define parent group access/weight.",
+ "if":{
+ "items":[
+ {
+ "$ref":"#/definitions/criterion_access"
+ }
+ ]
+ },
+ "then":{
+ "items":{
+ "$ref":"#/definitions/criterion_access"
+ }
+ },
+ "else":{
+ "items":{
+ "oneOf":[
+ {
+ "$ref":"#/definitions/criterion_value"
+ },
+ {
+ "$ref":"#/definitions/criterion_percentage"
+ }
+ ]
+ }
+ }
+ },
+ "criterion_value":{
+ "type":"object",
+ "title":"Value criterion",
+ "description":"Criterion based on curent weights of direct children. (children = subgroups or wrapped resources)",
+ "properties":{
+ "value":{
+ "type":"integer",
+ "minimum":1,
+ "maximum":1000
+ },
+ "weight":{
+ "type":"integer",
+ "minimum":0
+ }
+ },
+ "required":[
+ "value",
+ "weight"
+ ],
+ "additionalProperties":false
+ },
+ "criterion_percentage":{
+ "type":"object",
+ "title":"Percentage criterion",
+ "description":"Criterion based on percentage of currently gained weights (from max. obtainable) of direct children.",
+ "properties":{
+ "percentage":{
+ "type":"integer",
+ "minimum":0,
+ "maximum":100
+ },
+ "weight":{
+ "type":"integer",
+ "minimum":0
+ }
+ },
+ "required":[
+ "percentage",
+ "weight"
+ ],
+ "additionalProperties":false
+ },
+ "criterion_access":{
+ "type":"object",
+ "title":"Access criterion",
+ "description":"Criterion based on total number of accesses from direct child resources. (subgroups are ignored)",
+ "properties":{
+ "access":{
+ "type":"integer",
+ "minimum":1,
+ "maximum":1000
+ },
+ "weight":{
+ "type":"integer",
+ "minimum":0
+ }
+ },
+ "required":[
+ "access",
+ "weight"
+ ],
+ "additionalProperties":false
+ },
+ "severity_item":{
+ "type":"array",
+ "title":"Severity item",
+ "description":"Each severity item consists of weight number, severity string, and corresponding color.",
+ "items":[
+ {
+ "num_value": "integer"
+ },
+ {
+ "text_value": "string"
+ },
+ {
+ "color": "string",
+ "pattern": "^#(?:[0-9a-fA-F]{3}){1,2}$"
+ }
+ ],
+ "additionalItems": false
+ }
+ },
+ "type":"object",
+ "title":"Root group object",
+ "description":"Object representing root group and its properties.",
+ "properties":{
+ "name":{
+ "type":"string"
+ },
+ "description":{
+ "type":"string"
+ },
+ "severity":{
+ "type":"array",
+ "title":"Severity array",
+ "description":"Contains an array of severity items that represent severity thresholds.",
+ "items":{
+ "$ref":"#/definitions/severity_item"
+ }
+ },
+ "criteria":{
+ "$ref":"#/definitions/criteria"
+ },
+ "groups":{
+ "title":"Array of subgroups",
+ "description":"Array of subgroups of root group.",
+ "type":"array",
+ "items":{
+ "$ref":"#/definitions/group"
+ }
+ }
+ },
+ "required":[
+ "name"
+ ],
+ "additionalProperties":false
+} \ No newline at end of file