From 8a169630461e96d66a6841c9c8dfb8f4812aa4bd Mon Sep 17 00:00:00 2001
From: Jovana Vuleta <jovana@rcub.bg.ac.rs>
Date: Wed, 21 Sep 2022 12:10:15 +0200
Subject: [PATCH] NAT-8: JSON schemas in public read-only repository

---
 junos/.gitkeep                                |   0
 junos/policy-options/prefix-list.json         |  34 ++++
 junos/snmp/snmp-community.json                |  42 +++++
 junos/system/login-class.json                 |  38 ++++
 junos/system/login-user.json                  |  52 ++++++
 .../cfg_backup_password.json                  |  17 ++
 validated_json_schemas/cfg_backup_path.json   |  17 ++
 .../cfg_backup_username.json                  |  17 ++
 .../chassis_aggredated_ethernet_count.json    |  17 ++
 .../chassis_enhanced_ip.json                  |  17 ++
 .../chassis_graceful_switchover_inactive.json |  17 ++
 validated_json_schemas/cos_classifiers.json   |  78 +++++++++
 validated_json_schemas/cos_drop_profiles.json |  52 ++++++
 .../cos_forwarding_classes.json               |  44 +++++
 validated_json_schemas/cos_interfaces.json    |  86 ++++++++++
 validated_json_schemas/cos_rewrite_rules.json |  89 ++++++++++
 .../cos_scheduler_maps.json                   |  56 ++++++
 validated_json_schemas/cos_schedulers.json    | 104 +++++++++++
 .../family_inet_filters.json                  | 149 ++++++++++++++++
 validated_json_schemas/firewall.json          | 162 ++++++++++++++++++
 .../forwarding_options_families.json          |  35 ++++
 .../forwarding_options_flow_servers.json      |  36 ++++
 .../forwarding_options_inline_jflow.json      |  32 ++++
 .../global_snmp_communities.json              |  49 ++++++
 validated_json_schemas/po_prefix_lists.json   |  40 +++++
 validated_json_schemas/service_rpm.json       | 143 ++++++++++++++++
 .../service_version_ipfix.json                |  68 ++++++++
 validated_json_schemas/snmp_contact.json      |  17 ++
 validated_json_schemas/snmp_location.json     |  17 ++
 .../snmp_trap_groups__to_merge.json           |  71 ++++++++
 .../snmp_trap_source_address.json             |  18 ++
 .../system_domain_name.json                   |  18 ++
 .../system_domain_search.json                 |  22 +++
 .../system_login_classes.json                 |  74 ++++++++
 .../system_login_password_policies.json       |  35 ++++
 .../system_login_users.json                   |  45 +++++
 .../system_name_servers.json                  |  22 +++
 .../system_radius_servers.json                |  47 +++++
 validated_json_schemas/system_root_pwd.json   |  17 ++
 .../system_services_extension_service.json    |  62 +++++++
 .../system_syslog_files.json                  |  83 +++++++++
 .../system_syslog_servers.json                |  70 ++++++++
 .../system_syslog_source_address.json         |  18 ++
 validated_json_schemas/system_time_zone.json  |  17 ++
 44 files changed, 2144 insertions(+)
 create mode 100644 junos/.gitkeep
 create mode 100644 junos/policy-options/prefix-list.json
 create mode 100644 junos/snmp/snmp-community.json
 create mode 100644 junos/system/login-class.json
 create mode 100644 junos/system/login-user.json
 create mode 100644 validated_json_schemas/cfg_backup_password.json
 create mode 100644 validated_json_schemas/cfg_backup_path.json
 create mode 100644 validated_json_schemas/cfg_backup_username.json
 create mode 100644 validated_json_schemas/chassis_aggredated_ethernet_count.json
 create mode 100644 validated_json_schemas/chassis_enhanced_ip.json
 create mode 100644 validated_json_schemas/chassis_graceful_switchover_inactive.json
 create mode 100644 validated_json_schemas/cos_classifiers.json
 create mode 100644 validated_json_schemas/cos_drop_profiles.json
 create mode 100644 validated_json_schemas/cos_forwarding_classes.json
 create mode 100644 validated_json_schemas/cos_interfaces.json
 create mode 100644 validated_json_schemas/cos_rewrite_rules.json
 create mode 100644 validated_json_schemas/cos_scheduler_maps.json
 create mode 100644 validated_json_schemas/cos_schedulers.json
 create mode 100644 validated_json_schemas/family_inet_filters.json
 create mode 100644 validated_json_schemas/firewall.json
 create mode 100644 validated_json_schemas/forwarding_options_families.json
 create mode 100644 validated_json_schemas/forwarding_options_flow_servers.json
 create mode 100644 validated_json_schemas/forwarding_options_inline_jflow.json
 create mode 100644 validated_json_schemas/global_snmp_communities.json
 create mode 100644 validated_json_schemas/po_prefix_lists.json
 create mode 100644 validated_json_schemas/service_rpm.json
 create mode 100644 validated_json_schemas/service_version_ipfix.json
 create mode 100644 validated_json_schemas/snmp_contact.json
 create mode 100644 validated_json_schemas/snmp_location.json
 create mode 100644 validated_json_schemas/snmp_trap_groups__to_merge.json
 create mode 100644 validated_json_schemas/snmp_trap_source_address.json
 create mode 100644 validated_json_schemas/system_domain_name.json
 create mode 100644 validated_json_schemas/system_domain_search.json
 create mode 100644 validated_json_schemas/system_login_classes.json
 create mode 100644 validated_json_schemas/system_login_password_policies.json
 create mode 100644 validated_json_schemas/system_login_users.json
 create mode 100644 validated_json_schemas/system_name_servers.json
 create mode 100644 validated_json_schemas/system_radius_servers.json
 create mode 100644 validated_json_schemas/system_root_pwd.json
 create mode 100644 validated_json_schemas/system_services_extension_service.json
 create mode 100644 validated_json_schemas/system_syslog_files.json
 create mode 100644 validated_json_schemas/system_syslog_servers.json
 create mode 100644 validated_json_schemas/system_syslog_source_address.json
 create mode 100644 validated_json_schemas/system_time_zone.json

