master
json 1,302 lines 27.6 KB
Raw
1 {
2 "$schema": "http://json-schema.org/draft-07/schema#",
3 "type": "object",
4 "title": "Netdata collector taxonomy authoring file.",
5 "additionalProperties": false,
6 "patternProperties": {
7 "^x_": {}
8 },
9 "properties": {
10 "taxonomy_version": {
11 "type": "integer",
12 "const": 1
13 },
14 "plugin_name": {
15 "type": "string",
16 "minLength": 1
17 },
18 "module_name": {
19 "type": "string",
20 "minLength": 1
21 },
22 "inline_dynamic_declarations": {
23 "$ref": "#/$defs/dynamic_declarations"
24 },
25 "taxonomy_optout": {
26 "type": "object",
27 "additionalProperties": false,
28 "patternProperties": {
29 "^x_": {}
30 },
31 "properties": {
32 "reason": {
33 "type": "string",
34 "minLength": 1
35 }
36 },
37 "required": [
38 "reason"
39 ]
40 },
41 "placements": {
42 "type": "array",
43 "items": {
44 "$ref": "#/$defs/placement"
45 },
46 "minItems": 1
47 }
48 },
49 "required": [
50 "taxonomy_version",
51 "plugin_name",
52 "module_name"
53 ],
54 "oneOf": [
55 {
56 "required": [
57 "placements"
58 ],
59 "not": {
60 "required": [
61 "taxonomy_optout"
62 ]
63 }
64 },
65 {
66 "required": [
67 "taxonomy_optout"
68 ],
69 "not": {
70 "required": [
71 "placements"
72 ]
73 }
74 }
75 ],
76 "$defs": {
77 "dynamic_declarations": {
78 "type": "object",
79 "additionalProperties": false,
80 "properties": {
81 "dynamic_context_prefixes": {
82 "type": "array",
83 "items": {
84 "$ref": "#/$defs/dynamic_context_prefix"
85 },
86 "minItems": 1
87 },
88 "dynamic_collect_plugins": {
89 "type": "array",
90 "items": {
91 "$ref": "#/$defs/dynamic_collect_plugin"
92 },
93 "minItems": 1
94 }
95 }
96 },
97 "dynamic_context_prefix": {
98 "type": "object",
99 "additionalProperties": false,
100 "properties": {
101 "prefix": {
102 "type": "string",
103 "minLength": 1
104 },
105 "reason": {
106 "type": "string",
107 "minLength": 1
108 }
109 },
110 "required": [
111 "prefix",
112 "reason"
113 ]
114 },
115 "dynamic_collect_plugin": {
116 "type": "object",
117 "additionalProperties": false,
118 "properties": {
119 "plugin": {
120 "type": "string",
121 "minLength": 1
122 },
123 "reason": {
124 "type": "string",
125 "minLength": 1
126 }
127 },
128 "required": [
129 "plugin",
130 "reason"
131 ]
132 },
133 "id": {
134 "type": "string",
135 "pattern": "^[a-z0-9][a-z0-9_.-]*$"
136 },
137 "non_empty_string": {
138 "type": "string",
139 "minLength": 1
140 },
141 "string_list": {
142 "type": "array",
143 "items": {
144 "type": "string",
145 "minLength": 1
146 },
147 "minItems": 1
148 },
149 "families": {
150 "oneOf": [
151 {
152 "type": "boolean"
153 },
154 {
155 "$ref": "#/$defs/string_list"
156 }
157 ]
158 },
159 "properties": {
160 "type": "object",
161 "additionalProperties": false,
162 "properties": {
163 "important": {
164 "type": "boolean"
165 },
166 "grouping": {
167 "type": "boolean"
168 },
169 "small": {
170 "type": "boolean"
171 },
172 "is_placeholder": {
173 "type": "boolean"
174 }
175 }
176 },
177 "layout": {
178 "type": "object",
179 "additionalProperties": false,
180 "properties": {
181 "left": {
182 "type": "number"
183 },
184 "top": {
185 "type": "number"
186 },
187 "width": {
188 "type": "number"
189 },
190 "height": {
191 "type": "number"
192 }
193 },
194 "required": [
195 "left",
196 "top",
197 "width",
198 "height"
199 ]
200 },
201 "table_sort_item": {
202 "type": "object",
203 "additionalProperties": false,
204 "properties": {
205 "id": {
206 "$ref": "#/$defs/non_empty_string"
207 },
208 "desc": {
209 "type": "boolean"
210 }
211 },
212 "required": [
213 "id",
214 "desc"
215 ]
216 },
217 "context_item": {
218 "type": "object",
219 "additionalProperties": false,
220 "properties": {
221 "value": {
222 "$ref": "#/$defs/non_empty_string"
223 },
224 "label": {
225 "$ref": "#/$defs/non_empty_string"
226 }
227 },
228 "required": [
229 "value",
230 "label"
231 ]
232 },
233 "renderer": {
234 "type": "object",
235 "additionalProperties": false,
236 "patternProperties": {
237 "^x_": {}
238 },
239 "properties": {
240 "overlays": {
241 "type": "array",
242 "items": {
243 "type": "object"
244 }
245 },
246 "url_options": {
247 "type": "object"
248 },
249 "toolbox_elements": {
250 "type": "array",
251 "items": {
252 "type": "object"
253 }
254 }
255 }
256 },
257 "labels": {
258 "type": "object",
259 "additionalProperties": {
260 "$ref": "#/$defs/non_empty_string"
261 }
262 },
263 "unresolved_reference": {
264 "type": "object",
265 "additionalProperties": false,
266 "properties": {
267 "reason": {
268 "$ref": "#/$defs/non_empty_string"
269 },
270 "owner": {
271 "$ref": "#/$defs/non_empty_string"
272 },
273 "expires": {
274 "type": "string",
275 "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
276 }
277 },
278 "required": [
279 "reason",
280 "owner",
281 "expires"
282 ]
283 },
284 "literal_context_reference": {
285 "type": "object",
286 "additionalProperties": false,
287 "properties": {
288 "context": {
289 "$ref": "#/$defs/non_empty_string"
290 },
291 "unresolved": {
292 "$ref": "#/$defs/unresolved_reference"
293 }
294 },
295 "required": [
296 "context",
297 "unresolved"
298 ]
299 },
300 "selector_context_reference": {
301 "type": "object",
302 "additionalProperties": false,
303 "properties": {
304 "context_prefix": {
305 "$ref": "#/$defs/string_list"
306 },
307 "context_prefix_exclude": {
308 "$ref": "#/$defs/string_list"
309 },
310 "collect_plugin": {
311 "$ref": "#/$defs/string_list"
312 }
313 },
314 "oneOf": [
315 {
316 "required": [
317 "context_prefix"
318 ]
319 },
320 {
321 "required": [
322 "collect_plugin"
323 ]
324 }
325 ]
326 },
327 "context_reference": {
328 "oneOf": [
329 {
330 "$ref": "#/$defs/non_empty_string"
331 },
332 {
333 "$ref": "#/$defs/literal_context_reference"
334 },
335 {
336 "$ref": "#/$defs/selector_context_reference"
337 }
338 ]
339 },
340 "context_references": {
341 "type": "array",
342 "items": {
343 "$ref": "#/$defs/context_reference"
344 },
345 "minItems": 1
346 },
347 "single_node": {
348 "type": "object",
349 "additionalProperties": false,
350 "patternProperties": {
351 "^x_": {}
352 },
353 "properties": {
354 "title": {
355 "$ref": "#/$defs/non_empty_string"
356 },
357 "short_name": {
358 "$ref": "#/$defs/non_empty_string"
359 },
360 "icon": {
361 "type": "string",
362 "pattern": "^[a-zA-Z0-9_.-]+$"
363 },
364 "priority": {
365 "type": "integer"
366 },
367 "families": {
368 "$ref": "#/$defs/families"
369 },
370 "tooltip": {
371 "$ref": "#/$defs/non_empty_string"
372 },
373 "menu_pattern": {
374 "$ref": "#/$defs/non_empty_string"
375 },
376 "hide_sub_icon": {
377 "type": "boolean"
378 },
379 "force_visibility": {
380 "type": "boolean"
381 },
382 "fallback_icon": {
383 "type": "string",
384 "pattern": "^[a-zA-Z0-9_.-]+$"
385 },
386 "include_grand_parents": {
387 "type": "boolean"
388 },
389 "properties": {
390 "$ref": "#/$defs/properties"
391 },
392 "section_filters": {
393 "type": "object"
394 },
395 "dyncfg": {
396 "type": "object"
397 },
398 "contexts": {
399 "$ref": "#/$defs/context_references"
400 },
401 "context_prefix": {
402 "$ref": "#/$defs/string_list"
403 },
404 "context_prefix_exclude": {
405 "$ref": "#/$defs/string_list"
406 },
407 "collect_plugin": {
408 "$ref": "#/$defs/string_list"
409 },
410 "chart_library": {
411 "$ref": "#/$defs/chart_library"
412 },
413 "group_by": {
414 "$ref": "#/$defs/string_list"
415 },
416 "group_by_label": {
417 "$ref": "#/$defs/string_list"
418 },
419 "aggregation_method": {
420 "type": "string",
421 "enum": [
422 "avg",
423 "max",
424 "min",
425 "sum"
426 ]
427 },
428 "selected_dimensions": {
429 "$ref": "#/$defs/string_list"
430 },
431 "dimensions_sort": {
432 "$ref": "#/$defs/non_empty_string"
433 },
434 "colors": {
435 "$ref": "#/$defs/string_list"
436 },
437 "layout": {
438 "$ref": "#/$defs/layout"
439 },
440 "table_columns": {
441 "$ref": "#/$defs/string_list"
442 },
443 "table_sort_by": {
444 "type": "array",
445 "items": {
446 "$ref": "#/$defs/table_sort_item"
447 },
448 "minItems": 1
449 },
450 "labels": {
451 "$ref": "#/$defs/labels"
452 },
453 "value_range": {
454 "type": "array",
455 "items": {
456 "type": [
457 "number",
458 "null"
459 ]
460 },
461 "minItems": 1
462 },
463 "eliminate_zero_dimensions": {
464 "type": "boolean"
465 },
466 "context_items": {
467 "type": "array",
468 "items": {
469 "$ref": "#/$defs/context_item"
470 },
471 "minItems": 1
472 },
473 "post_group_by": {
474 "$ref": "#/$defs/string_list"
475 },
476 "show_post_aggregations": {
477 "type": "boolean"
478 },
479 "grouping_method": {
480 "$ref": "#/$defs/non_empty_string"
481 },
482 "sparkline": {
483 "type": "boolean"
484 },
485 "renderer": {
486 "$ref": "#/$defs/renderer"
487 }
488 }
489 },
490 "chart_library": {
491 "type": "string",
492 "enum": [
493 "bars",
494 "d3pie",
495 "dygraph",
496 "easypiechart",
497 "gauge",
498 "groupBoxes",
499 "number",
500 "table"
501 ]
502 },
503 "placement": {
504 "type": "object",
505 "additionalProperties": false,
506 "patternProperties": {
507 "^x_": {}
508 },
509 "properties": {
510 "id": {
511 "$ref": "#/$defs/id"
512 },
513 "section_id": {
514 "$ref": "#/$defs/id"
515 },
516 "title": {
517 "$ref": "#/$defs/non_empty_string"
518 },
519 "short_name": {
520 "$ref": "#/$defs/non_empty_string"
521 },
522 "icon": {
523 "type": "string",
524 "pattern": "^[a-zA-Z0-9_.-]+$"
525 },
526 "priority": {
527 "type": "integer"
528 },
529 "families": {
530 "$ref": "#/$defs/families"
531 },
532 "tooltip": {
533 "$ref": "#/$defs/non_empty_string"
534 },
535 "menu_pattern": {
536 "$ref": "#/$defs/non_empty_string"
537 },
538 "hide_sub_icon": {
539 "type": "boolean"
540 },
541 "force_visibility": {
542 "type": "boolean"
543 },
544 "fallback_icon": {
545 "type": "string",
546 "pattern": "^[a-zA-Z0-9_.-]+$"
547 },
548 "include_grand_parents": {
549 "type": "boolean"
550 },
551 "properties": {
552 "$ref": "#/$defs/properties"
553 },
554 "items": {
555 "type": "array",
556 "items": {
557 "$ref": "#/$defs/structural_item"
558 },
559 "minItems": 1
560 },
561 "single_node": {
562 "$ref": "#/$defs/single_node"
563 }
564 },
565 "required": [
566 "id",
567 "section_id",
568 "title",
569 "items"
570 ]
571 },
572 "structural_item": {
573 "oneOf": [
574 {
575 "$ref": "#/$defs/non_empty_string"
576 },
577 {
578 "$ref": "#/$defs/owned_context"
579 },
580 {
581 "$ref": "#/$defs/group"
582 },
583 {
584 "$ref": "#/$defs/flatten"
585 },
586 {
587 "$ref": "#/$defs/selector"
588 },
589 {
590 "$ref": "#/$defs/context_widget"
591 },
592 {
593 "$ref": "#/$defs/grid"
594 },
595 {
596 "$ref": "#/$defs/first_available"
597 },
598 {
599 "$ref": "#/$defs/view_switch"
600 }
601 ]
602 },
603 "non_flatten_structural_item": {
604 "oneOf": [
605 {
606 "$ref": "#/$defs/non_empty_string"
607 },
608 {
609 "$ref": "#/$defs/owned_context"
610 },
611 {
612 "$ref": "#/$defs/group"
613 },
614 {
615 "$ref": "#/$defs/selector"
616 },
617 {
618 "$ref": "#/$defs/context_widget"
619 },
620 {
621 "$ref": "#/$defs/grid"
622 },
623 {
624 "$ref": "#/$defs/first_available"
625 },
626 {
627 "$ref": "#/$defs/view_switch"
628 }
629 ]
630 },
631 "grid_item": {
632 "oneOf": [
633 {
634 "$ref": "#/$defs/context_widget"
635 },
636 {
637 "$ref": "#/$defs/first_available"
638 },
639 {
640 "$ref": "#/$defs/view_switch_display"
641 }
642 ]
643 },
644 "first_available_item": {
645 "oneOf": [
646 {
647 "$ref": "#/$defs/context_widget"
648 },
649 {
650 "$ref": "#/$defs/grid"
651 },
652 {
653 "$ref": "#/$defs/view_switch_display"
654 }
655 ]
656 },
657 "view_switch_branch_item": {
658 "oneOf": [
659 {
660 "$ref": "#/$defs/owned_context"
661 },
662 {
663 "$ref": "#/$defs/group"
664 },
665 {
666 "$ref": "#/$defs/selector"
667 },
668 {
669 "$ref": "#/$defs/context_widget"
670 },
671 {
672 "$ref": "#/$defs/grid"
673 },
674 {
675 "$ref": "#/$defs/first_available"
676 }
677 ]
678 },
679 "view_switch_display_branch_item": {
680 "oneOf": [
681 {
682 "$ref": "#/$defs/context_widget"
683 },
684 {
685 "$ref": "#/$defs/grid"
686 },
687 {
688 "$ref": "#/$defs/first_available"
689 }
690 ]
691 },
692 "owned_context": {
693 "type": "object",
694 "additionalProperties": false,
695 "patternProperties": {
696 "^x_": {}
697 },
698 "properties": {
699 "type": {
700 "const": "owned_context"
701 },
702 "context": {
703 "$ref": "#/$defs/non_empty_string"
704 },
705 "title": {
706 "$ref": "#/$defs/non_empty_string"
707 },
708 "short_name": {
709 "$ref": "#/$defs/non_empty_string"
710 },
711 "icon": {
712 "type": "string",
713 "pattern": "^[a-zA-Z0-9_.-]+$"
714 },
715 "priority": {
716 "type": "integer"
717 },
718 "families": {
719 "$ref": "#/$defs/families"
720 },
721 "tooltip": {
722 "$ref": "#/$defs/non_empty_string"
723 },
724 "menu_pattern": {
725 "$ref": "#/$defs/non_empty_string"
726 },
727 "hide_sub_icon": {
728 "type": "boolean"
729 },
730 "force_visibility": {
731 "type": "boolean"
732 },
733 "fallback_icon": {
734 "type": "string",
735 "pattern": "^[a-zA-Z0-9_.-]+$"
736 },
737 "include_grand_parents": {
738 "type": "boolean"
739 },
740 "properties": {
741 "$ref": "#/$defs/properties"
742 },
743 "single_node": {
744 "$ref": "#/$defs/single_node"
745 }
746 },
747 "required": [
748 "type",
749 "context"
750 ]
751 },
752 "group": {
753 "type": "object",
754 "additionalProperties": false,
755 "patternProperties": {
756 "^x_": {}
757 },
758 "properties": {
759 "type": {
760 "const": "group"
761 },
762 "id": {
763 "$ref": "#/$defs/id"
764 },
765 "title": {
766 "$ref": "#/$defs/non_empty_string"
767 },
768 "short_name": {
769 "$ref": "#/$defs/non_empty_string"
770 },
771 "icon": {
772 "type": "string",
773 "pattern": "^[a-zA-Z0-9_.-]+$"
774 },
775 "priority": {
776 "type": "integer"
777 },
778 "families": {
779 "$ref": "#/$defs/families"
780 },
781 "tooltip": {
782 "$ref": "#/$defs/non_empty_string"
783 },
784 "menu_pattern": {
785 "$ref": "#/$defs/non_empty_string"
786 },
787 "hide_sub_icon": {
788 "type": "boolean"
789 },
790 "force_visibility": {
791 "type": "boolean"
792 },
793 "fallback_icon": {
794 "type": "string",
795 "pattern": "^[a-zA-Z0-9_.-]+$"
796 },
797 "include_grand_parents": {
798 "type": "boolean"
799 },
800 "properties": {
801 "$ref": "#/$defs/properties"
802 },
803 "section_filters": {
804 "type": "object"
805 },
806 "dyncfg": {
807 "type": "object"
808 },
809 "items": {
810 "type": "array",
811 "items": {
812 "$ref": "#/$defs/structural_item"
813 },
814 "minItems": 1
815 },
816 "single_node": {
817 "$ref": "#/$defs/single_node"
818 }
819 },
820 "required": [
821 "type",
822 "id",
823 "title",
824 "items"
825 ]
826 },
827 "flatten": {
828 "type": "object",
829 "additionalProperties": false,
830 "patternProperties": {
831 "^x_": {}
832 },
833 "properties": {
834 "type": {
835 "const": "flatten"
836 },
837 "id": {
838 "$ref": "#/$defs/id"
839 },
840 "title": {
841 "$ref": "#/$defs/non_empty_string"
842 },
843 "short_name": {
844 "$ref": "#/$defs/non_empty_string"
845 },
846 "icon": {
847 "type": "string",
848 "pattern": "^[a-zA-Z0-9_.-]+$"
849 },
850 "priority": {
851 "type": "integer"
852 },
853 "families": {
854 "$ref": "#/$defs/families"
855 },
856 "tooltip": {
857 "$ref": "#/$defs/non_empty_string"
858 },
859 "menu_pattern": {
860 "$ref": "#/$defs/non_empty_string"
861 },
862 "hide_sub_icon": {
863 "type": "boolean"
864 },
865 "force_visibility": {
866 "type": "boolean"
867 },
868 "fallback_icon": {
869 "type": "string",
870 "pattern": "^[a-zA-Z0-9_.-]+$"
871 },
872 "include_grand_parents": {
873 "type": "boolean"
874 },
875 "properties": {
876 "$ref": "#/$defs/properties"
877 },
878 "items": {
879 "type": "array",
880 "items": {
881 "$ref": "#/$defs/non_flatten_structural_item"
882 },
883 "minItems": 1
884 },
885 "single_node": {
886 "$ref": "#/$defs/single_node"
887 }
888 },
889 "required": [
890 "type",
891 "id",
892 "title",
893 "items"
894 ]
895 },
896 "selector": {
897 "type": "object",
898 "additionalProperties": false,
899 "patternProperties": {
900 "^x_": {}
901 },
902 "properties": {
903 "type": {
904 "const": "selector"
905 },
906 "id": {
907 "$ref": "#/$defs/id"
908 },
909 "title": {
910 "$ref": "#/$defs/non_empty_string"
911 },
912 "short_name": {
913 "$ref": "#/$defs/non_empty_string"
914 },
915 "icon": {
916 "type": "string",
917 "pattern": "^[a-zA-Z0-9_.-]+$"
918 },
919 "priority": {
920 "type": "integer"
921 },
922 "families": {
923 "$ref": "#/$defs/families"
924 },
925 "tooltip": {
926 "$ref": "#/$defs/non_empty_string"
927 },
928 "menu_pattern": {
929 "$ref": "#/$defs/non_empty_string"
930 },
931 "hide_sub_icon": {
932 "type": "boolean"
933 },
934 "force_visibility": {
935 "type": "boolean"
936 },
937 "fallback_icon": {
938 "type": "string",
939 "pattern": "^[a-zA-Z0-9_.-]+$"
940 },
941 "include_grand_parents": {
942 "type": "boolean"
943 },
944 "context_prefix": {
945 "$ref": "#/$defs/string_list"
946 },
947 "context_prefix_exclude": {
948 "$ref": "#/$defs/string_list"
949 },
950 "collect_plugin": {
951 "$ref": "#/$defs/string_list"
952 },
953 "single_node": {
954 "$ref": "#/$defs/single_node"
955 }
956 },
957 "required": [
958 "type",
959 "id",
960 "title"
961 ],
962 "oneOf": [
963 {
964 "required": [
965 "context_prefix"
966 ]
967 },
968 {
969 "required": [
970 "collect_plugin"
971 ]
972 }
973 ]
974 },
975 "context_widget": {
976 "type": "object",
977 "additionalProperties": false,
978 "patternProperties": {
979 "^x_": {}
980 },
981 "properties": {
982 "type": {
983 "const": "context"
984 },
985 "id": {
986 "$ref": "#/$defs/id"
987 },
988 "title": {
989 "$ref": "#/$defs/non_empty_string"
990 },
991 "short_name": {
992 "$ref": "#/$defs/non_empty_string"
993 },
994 "icon": {
995 "type": "string",
996 "pattern": "^[a-zA-Z0-9_.-]+$"
997 },
998 "priority": {
999 "type": "integer"
1000 },
1001 "families": {
1002 "$ref": "#/$defs/families"
1003 },
1004 "tooltip": {
1005 "$ref": "#/$defs/non_empty_string"
1006 },
1007 "menu_pattern": {
1008 "$ref": "#/$defs/non_empty_string"
1009 },
1010 "hide_sub_icon": {
1011 "type": "boolean"
1012 },
1013 "force_visibility": {
1014 "type": "boolean"
1015 },
1016 "fallback_icon": {
1017 "type": "string",
1018 "pattern": "^[a-zA-Z0-9_.-]+$"
1019 },
1020 "include_grand_parents": {
1021 "type": "boolean"
1022 },
1023 "properties": {
1024 "$ref": "#/$defs/properties"
1025 },
1026 "contexts": {
1027 "$ref": "#/$defs/context_references"
1028 },
1029 "chart_library": {
1030 "$ref": "#/$defs/chart_library"
1031 },
1032 "group_by": {
1033 "$ref": "#/$defs/string_list"
1034 },
1035 "group_by_label": {
1036 "$ref": "#/$defs/string_list"
1037 },
1038 "aggregation_method": {
1039 "type": "string",
1040 "enum": [
1041 "avg",
1042 "max",
1043 "min",
1044 "sum"
1045 ]
1046 },
1047 "selected_dimensions": {
1048 "$ref": "#/$defs/string_list"
1049 },
1050 "dimensions_sort": {
1051 "$ref": "#/$defs/non_empty_string"
1052 },
1053 "colors": {
1054 "$ref": "#/$defs/string_list"
1055 },
1056 "layout": {
1057 "$ref": "#/$defs/layout"
1058 },
1059 "table_columns": {
1060 "$ref": "#/$defs/string_list"
1061 },
1062 "table_sort_by": {
1063 "type": "array",
1064 "items": {
1065 "$ref": "#/$defs/table_sort_item"
1066 },
1067 "minItems": 1
1068 },
1069 "labels": {
1070 "$ref": "#/$defs/labels"
1071 },
1072 "value_range": {
1073 "type": "array",
1074 "items": {
1075 "type": [
1076 "number",
1077 "null"
1078 ]
1079 },
1080 "minItems": 1
1081 },
1082 "eliminate_zero_dimensions": {
1083 "type": "boolean"
1084 },
1085 "context_items": {
1086 "type": "array",
1087 "items": {
1088 "$ref": "#/$defs/context_item"
1089 },
1090 "minItems": 1
1091 },
1092 "post_group_by": {
1093 "$ref": "#/$defs/string_list"
1094 },
1095 "show_post_aggregations": {
1096 "type": "boolean"
1097 },
1098 "grouping_method": {
1099 "$ref": "#/$defs/non_empty_string"
1100 },
1101 "sparkline": {
1102 "type": "boolean"
1103 },
1104 "renderer": {
1105 "$ref": "#/$defs/renderer"
1106 },
1107 "single_node": {
1108 "$ref": "#/$defs/single_node"
1109 }
1110 },
1111 "required": [
1112 "type",
1113 "contexts",
1114 "chart_library"
1115 ]
1116 },
1117 "grid": {
1118 "type": "object",
1119 "additionalProperties": false,
1120 "patternProperties": {
1121 "^x_": {}
1122 },
1123 "properties": {
1124 "type": {
1125 "const": "grid"
1126 },
1127 "id": {
1128 "$ref": "#/$defs/id"
1129 },
1130 "title": {
1131 "$ref": "#/$defs/non_empty_string"
1132 },
1133 "short_name": {
1134 "$ref": "#/$defs/non_empty_string"
1135 },
1136 "icon": {
1137 "type": "string",
1138 "pattern": "^[a-zA-Z0-9_.-]+$"
1139 },
1140 "priority": {
1141 "type": "integer"
1142 },
1143 "families": {
1144 "$ref": "#/$defs/families"
1145 },
1146 "tooltip": {
1147 "$ref": "#/$defs/non_empty_string"
1148 },
1149 "menu_pattern": {
1150 "$ref": "#/$defs/non_empty_string"
1151 },
1152 "hide_sub_icon": {
1153 "type": "boolean"
1154 },
1155 "force_visibility": {
1156 "type": "boolean"
1157 },
1158 "fallback_icon": {
1159 "type": "string",
1160 "pattern": "^[a-zA-Z0-9_.-]+$"
1161 },
1162 "include_grand_parents": {
1163 "type": "boolean"
1164 },
1165 "renderer": {
1166 "$ref": "#/$defs/renderer"
1167 },
1168 "items": {
1169 "type": "array",
1170 "items": {
1171 "$ref": "#/$defs/grid_item"
1172 },
1173 "minItems": 1
1174 },
1175 "single_node": {
1176 "$ref": "#/$defs/single_node"
1177 }
1178 },
1179 "required": [
1180 "type",
1181 "id",
1182 "items"
1183 ]
1184 },
1185 "first_available": {
1186 "type": "object",
1187 "additionalProperties": false,
1188 "patternProperties": {
1189 "^x_": {}
1190 },
1191 "properties": {
1192 "type": {
1193 "const": "first_available"
1194 },
1195 "id": {
1196 "$ref": "#/$defs/id"
1197 },
1198 "title": {
1199 "$ref": "#/$defs/non_empty_string"
1200 },
1201 "short_name": {
1202 "$ref": "#/$defs/non_empty_string"
1203 },
1204 "icon": {
1205 "type": "string",
1206 "pattern": "^[a-zA-Z0-9_.-]+$"
1207 },
1208 "priority": {
1209 "type": "integer"
1210 },
1211 "families": {
1212 "$ref": "#/$defs/families"
1213 },
1214 "tooltip": {
1215 "$ref": "#/$defs/non_empty_string"
1216 },
1217 "menu_pattern": {
1218 "$ref": "#/$defs/non_empty_string"
1219 },
1220 "hide_sub_icon": {
1221 "type": "boolean"
1222 },
1223 "force_visibility": {
1224 "type": "boolean"
1225 },
1226 "fallback_icon": {
1227 "type": "string",
1228 "pattern": "^[a-zA-Z0-9_.-]+$"
1229 },
1230 "include_grand_parents": {
1231 "type": "boolean"
1232 },
1233 "items": {
1234 "type": "array",
1235 "items": {
1236 "$ref": "#/$defs/first_available_item"
1237 },
1238 "minItems": 1
1239 },
1240 "single_node": {
1241 "$ref": "#/$defs/single_node"
1242 }
1243 },
1244 "required": [
1245 "type",
1246 "items"
1247 ]
1248 },
1249 "view_switch": {
1250 "type": "object",
1251 "additionalProperties": false,
1252 "patternProperties": {
1253 "^x_": {}
1254 },
1255 "properties": {
1256 "type": {
1257 "const": "view_switch"
1258 },
1259 "id": {
1260 "$ref": "#/$defs/id"
1261 },
1262 "multi_node": {
1263 "$ref": "#/$defs/view_switch_branch_item"
1264 },
1265 "single_node": {
1266 "$ref": "#/$defs/view_switch_branch_item"
1267 }
1268 },
1269 "required": [
1270 "type",
1271 "multi_node",
1272 "single_node"
1273 ]
1274 },
1275 "view_switch_display": {
1276 "type": "object",
1277 "additionalProperties": false,
1278 "patternProperties": {
1279 "^x_": {}
1280 },
1281 "properties": {
1282 "type": {
1283 "const": "view_switch"
1284 },
1285 "id": {
1286 "$ref": "#/$defs/id"
1287 },
1288 "multi_node": {
1289 "$ref": "#/$defs/view_switch_display_branch_item"
1290 },
1291 "single_node": {
1292 "$ref": "#/$defs/view_switch_display_branch_item"
1293 }
1294 },
1295 "required": [
1296 "type",
1297 "multi_node",
1298 "single_node"
1299 ]
1300 }
1301 }
1302 }