diff --git a/junos/.gitkeep b/junos/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/junos/policy-options/prefix-list.json b/junos/policy-options/prefix-list.json
new file mode 100644
index 0000000..676bb29
--- /dev/null
+++ b/junos/policy-options/prefix-list.json
@@ -0,0 +1,34 @@
+{
+  "$id": "https://example.com/arrays.schema.json",
+  "$schema": "http://json-schema.org/draft-03/schema#",
+  "description": "A representation of a prefix-list on Geant routers",
+  "type": "array",
+  "items": { "$ref": "#/$defs/prefix_list" },
+  "$defs": {
+    "prefix_list": {
+      "type": "object",
+      "required": [ "name" ],
+      "oneOf": [
+         {"required": ["prefixes"]},
+         {"required": ["apply-path"]}
+      ],
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the prefix-list."
+        },
+        "prefixes": {
+          "type": "array",
+          "items": {
+          "type": "string"
+        },
+          "description": "Prefixes of the prefix list - for now no strict IP validation"
+        },
+        "apply-path": {
+          "type": "string",
+          "description": "Apply path for dynamic prefix-lists"
+        }
+      }
+    }
+  }
+}
diff --git a/junos/snmp/snmp-community.json b/junos/snmp/snmp-community.json
new file mode 100644
index 0000000..700d225
--- /dev/null
+++ b/junos/snmp/snmp-community.json
@@ -0,0 +1,42 @@
+{
+  "$id": "https://example.com/arrays.schema.json",
+  "$schema": "http://json-schema.org/draft-03/schema#",
+  "description": "A representation of a SNMP community  on Geant routers",
+  "type": "array",
+  "items": { "$ref": "#/$defs/snmp_community" },
+  "$defs": {
+    "snmp_community": {
+      "type": "object",
+      "required": [ "name" , "authorization", "clients"],
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the community"
+        },
+        "authorization": {
+          "type": "string",
+          "description": "The name of the community",
+          "enum":["read-only"]
+        },
+        "clients": {
+          "type": "array",
+          "description": "Clients for a community",
+          "items": {
+          "type": "object",
+          "required": [ "client" , "description"],
+          "properties": {
+            "client": {
+              "type": "string",
+              "description": "The IP address" 
+            },
+            "description": {
+              "type": "string",
+              "description": "A meaningful description for a client"
+            }
+          }
+        }
+      }
+    }
+  }
+}
+} 
diff --git a/junos/system/login-class.json b/junos/system/login-class.json
new file mode 100644
index 0000000..d3f0923
--- /dev/null
+++ b/junos/system/login-class.json
@@ -0,0 +1,38 @@
+{
+  "$id": "https://example.com/arrays.schema.json",
+  "$schema": "https://json-schema.org/draft/2020-12/schema",
+  "description": "A representation of a user class on Geant routers",
+  "type": "array",
+  "items": { "$ref": "#/$defs/system_login_class" },
+  "$defs": {
+    "system_login_class": {
+      "type": "object",
+      "required": [ "name", "permissions" ],
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the user."
+        },
+        "idle-timeout": {
+          "type": "integer",
+          "description": "The timeout for a session in minutes"
+        },
+        "allow-commands": {
+          "type": "string",
+          "description": "The list of allowed commands"
+        },
+        "deny-commands": {
+          "type": "string",
+          "description": "The list of denied commands"
+        },
+        "permissions": {
+          "type": "array",
+          "description": "The permissions for a user class",
+          "items": {
+            "type":"string"
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/junos/system/login-user.json b/junos/system/login-user.json
new file mode 100644
index 0000000..39048d3
--- /dev/null
+++ b/junos/system/login-user.json
@@ -0,0 +1,52 @@
+{
+  "$id": "https://example.com/arrays.schema.json",
+  "$schema": "https://json-schema.org/draft/2020-12/schema",
+  "description": "A representation of a local user on Geant routers",
+  "type": "array",
+  "items": { "$ref": "#/$defs/system_login_user" },
+  "$defs": {
+    "system_login_user": {
+      "type": "object",
+      "required": [ "name", "class" ],
+      "properties": {
+        "name": {
+          "type": "string",
+          "description": "The name of the user."
+        },
+        "class": {
+          "type": "string",
+          "description": "The class of the user"
+        },
+        "uid": {
+          "type": "integer",
+
+          "description": "The uid of the user"
+        },
+        "authentication": {
+          "type": "object",
+          "description": "The authentication methods for a user",
+          "properties": {
+            "ssh_rsa": {
+             "type": "array",
+             "description": "The ssh-rsa keys of the user",
+             "items":{
+               "type": "string"
+                }
+              },
+            "ssh_dsa": {
+             "type": "array",
+             "description": "The ssh-dsa keys of the user",
+             "items":{
+               "type": "string"
+                }
+             },
+            "encrypted_password": {
+             "type": "string",
+             "description": "The password of the user"
+             }
+          }
+        }
+      }
+    }
+  }
+}
diff --git a/validated_json_schemas/cfg_backup_password.json b/validated_json_schemas/cfg_backup_password.json
new file mode 100644
index 0000000..8ac7104
--- /dev/null
+++ b/validated_json_schemas/cfg_backup_password.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cfg_bakcup_password"
+    ],
+    "properties": {
+        "cfg_bakcup_password": {
+            "type": "string",
+            "default": "",
+            "title": "The cfg_bakcup_password Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/cfg_backup_path.json b/validated_json_schemas/cfg_backup_path.json
new file mode 100644
index 0000000..4e549e2
--- /dev/null
+++ b/validated_json_schemas/cfg_backup_path.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cfg_backup_path"
+    ],
+    "properties": {
+        "cfg_backup_path": {
+            "type": "string",
+            "default": "",
+            "title": "The cfg_backup_path Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/cfg_backup_username.json b/validated_json_schemas/cfg_backup_username.json
new file mode 100644
index 0000000..9d3313b
--- /dev/null
+++ b/validated_json_schemas/cfg_backup_username.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cfg_backup_username"
+    ],
+    "properties": {
+        "cfg_backup_username": {
+            "type": "string",
+            "default": "",
+            "title": "The cfg_backup_username Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/chassis_aggredated_ethernet_count.json b/validated_json_schemas/chassis_aggredated_ethernet_count.json
new file mode 100644
index 0000000..d197e1c
--- /dev/null
+++ b/validated_json_schemas/chassis_aggredated_ethernet_count.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "integer",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "chassis_aggredated_ethernet_count"
+    ],
+    "properties": {
+        "chassis_aggredated_ethernet_count": {
+            "type": "integer",
+            "default": 0,
+            "title": "The chassis_aggredated_ethernet_count Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/chassis_enhanced_ip.json b/validated_json_schemas/chassis_enhanced_ip.json
new file mode 100644
index 0000000..614399e
--- /dev/null
+++ b/validated_json_schemas/chassis_enhanced_ip.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "boolean",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "chassis_enhanced_ip"
+    ],
+    "properties": {
+        "chassis_enhanced_ip": {
+            "type": "boolean",
+            "default": false,
+            "title": "The chassis_enhanced_ip Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/chassis_graceful_switchover_inactive.json b/validated_json_schemas/chassis_graceful_switchover_inactive.json
new file mode 100644
index 0000000..22cef11
--- /dev/null
+++ b/validated_json_schemas/chassis_graceful_switchover_inactive.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "boolean",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "chassis_graceful_switchover_inactive"
+    ],
+    "properties": {
+        "chassis_graceful_switchover_inactive": {
+            "type": "boolean",
+            "default": false,
+            "title": "The chassis_graceful_switchover_inactive Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/cos_classifiers.json b/validated_json_schemas/cos_classifiers.json
new file mode 100644
index 0000000..677c294
--- /dev/null
+++ b/validated_json_schemas/cos_classifiers.json
@@ -0,0 +1,78 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cos_classifiers"
+    ],
+    "properties": {
+        "cos_classifiers": {
+            "type": "array",
+            "default": [],
+            "title": "The cos_classifiers Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "type",
+                    "import",
+                    "forwarding_classes"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "title": "The name Schema"
+                    },
+                    "type": {
+                        "type": "string",
+                        "title": "The type Schema"
+                    },
+                    "import": {
+                        "type": "string",
+                        "title": "The import Schema"
+                    },
+                    "forwarding_classes": {
+                        "type": "array",
+                        "title": "The forwarding_classes Schema",
+                        "items": {
+                            "type": "object",
+                            "title": "A Schema",
+                            "required": [
+                                "name",
+                                "loss_priority",
+                                "code_points"
+                            ],
+                            "properties": {
+                                "name": {
+                                    "type": "string",
+                                    "title": "The name Schema"
+                                },
+                                "loss_priority": {
+                                    "type": "string",
+                                    "title": "The loss_priority Schema"
+                                },
+                                "code_points": {
+                                    "type": "array",
+                                    "title": "The code_points Schema",
+                                    "items": {
+                                        "anyOf": [{
+                                            "type": "string",
+                                            "title": "A Schema"
+                                        },
+                                        {
+                                            "type": "integer",
+                                            "title": "A Schema"
+                                        }]
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/cos_drop_profiles.json b/validated_json_schemas/cos_drop_profiles.json
new file mode 100644
index 0000000..d1080ed
--- /dev/null
+++ b/validated_json_schemas/cos_drop_profiles.json
@@ -0,0 +1,52 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cos_drop_profiles"
+    ],
+    "properties": {
+        "cos_drop_profiles": {
+            "type": "array",
+            "default": [],
+            "title": "The cos_drop_profiles Schema",
+            "items": {
+                "type": "object",
+                "default": {},
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "fill_levels",
+                    "drop_probabilities"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The name Schema"
+                    },
+                    "fill_levels": {
+                        "type": "array",
+                        "default": [],
+                        "title": "The fill_levels Schema",
+                        "items": {
+                            "type": "integer",
+                            "title": "A Schema"
+                        }
+                    },
+                    "drop_probabilities": {
+                        "type": "array",
+                        "default": [],
+                        "title": "The drop_probabilities Schema",
+                        "items": {
+                            "type": "integer",
+                            "title": "A Schema"
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/cos_forwarding_classes.json b/validated_json_schemas/cos_forwarding_classes.json
new file mode 100644
index 0000000..02f9ab8
--- /dev/null
+++ b/validated_json_schemas/cos_forwarding_classes.json
@@ -0,0 +1,44 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cos_forwarding_classes"
+    ],
+    "properties": {
+        "cos_forwarding_classes": {
+            "type": "array",
+            "default": [],
+            "title": "The cos_forwarding_classes Schema",
+            "items": {
+                "type": "object",
+                "default": {},
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "queue_num",
+                    "priority"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The name Schema"
+                    },
+                    "queue_num": {
+                        "type": "integer",
+                        "default": 0,
+                        "title": "The queue_num Schema"
+                    },
+                    "priority": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The priority Schema"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/cos_interfaces.json b/validated_json_schemas/cos_interfaces.json
new file mode 100644
index 0000000..fa87289
--- /dev/null
+++ b/validated_json_schemas/cos_interfaces.json
@@ -0,0 +1,86 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cos_interfaces"
+    ],
+    "properties": {
+        "cos_interfaces": {
+            "type": "array",
+            "default": [],
+            "title": "The cos_interfaces Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "regex",
+                    "scheduler_map",
+                    "classifiers",
+                    "rewrite_rules"
+                ],
+                "properties": {
+                    "regex": {
+                        "type": "string",
+                        "title": "The regex Schema"
+                    },
+                    "scheduler_map": {
+                        "type": "string",
+                        "title": "The scheduler_map Schema"
+                    },
+                    "classifiers": {
+                        "type": "array",
+                        "title": "The classifiers Schema",
+                        "items": {
+                            "type": "object",
+                            "title": "A Schema",
+                            "required": [
+                                "type",
+                                "name"
+                            ],
+                            "properties": {
+                                "type": {
+                                    "type": "string",
+                                    "title": "The type Schema"
+                                },
+                                "name": {
+                                    "type": "string",
+                                    "title": "The name Schema"
+                                }
+                            }
+                        }
+                    },
+                    "rewrite_rules": {
+                        "type": "array",
+                        "title": "The rewrite_rules Schema",
+                        "items": {
+                            "type": "object",
+                            "title": "A Schema",
+                            "required": [
+                                "type",
+                                "name",
+                                "protocol"
+                            ],
+                            "properties": {
+                                "type": {
+                                    "type": "string",
+                                    "title": "The type Schema"
+                                },
+                                "name": {
+                                    "type": "string",
+                                    "title": "The name Schema"
+                                },
+                                "protocol": {
+                                    "type": "string",
+                                    "title": "The protocol Schema"
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/cos_rewrite_rules.json b/validated_json_schemas/cos_rewrite_rules.json
new file mode 100644
index 0000000..38b574f
--- /dev/null
+++ b/validated_json_schemas/cos_rewrite_rules.json
@@ -0,0 +1,89 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cos_rewrite_rules"
+    ],
+    "properties": {
+        "cos_rewrite_rules": {
+            "type": "array",
+            "default": [],
+            "title": "The cos_rewrite_rules Schema",
+            "items": {
+                "type": "object",
+                "default": {},
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "type",
+                    "import",
+                    "forwarding_classes"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The name Schema"
+                    },
+                    "type": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The type Schema"
+                    },
+                    "import": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The import Schema"
+                    },
+                    "forwarding_classes": {
+                        "type": "array",
+                        "default": [],
+                        "title": "The forwarding_classes Schema",
+                        "items": {
+                            "type": "object",
+                            "default": {},
+                            "title": "A Schema",
+                            "required": [
+                                "name",
+                                "loss_priorities"
+                            ],
+                            "properties": {
+                                "name": {
+                                    "type": "string",
+                                    "default": "",
+                                    "title": "The name Schema"
+                                },
+                                "loss_priorities": {
+                                    "type": "array",
+                                    "default": [],
+                                    "title": "The loss_priorities Schema",
+                                    "items": {
+                                        "type": "object",
+                                        "title": "A Schema",
+                                        "required": [
+                                            "type",
+                                            "code_point"
+                                        ],
+                                        "properties": {
+                                            "type": {
+                                                "type": "string",
+                                                "title": "The type Schema"
+                                            },
+                                            "code_point": {
+                                                "type": "string",
+                                                "title": "The code_point Schema"
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/cos_scheduler_maps.json b/validated_json_schemas/cos_scheduler_maps.json
new file mode 100644
index 0000000..ee1a790
--- /dev/null
+++ b/validated_json_schemas/cos_scheduler_maps.json
@@ -0,0 +1,56 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cos_scheduler_maps"
+    ],
+    "properties": {
+        "cos_scheduler_maps": {
+            "type": "array",
+            "default": [],
+            "title": "The cos_scheduler_maps Schema",
+            "items": {
+                "type": "object",
+                "default": {},
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "mappings"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The name Schema"
+                    },
+                    "mappings": {
+                        "type": "array",
+                        "default": [],
+                        "title": "The mappings Schema",
+                        "items": {
+                            "type": "object",
+                            "title": "A Schema",
+                            "required": [
+                                "class",
+                                "scheduler"
+                            ],
+                            "properties": {
+                                "class": {
+                                    "type": "string",
+                                    "title": "The class Schema"
+                                },
+                                "scheduler": {
+                                    "type": "string",
+                                    "title": "The scheduler Schema"
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/cos_schedulers.json b/validated_json_schemas/cos_schedulers.json
new file mode 100644
index 0000000..9d4689a
--- /dev/null
+++ b/validated_json_schemas/cos_schedulers.json
@@ -0,0 +1,104 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "cos_schedulers"
+    ],
+    "properties": {
+        "cos_schedulers": {
+            "type": "array",
+            "default": [],
+            "title": "The cos_schedulers Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "transmit_rate",
+                    "buffer_size",
+                    "priority",
+                    "drop_profile_map"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "title": "The name Schema"
+                    },
+                    "transmit_rate": {
+                        "type": "object",
+                        "title": "The transmit_rate Schema",
+                        "required": [
+                            "unit",
+                            "value"
+                        ],
+                        "properties": {
+                            "unit": {
+                                "type": "string",
+                                "title": "The unit Schema"
+                            },
+                            "value": {
+                                "type": "integer",
+                                "title": "The value Schema"
+                            }
+                        }
+                    },
+                    "buffer_size": {
+                        "type": "object",
+                        "title": "The buffer_size Schema",
+                        "required": [
+                            "unit",
+                            "value"
+                        ],
+                        "properties": {
+                            "unit": {
+                                "type": "string",
+                                "title": "The unit Schema"
+                            },
+                            "value": {
+                                "type": [
+                                    "string",
+                                    "integer"
+                                ],
+                                "title": "The value Schema"
+                            }
+                        }
+                    },
+                    "priority": {
+                        "type": "string",
+                        "title": "The priority Schema"
+                    },
+                    "drop_profile_map": {
+                        "type": "object",
+                        "default": {},
+                        "title": "The drop_profile_map Schema",
+                        "required": [
+                            "loss_priority",
+                            "protocol",
+                            "drop_profile"
+                        ],
+                        "properties": {
+                            "loss_priority": {
+                                "type": "string",
+                                "default": "",
+                                "title": "The loss_priority Schema"
+                            },
+                            "protocol": {
+                                "type": "string",
+                                "default": "",
+                                "title": "The protocol Schema"
+                            },
+                            "drop_profile": {
+                                "type": "string",
+                                "default": "",
+                                "title": "The drop_profile Schema"
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/family_inet_filters.json b/validated_json_schemas/family_inet_filters.json
new file mode 100644
index 0000000..d87a0c0
--- /dev/null
+++ b/validated_json_schemas/family_inet_filters.json
@@ -0,0 +1,149 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "family_inet_filters"
+    ],
+    "properties": {
+        "family_inet_filters": {
+            "type": "array",
+            "default": [],
+            "title": "The family_inet_filters Schema",
+            "items": {
+                "type": "object",
+                "default": {},
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "terms",
+                    "interface"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The name Schema"
+                    },
+                    "terms": {
+                        "type": "array",
+                        "default": [],
+                        "title": "The terms Schema",
+                        "items": {
+                            "type": "object",
+                            "title": "A Schema",
+                            "required": [
+                                "name",
+                                "from",
+                                "then"
+                            ],
+                            "properties": {
+                                "name": {
+                                    "type": "string",
+                                    "title": "The name Schema"
+                                },
+                                "from": {
+                                    "type": "object",
+                                    "title": "The from Schema",
+                                    "required": [
+                                        "protocol",
+                                        "tcp_established",
+                                        "source_prefix_lists",
+                                        "destination_ports",
+                                        "source_ports"
+                                    ],
+                                    "properties": {
+                                        "protocol": {
+                                            "type": "string",
+                                            "title": "The protocol Schema"
+                                        },
+                                        "tcp_established": {
+                                            "type": "string",
+                                            "default": "",
+                                            "title": "The tcp_established Schema"
+                                        },
+                                        "source_prefix_lists": {
+                                            "type": "array",
+                                            "title": "The source_prefix_lists Schema",
+                                            "items": {
+                                                "type": "string",
+                                                "title": "A Schema"
+                                            }
+                                        },
+                                        "destination_ports": {
+                                            "type": "array",
+                                            "title": "The destination_ports Schema",
+                                            "items": {
+                                                "anyOf": [{
+                                                    "type": "integer",
+                                                    "title": "A Schema"
+                                                },
+                                                {
+                                                    "type": "string",
+                                                    "default": "",
+                                                    "title": "A Schema"
+                                                }]
+                                            }
+                                        },
+                                        "source_ports": {
+                                            "type": "array",
+                                            "title": "The source_ports Schema",
+                                            "items": {
+                                                "anyOf": [{
+                                                    "type": "string",
+                                                    "default": "",
+                                                    "title": "A Schema"
+                                                },
+                                                {
+                                                    "type": "integer",
+                                                    "default": 0,
+                                                    "title": "A Schema"
+                                                }]
+                                            }
+                                        }
+                                    }
+                                },
+                                "then": {
+                                    "type": "object",
+                                    "title": "The then Schema",
+                                    "required": [
+                                        "action"
+                                    ],
+                                    "properties": {
+                                        "action": {
+                                            "type": "string",
+                                            "title": "The action Schema"
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    },
+                    "interface": {
+                        "type": "object",
+                        "default": {},
+                        "title": "The interface Schema",
+                        "required": [
+                            "name",
+                            "direction"
+                        ],
+                        "properties": {
+                            "name": {
+                                "type": "string",
+                                "default": "",
+                                "title": "The name Schema"
+                            },
+                            "direction": {
+                                "type": "string",
+                                "default": "",
+                                "title": "The direction Schema"
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/firewall.json b/validated_json_schemas/firewall.json
new file mode 100644
index 0000000..ea93f44
--- /dev/null
+++ b/validated_json_schemas/firewall.json
@@ -0,0 +1,162 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [ ],
+    "properties": {
+        "firewall": {
+            "type": "object",
+            "default": {},
+            "title": "The firewall Schema",
+            "required": [
+                "inet"
+            ],
+            "properties": {
+                "inet": {
+                    "type": "object",
+                    "default": {},
+                    "title": "The inet Schema",
+                    "required": [
+                        "ROUTER_access"
+                    ],
+                    "properties": {
+                        "ROUTER_access": {
+                            "type": "object",
+                            "default": {},
+                            "title": "The ROUTER_access Schema",
+                            "required": [
+                                "terms"
+                            ],
+                            "properties": {
+                                "terms": {
+                                    "type": "array",
+                                    "default": [],
+                                    "title": "The terms Schema",
+                                    "items": {
+                                        "type": "object",
+                                        "title": "A Schema",
+                                        "required": [
+                                            "name",
+                                            "from",
+                                            "then"
+                                        ],
+                                        "properties": {
+                                            "name": {
+                                                "type": "string",
+                                                "title": "The name Schema"
+                                            },
+                                            "from": {
+                                                "type": "object",
+                                                "title": "The from Schema",
+                                                "required": [
+                                                    "protocol",
+                                                    "tcp-established",
+                                                    "source-prefix-list",
+                                                    "destination-port",
+                                                    "port",
+                                                    "icmp-type"
+                                                ],
+                                                "properties": {
+                                                    "protocol": {
+                                                        "type": "string",
+                                                        "title": "The protocol Schema"
+                                                    },
+                                                    "tcp-established": {
+                                                        "type": "null",
+                                                        "default": null,
+                                                        "title": "The tcp-established Schema"
+                                                    },
+                                                    "source-prefix-list": {
+                                                        "type": "array",
+                                                        "title": "The source-prefix-list Schema",
+                                                        "items": {
+                                                            "type": "string",
+                                                            "title": "A Schema"
+                                                        }
+                                                    },
+                                                    "destination-port": {
+                                                        "type": [
+                                                            "string",
+                                                            "array",
+                                                            "integer"
+                                                        ],
+                                                        "title": "The destination-port Schema",
+                                                        "items": {
+                                                            "type": "string",
+                                                            "title": "A Schema"
+                                                        }
+                                                    },
+                                                    "port": {
+                                                        "type": [
+                                                            "string",
+                                                            "array",
+                                                            "integer"
+                                                        ],
+                                                        "title": "The port Schema",
+                                                        "items": {
+                                                            "anyOf": [{
+                                                                "type": "integer",
+                                                                "title": "A Schema"
+                                                            },
+                                                            {
+                                                                "type": "string",
+                                                                "title": "A Schema"
+                                                            }]
+                                                        }
+                                                    },
+                                                    "icmp-type": {
+                                                        "type": "array",
+                                                        "default": [],
+                                                        "title": "The icmp-type Schema",
+                                                        "items": {
+                                                            "type": "string",
+                                                            "title": "A Schema"
+                                                        }
+                                                    }
+                                                }
+                                            },
+                                            "then": {
+                                                "type": [
+                                                    "string",
+                                                    "array"
+                                                ],
+                                                "title": "The then Schema",
+                                                "items": {
+                                                    "anyOf": [{
+                                                        "type": "object",
+                                                        "title": "A Schema",
+                                                        "required": [
+                                                            "count",
+                                                            "policer"
+                                                        ],
+                                                        "properties": {
+                                                            "count": {
+                                                                "type": "string",
+                                                                "default": "",
+                                                                "title": "The count Schema"
+                                                            },
+                                                            "policer": {
+                                                                "type": "string",
+                                                                "title": "The policer Schema"
+                                                            }
+                                                        }
+                                                    },
+                                                    {
+                                                        "type": "string",
+                                                        "title": "A Schema"
+                                                    }]
+                                                }
+                                            }
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/forwarding_options_families.json b/validated_json_schemas/forwarding_options_families.json
new file mode 100644
index 0000000..64e80a4
--- /dev/null
+++ b/validated_json_schemas/forwarding_options_families.json
@@ -0,0 +1,35 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "forwarding_options_families"
+    ],
+    "properties": {
+        "forwarding_options_families": {
+            "type": "array",
+            "default": [],
+            "title": "The forwarding_options_families Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "template"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "title": "The name Schema"
+                    },
+                    "template": {
+                        "type": "string",
+                        "title": "The template Schema"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/forwarding_options_flow_servers.json b/validated_json_schemas/forwarding_options_flow_servers.json
new file mode 100644
index 0000000..7027539
--- /dev/null
+++ b/validated_json_schemas/forwarding_options_flow_servers.json
@@ -0,0 +1,36 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "forwarding_options_flow_servers"
+    ],
+    "properties": {
+        "forwarding_options_flow_servers": {
+            "type": "array",
+            "default": [],
+            "title": "The forwarding_options_flow_servers Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "address",
+                    "port"
+                ],
+                "properties": {
+                    "address": {
+                        "type": "string",
+			"pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+                        "title": "The address Schema"
+                    },
+                    "port": {
+                        "type": "integer",
+                        "title": "The port Schema"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/forwarding_options_inline_jflow.json b/validated_json_schemas/forwarding_options_inline_jflow.json
new file mode 100644
index 0000000..a0e1694
--- /dev/null
+++ b/validated_json_schemas/forwarding_options_inline_jflow.json
@@ -0,0 +1,32 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [ ],
+    "properties": {
+        "forwarding_options_inline_jflow": {
+            "type": "object",
+	    "default": {},
+            "title": "The forwarding_options_inline_jflow Schema",
+            "required": [
+                "source_address",
+                "flow_export_rate"
+            ],
+            "properties": {
+                "source_address": {
+                    "type": "string",
+		    "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+                    "default": "",
+                    "title": "The source_address Schema"
+                },
+                "flow_export_rate": {
+                    "type": "integer",
+                    "default": 0,
+                    "title": "The flow_export_rate Schema"
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/global_snmp_communities.json b/validated_json_schemas/global_snmp_communities.json
new file mode 100644
index 0000000..8990ce7
--- /dev/null
+++ b/validated_json_schemas/global_snmp_communities.json
@@ -0,0 +1,49 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "global_snmp_communities"
+    ],
+    "properties": {
+        "global_snmp_communities": {
+            "type": "object",
+            "default": {},
+            "title": "The global_snmp_communities Schema",
+            "required": [
+                "librenms-community"
+            ],
+            "properties": {
+                "librenms-community": {
+                    "type": "object",
+                    "default": {},
+                    "title": "The librenms-community Schema",
+                    "required": [
+                        "auth",
+                        "clients"
+                    ],
+                    "properties": {
+                        "auth": {
+                            "type": "string",
+                            "default": "",
+                            "title": "The auth Schema"
+                        },
+                        "clients": {
+                            "type": "array",
+                            "default": [],
+                            "title": "The clients Schema",
+                            "items": {
+                                "type": "string",
+                                "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$",
+                                "default": "",
+                                "title": "A Schema"
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/po_prefix_lists.json b/validated_json_schemas/po_prefix_lists.json
new file mode 100644
index 0000000..d5f9fc5
--- /dev/null
+++ b/validated_json_schemas/po_prefix_lists.json
@@ -0,0 +1,40 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "po_prefix_lists"
+    ],
+    "properties": {
+        "po_prefix_lists": {
+            "type": "array",
+            "default": [],
+            "title": "The po_prefix_lists Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "name",
+                    "prefixes"
+                ],
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "title": "The name Schema"
+                    },
+                    "prefixes": {
+                        "type": "array",
+                        "title": "The prefixes Schema",
+                        "items": {
+                            "type": "string",
+                            "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$",
+                            "title": "A Schema"
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/service_rpm.json b/validated_json_schemas/service_rpm.json
new file mode 100644
index 0000000..9399b4d
--- /dev/null
+++ b/validated_json_schemas/service_rpm.json
@@ -0,0 +1,143 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [ ],
+    "properties": {
+        "service_rpm": {
+            "type": "object",
+            "default": {},
+            "title": "The service_rpm Schema",
+            "required": [
+                "traceoptions",
+                "twamp"
+            ],
+            "properties": {
+                "traceoptions": {
+                    "type": "object",
+                    "default": {},
+                    "title": "The traceoptions Schema",
+                    "required": [
+                        "filename",
+                        "filesize",
+                        "flags"
+                    ],
+                    "properties": {
+                        "filename": {
+                            "type": "string",
+                            "default": "",
+                            "title": "The filename Schema"
+                        },
+                        "filesize": {
+                            "type": "string",
+                            "default": "",
+                            "title": "The filesize Schema"
+                        },
+                        "flags": {
+                            "type": "array",
+                            "default": [],
+                            "title": "The flags Schema",
+                            "items": {
+                                "type": "string",
+                                "default": "",
+                                "title": "A Schema"
+                            }
+                        }
+                    }
+                },
+                "twamp": {
+                    "type": "object",
+                    "default": {},
+                    "title": "The twamp Schema",
+                    "required": [
+                        "server",
+                        "client_lists"
+                    ],
+                    "properties": {
+                        "server": {
+                            "type": "object",
+                            "default": {},
+                            "title": "The server Schema",
+                            "required": [
+                                "auth_mode",
+                                "max_duration",
+                                "max_sessions",
+                                "max_sessions_per_conn",
+                                "max_connections",
+                                "max_connections_per_client",
+                                "port"
+                            ],
+                            "properties": {
+                                "auth_mode": {
+                                    "type": "string",
+                                    "default": "",
+                                    "title": "The auth_mode Schema"
+                                },
+                                "max_duration": {
+                                    "type": "integer",
+                                    "default": 0,
+                                    "title": "The max_duration Schema"
+                                },
+                                "max_sessions": {
+                                    "type": "integer",
+                                    "default": 0,
+                                    "title": "The max_sessions Schema"
+                                },
+                                "max_sessions_per_conn": {
+                                    "type": "integer",
+                                    "default": 0,
+                                    "title": "The max_sessions_per_conn Schema"
+                                },
+                                "max_connections": {
+                                    "type": "integer",
+                                    "default": 0,
+                                    "title": "The max_connections Schema"
+                                },
+                                "max_connections_per_client": {
+                                    "type": "integer",
+                                    "default": 0,
+                                    "title": "The max_connections_per_client Schema"
+                                },
+                                "port": {
+                                    "type": "integer",
+                                    "default": 0,
+                                    "title": "The port Schema"
+                                }
+                            }
+                        },
+                        "client_lists": {
+                            "type": "array",
+                            "default": [],
+                            "title": "The client_lists Schema",
+                            "items": {
+                                "type": "object",
+                                "title": "A Schema",
+                                "required": [
+                                    "name",
+                                    "address"
+                                ],
+                                "properties": {
+                                    "name": {
+                                        "type": "string",
+                                        "title": "The name Schema"
+                                    },
+                                    "address": {
+                                        "type": "array",
+					"pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$",
+					"title": "The address Schema",
+                                        "items": {
+                                            "type": "string",
+                                            "title": "A Schema"
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/service_version_ipfix.json b/validated_json_schemas/service_version_ipfix.json
new file mode 100644
index 0000000..960be91
--- /dev/null
+++ b/validated_json_schemas/service_version_ipfix.json
@@ -0,0 +1,68 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [ ],
+    "properties": {
+        "service_version_ipfix": {
+            "type": "object",
+            "default": {},
+            "title": "The service_version_ipfix Schema",
+            "required": [
+                "templates"
+            ],
+            "properties": {
+                "templates": {
+                    "type": "array",
+                    "default": [],
+                    "title": "The templates Schema",
+                    "items": {
+                        "type": "object",
+                        "title": "A Schema",
+                        "required": [
+                            "proto",
+                            "flow_active_timeout",
+                            "flow_inactive_timeout",
+                            "next_hop_learning",
+                            "template_refresh_rate",
+                            "option_refresh_rate",
+                            "protocol_template"
+                        ],
+                        "properties": {
+                            "proto": {
+                                "type": "string",
+                                "title": "The proto Schema"
+                            },
+                            "flow_active_timeout": {
+                                "type": "integer",
+                                "title": "The flow_active_timeout Schema"
+                            },
+                            "flow_inactive_timeout": {
+                                "type": "integer",
+                                "title": "The flow_inactive_timeout Schema"
+                            },
+                            "next_hop_learning": {
+                                "type": "string",
+                                "title": "The next_hop_learning Schema"
+                            },
+                            "template_refresh_rate": {
+                                "type": "integer",
+                                "title": "The template_refresh_rate Schema"
+                            },
+                            "option_refresh_rate": {
+                                "type": "integer",
+                                "title": "The option_refresh_rate Schema"
+                            },
+                            "protocol_template": {
+                                "type": "string",
+                                "title": "The protocol_template Schema"
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/snmp_contact.json b/validated_json_schemas/snmp_contact.json
new file mode 100644
index 0000000..64fcca3
--- /dev/null
+++ b/validated_json_schemas/snmp_contact.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/snmp_contact.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "snmp_contact"
+    ],
+    "properties": {
+        "snmp_contact": {
+            "type": "string",
+            "default": "",
+            "title": "The snmp_contact Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/snmp_location.json b/validated_json_schemas/snmp_location.json
new file mode 100644
index 0000000..f80604e
--- /dev/null
+++ b/validated_json_schemas/snmp_location.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "snmp_location"
+    ],
+    "properties": {
+        "snmp_location": {
+            "type": "string",
+            "default": "",
+            "title": "The snmp_location Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/snmp_trap_groups__to_merge.json b/validated_json_schemas/snmp_trap_groups__to_merge.json
new file mode 100644
index 0000000..936a1cc
--- /dev/null
+++ b/validated_json_schemas/snmp_trap_groups__to_merge.json
@@ -0,0 +1,71 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [ ],
+    "properties": {
+        "snmp_trap_groups__to_merge": {
+            "type": "object",
+            "default": {},
+            "title": "The snmp_trap_groups__to_merge Schema",
+            "required": [
+                "geantnms"
+            ],
+            "properties": {
+                "geantnms": {
+                    "type": "object",
+                    "default": {},
+                    "title": "The geantnms Schema",
+                    "required": [
+                        "version",
+                        "categories",
+                        "targets"
+                    ],
+                    "properties": {
+                        "version": {
+                            "type": "string",
+                            "default": "",
+                            "title": "The version Schema"
+                        },
+                        "categories": {
+                            "type": "array",
+                            "default": [],
+                            "title": "The categories Schema",
+                            "items": {
+                                "type": "string",
+                                "title": "A Schema"
+                            }
+                        },
+                        "targets": {
+                            "type": "array",
+                            "default": [],
+                            "title": "The targets Schema",
+                            "items": {
+                                "type": "object",
+                                "title": "A Schema",
+                                "required": [
+                                    "target",
+                                    "description"
+                                ],
+                                "properties": {
+                                    "target": {
+                                        "type": "string",
+					"pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+                                        "title": "The target Schema"
+                                    },
+                                    "description": {
+                                        "type": "string",
+                                        "pattern": "^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9])\\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9-]*[A-Za-z0-9])\\.$",
+                                        "title": "The description Schema"
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/snmp_trap_source_address.json b/validated_json_schemas/snmp_trap_source_address.json
new file mode 100644
index 0000000..b4c3736
--- /dev/null
+++ b/validated_json_schemas/snmp_trap_source_address.json
@@ -0,0 +1,18 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "snmp_trap_source_address"
+    ],
+    "properties": {
+        "snmp_trap_source_address": {
+            "type": "string",
+	    "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\\/(3[0-2]|[1-2][0-9]|[0-9]))$",
+	    "default": "",
+            "title": "The snmp_trap_source_address Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/system_domain_name.json b/validated_json_schemas/system_domain_name.json
new file mode 100644
index 0000000..5a33eaa
--- /dev/null
+++ b/validated_json_schemas/system_domain_name.json
@@ -0,0 +1,18 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_domain_name"
+    ],
+    "properties": {
+        "system_domain_name": {
+            "type": "string",
+	    "pattern": "^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9])\\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9-]*[A-Za-z0-9])$",
+            "default": "",
+            "title": "The system_domain_name Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/system_domain_search.json b/validated_json_schemas/system_domain_search.json
new file mode 100644
index 0000000..582347e
--- /dev/null
+++ b/validated_json_schemas/system_domain_search.json
@@ -0,0 +1,22 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_domain_search"
+    ],
+    "properties": {
+        "system_domain_search": {
+            "type": "array",
+            "default": [],
+            "title": "The system_domain_search Schema",
+            "items": {
+                "type": "string",
+		"pattern": "^(([a-zA-Z]|[a-zA-Z][a-zA-Z0-9-]*[a-zA-Z0-9])\\.)*([A-Za-z]|[A-Za-z][A-Za-z0-9-]*[A-Za-z0-9])$",
+		"title": "A Schema"
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_login_classes.json b/validated_json_schemas/system_login_classes.json
new file mode 100644
index 0000000..3a871e9
--- /dev/null
+++ b/validated_json_schemas/system_login_classes.json
@@ -0,0 +1,74 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_login_classes"
+    ],
+    "properties": {
+        "system_login_classes": {
+            "type": "array",
+            "default": [],
+            "title": "The system_login_classes Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "idle-timeout",
+                    "name",
+                    "permissions",
+                    "allow-commands",
+                    "deny-commands",
+                    "allow-configuration-regexps",
+                    "deny-configuration-regexps"
+                ],
+                "properties": {
+                    "idle-timeout": {
+                        "type": "integer",
+                        "title": "The idle-timeout Schema"
+                    },
+                    "name": {
+                        "type": "string",
+                        "title": "The name Schema"
+                    },
+                    "permissions": {
+                        "type": "array",
+                        "title": "The permissions Schema",
+                        "items": {
+                            "type": "string",
+                            "title": "A Schema"
+                        }
+                    },
+                    "allow-commands": {
+                        "type": "string",
+                        "title": "The allow-commands Schema"
+                    },
+                    "deny-commands": {
+                        "type": "string",
+                        "title": "The deny-commands Schema"
+                    },
+                    "allow-configuration-regexps": {
+                        "type": "array",
+                        "default": [],
+                        "title": "The allow-configuration-regexps Schema",
+                        "items": {
+                            "type": "string",
+                            "title": "A Schema"
+                        }
+                    },
+                    "deny-configuration-regexps": {
+                        "type": "array",
+                        "default": [],
+                        "title": "The deny-configuration-regexps Schema",
+                        "items": {
+                            "type": "string",
+                            "title": "A Schema"
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_login_password_policies.json b/validated_json_schemas/system_login_password_policies.json
new file mode 100644
index 0000000..4e0ceb3
--- /dev/null
+++ b/validated_json_schemas/system_login_password_policies.json
@@ -0,0 +1,35 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_login_password_policies"
+    ],
+    "properties": {
+        "system_login_password_policies": {
+            "type": "array",
+            "default": [],
+            "title": "The system_login_password_policies Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "option",
+                    "value"
+                ],
+                "properties": {
+                    "option": {
+                        "type": "string",
+                        "title": "The option Schema"
+                    },
+                    "value": {
+                        "type": "integer",
+                        "title": "The value Schema"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_login_users.json b/validated_json_schemas/system_login_users.json
new file mode 100644
index 0000000..7174855
--- /dev/null
+++ b/validated_json_schemas/system_login_users.json
@@ -0,0 +1,45 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_login_users"
+    ],
+    "properties": {
+        "system_login_users": {
+            "type": "array",
+            "default": [],
+            "title": "The system_login_users Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "username",
+                    "class",
+                    "realname",
+                    "pubkey"
+                ],
+                "properties": {
+                    "username": {
+                        "type": "string",
+                        "title": "The username Schema"
+                    },
+                    "class": {
+                        "type": "string",
+                        "title": "The class Schema"
+                    },
+                    "realname": {
+                        "type": "string",
+                        "title": "The realname Schema"
+                    },
+                    "pubkey": {
+                        "type": "string",
+                        "title": "The pubkey Schema"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_name_servers.json b/validated_json_schemas/system_name_servers.json
new file mode 100644
index 0000000..32ccca8
--- /dev/null
+++ b/validated_json_schemas/system_name_servers.json
@@ -0,0 +1,22 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_name_servers"
+    ],
+    "properties": {
+        "system_name_servers": {
+            "type": "array",
+            "default": [],
+            "title": "The system_name_servers Schema",
+            "items": {
+                "type": "string",
+		"pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",		
+                "title": "A Schema"
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_radius_servers.json b/validated_json_schemas/system_radius_servers.json
new file mode 100644
index 0000000..ffaacfc
--- /dev/null
+++ b/validated_json_schemas/system_radius_servers.json
@@ -0,0 +1,47 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_radius_servers"
+    ],
+    "properties": {
+        "system_radius_servers": {
+            "type": "array",
+            "default": [],
+            "title": "The system_radius_servers Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "host",
+                    "source_address",
+                    "timeout",
+                    "secret"
+                ],
+                "properties": {
+                    "host": {
+                        "type": "string",
+			"pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+			"title": "The host Schema"
+                    },
+                    "source_address": {
+                        "type": "string",
+			"pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+                        "title": "The source_address Schema"
+                    },
+                    "timeout": {
+                        "type": "integer",
+                        "title": "The timeout Schema"
+                    },
+                    "secret": {
+                        "type": "string",
+                        "title": "The secret Schema"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_root_pwd.json b/validated_json_schemas/system_root_pwd.json
new file mode 100644
index 0000000..424fb28
--- /dev/null
+++ b/validated_json_schemas/system_root_pwd.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_root_pwd"
+    ],
+    "properties": {
+        "system_root_pwd": {
+            "type": "string",
+            "default": "",
+            "title": "The system_root_pwd Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/system_services_extension_service.json b/validated_json_schemas/system_services_extension_service.json
new file mode 100644
index 0000000..81877e0
--- /dev/null
+++ b/validated_json_schemas/system_services_extension_service.json
@@ -0,0 +1,62 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "default": {},
+    "title": "Root Schema",
+    "required": [ ],
+    "properties": {
+        "system_services_extension_service": {
+            "type": "object",
+            "default": {},
+            "title": "The system_services_extension_service Schema",
+            "required": [
+                "request_response",
+                "notification"
+            ],
+            "properties": {
+                "request_response": {
+                    "type": "object",
+                    "default": {},
+                    "title": "The request_response Schema",
+                    "required": [
+                        "port",
+                        "max_connections"
+                    ],
+                    "properties": {
+                        "port": {
+                            "type": "integer",
+                            "default": 0,
+                            "title": "The port Schema"
+                        },
+                        "max_connections": {
+                            "type": "integer",
+                            "default": 0,
+                            "title": "The max_connections Schema"
+                        }
+                    }
+                },
+                "notification": {
+                    "type": "object",
+                    "default": {},
+                    "title": "The notification Schema",
+                    "required": [
+                        "allow_clients"
+                    ],
+                    "properties": {
+                        "allow_clients": {
+                            "type": "array",
+                            "default": [],
+                            "title": "The allow_clients Schema",
+                            "items": {
+                                "type": "string",
+				"pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+				"title": "A Schema"
+                            }
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_syslog_files.json b/validated_json_schemas/system_syslog_files.json
new file mode 100644
index 0000000..9548f84
--- /dev/null
+++ b/validated_json_schemas/system_syslog_files.json
@@ -0,0 +1,83 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_syslog_files"
+    ],
+    "properties": {
+        "system_syslog_files": {
+            "type": "array",
+            "default": [],
+            "title": "The system_syslog_files Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "filename",
+                    "facilities",
+                    "archive_options",
+                    "match",
+                    "structured_data"
+                ],
+                "properties": {
+                    "filename": {
+                        "type": "string",
+                        "title": "The filename Schema"
+                    },
+                    "facilities": {
+                        "type": "array",
+                        "title": "The facilities Schema",
+                        "items": {
+                            "type": "object",
+                            "title": "A Schema",
+                            "required": [
+                                "name",
+                                "level"
+                            ],
+                            "properties": {
+                                "name": {
+                                    "type": "string",
+                                    "title": "The name Schema"
+                                },
+                                "level": {
+                                    "type": "string",
+                                    "title": "The level Schema"
+                                }
+                            }
+                        }
+                    },
+                    "archive_options": {
+                        "type": "object",
+                        "title": "The archive_options Schema",
+                        "required": [
+                            "files",
+                            "size"
+                        ],
+                        "properties": {
+                            "files": {
+                                "type": "integer",
+                                "title": "The files Schema"
+                            },
+                            "size": {
+                                "type": "string",
+                                "title": "The size Schema"
+                            }
+                        }
+                    },
+                    "match": {
+                        "type": "string",
+                        "title": "The match Schema"
+                    },
+                    "structured_data": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The structured_data Schema"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_syslog_servers.json b/validated_json_schemas/system_syslog_servers.json
new file mode 100644
index 0000000..91e0f99
--- /dev/null
+++ b/validated_json_schemas/system_syslog_servers.json
@@ -0,0 +1,70 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "array",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_syslog_servers"
+    ],
+    "properties": {
+        "system_syslog_servers": {
+            "type": "array",
+            "default": [],
+            "title": "The system_syslog_servers Schema",
+            "items": {
+                "type": "object",
+                "title": "A Schema",
+                "required": [
+                    "address",
+                    "facilities",
+                    "match",
+                    "source_address",
+                    "structured_data"
+                ],
+                "properties": {
+                    "address": {
+                        "type": "string",
+			"pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+                        "title": "The address Schema"
+                    },
+                    "facilities": {
+                        "type": "array",
+                        "title": "The facilities Schema",
+                        "items": {
+                            "type": "object",
+                            "title": "A Schema",
+                            "required": [
+                                "name",
+                                "level"
+                            ],
+                            "properties": {
+                                "name": {
+                                    "type": "string",
+                                    "title": "The name Schema"
+                                },
+                                "level": {
+                                    "type": "string",
+                                    "title": "The level Schema"
+                                }
+                            }
+                        }
+                    },
+                    "match": {
+                        "type": "string",
+                        "title": "The match Schema"
+                    },
+                    "source_address": {
+                        "type": "string",
+                        "title": "The source_address Schema"
+                    },
+                    "structured_data": {
+                        "type": "string",
+                        "default": "",
+                        "title": "The structured_data Schema"
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/validated_json_schemas/system_syslog_source_address.json b/validated_json_schemas/system_syslog_source_address.json
new file mode 100644
index 0000000..71bba05
--- /dev/null
+++ b/validated_json_schemas/system_syslog_source_address.json
@@ -0,0 +1,18 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_syslog_source_address"
+    ],
+    "properties": {
+        "system_syslog_source_address": {
+            "type": "string",
+	    "pattern": "^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$",
+            "default": "",
+            "title": "The system_syslog_source_address Schema"
+        }
+    }
+}
diff --git a/validated_json_schemas/system_time_zone.json b/validated_json_schemas/system_time_zone.json
new file mode 100644
index 0000000..d612f29
--- /dev/null
+++ b/validated_json_schemas/system_time_zone.json
@@ -0,0 +1,17 @@
+{
+    "$schema": "https://json-schema.org/draft/2020-12/schema",
+    "$id": "http://example.com/example.json",
+    "type": "string",
+    "default": {},
+    "title": "Root Schema",
+    "required": [
+        "system_time_zone"
+    ],
+    "properties": {
+        "system_time_zone": {
+            "type": "string",
+            "default": "",
+            "title": "The system_time_zone Schema"
+        }
+    }
+}
-- 
GitLab