|
14 | 14 | "type": "string", |
15 | 15 | "pattern": "^(([a-fA-F0-9]{1,4}|):){1,7}([a-fA-F0-9]{1,4}|:)$", |
16 | 16 | "title": "IPv6 Address", |
17 | | - "description": "Short IPv6 address (String) \n Accepts both full and short form addresses, link-local addresses, and IPv4-mapped addresses" |
| 17 | + "description": "Short IPv6 address (String) \nAccepts both full and short form addresses, link-local addresses, and IPv4-mapped addresses" |
18 | 18 | }, |
19 | 19 | "ipv4_cidr": { |
20 | 20 | "type": "string", |
21 | 21 | "pattern": "^((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])/(1[0-9]|[0-9]|2[0-9]|3[0-2])$", |
22 | 22 | "title": "IPv4 CIDR", |
23 | | - "description": "IPv4 CIDR (String) \n Format: xxx.xxx.xxx.xxx/xx" |
| 23 | + "description": "IPv4 CIDR (String) \nFormat: xxx.xxx.xxx.xxx/xx" |
24 | 24 | }, |
25 | 25 | "ipv6_cidr": { |
26 | 26 | "type": "string", |
27 | | - "pattern": "(([a-fA-F0-9]{1,4}|):){1,7}([a-fA-F0-9]{1,4}|:)/(32|36|40|44|48|52|56|60|64|128)$", |
28 | | - "title": "IPv6 CIDR", |
29 | | - "description": "Full IPv6 CIDR (String) \n Format: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/xxx" |
| 27 | + "pattern": "^(([a-fA-F0-9]{1,4}|):){1,7}([a-fA-F0-9]{1,4}|:)/(32|36|40|44|48|52|56|60|64|128)$", |
| 28 | + "description": "Full IPv6 CIDR (String) \nFormat: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/xxx" |
30 | 29 | }, |
31 | 30 | "ipv4_prefix": { |
32 | 31 | "type": "string", |
33 | | - "title": "IPv4 Prefix", |
34 | 32 | "pattern": "^/(1[0-9]|[0-9]|2[0-9]|3[0-2])$", |
35 | | - "description": "IPv4 Prefix (String) \n Format: /xx between 0 and 32" |
| 33 | + "description": "IPv4 Prefix (String) \nFormat: /xx between 0 and 32" |
36 | 34 | }, |
37 | 35 | "ipv6_prefix": { |
38 | 36 | "type": "string", |
39 | | - "title": "IPv6 Prefix", |
40 | 37 | "pattern": "^/(32|36|40|44|48|52|56|60|64|128)$", |
41 | | - "description": "IPv6 prefix (String) \n Format: /xx between 32 and 64 in increments of 4. also /128" |
| 38 | + "description": "IPv6 prefix (String) \nFormat: /xx between 32 and 64 in increments of 4. also /128" |
42 | 39 | }, |
43 | 40 | "domain": { |
44 | 41 | "type": "string", |
45 | 42 | "pattern": "^([a-zA-Z0-9-]{1,63}\\.)+[a-zA-Z]{2,63}$", |
46 | | - "title": "Domain Name", |
47 | | - "description": "Domain name (String) \n Format: example.com" |
| 43 | + "description": "Domain name (String) \nFormat: example.com" |
| 44 | + }, |
| 45 | + "email": { |
| 46 | + "type": "string", |
| 47 | + "pattern": "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$", |
| 48 | + "description": "Email address (String) \nFormat: user@domain.com" |
| 49 | + }, |
| 50 | + "http_url": { |
| 51 | + "type": "string", |
| 52 | + "pattern": "^(https?://)?([\\da-z.-]+)\\.([a-z.]{2,6})([/\\w .-]*)*\\??([^#\\s]*)?(#.*)?$", |
| 53 | + "description": "HTTP(s) URL (String) \nFormat: http://example.com" |
| 54 | + }, |
| 55 | + "uint16": { |
| 56 | + "type": "integer", |
| 57 | + "minimum": 0, |
| 58 | + "maximum": 65535, |
| 59 | + "description": "16-bit Unsigned Integer \nRange: 0 to 65535" |
| 60 | + }, |
| 61 | + "uint32": { |
| 62 | + "type": "integer", |
| 63 | + "minimum": 0, |
| 64 | + "maximum": 4294967295, |
| 65 | + "description": "32-bit Unsigned Integer \nRange: 0 to 4294967295" |
| 66 | + }, |
| 67 | + "uint64": { |
| 68 | + "type": "integer", |
| 69 | + "minimum": 0, |
| 70 | + "maximum": 18446744073709551615, |
| 71 | + "description": "64-bit Unsigned Integer \nRange: 0 to 18446744073709551615" |
| 72 | + }, |
| 73 | + "mtu": { |
| 74 | + "type": "integer", |
| 75 | + "minimum": 68, |
| 76 | + "maximum": 9192, |
| 77 | + "description": "Maximum Transmission Unit (MTU) \nRange: 68 to 9192" |
| 78 | + }, |
| 79 | + "mac": { |
| 80 | + "type": "string", |
| 81 | + "pattern": "^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$", |
| 82 | + "description": "MAC Address (String) \nFormat: xx:xx:xx:xx:xx:xx" |
| 83 | + }, |
| 84 | + "mac_dot": { |
| 85 | + "type": "string", |
| 86 | + "pattern": "^([0-9A-Fa-f]{4}[.]){2}([0-9A-Fa-f]{4})$", |
| 87 | + "description": "MAC Address with dots (String) \nFormat: xxxx.xxxx.xxxx" |
| 88 | + }, |
| 89 | + "vlan": { |
| 90 | + "type": "integer", |
| 91 | + "minimum": 1, |
| 92 | + "maximum": 4094, |
| 93 | + "description": "VLAN ID (Integer) \nRange: 1 to 4094" |
| 94 | + }, |
| 95 | + "docker_image": { |
| 96 | + "type": "string", |
| 97 | + "pattern": "^[a-z0-9]+(?:[._-][a-z0-9]+)*$", |
| 98 | + "description": "Docker Image Name (String) \nFormat: alpine:latest" |
48 | 99 | }, |
49 | 100 | "hostname": { |
50 | 101 | "title": "Hostname", |
|
57 | 108 | "additionalProperties": false, |
58 | 109 | "properties": { |
59 | 110 | "chassis": { |
| 111 | + "type": "object", |
| 112 | + "additionalProperties": false, |
60 | 113 | "title": "Chassis", |
61 | 114 | "description": "Object containing Chassis information. Has the below properties: \nhostname [required]: hostname\nmodel [required]: string\ndevice_type [required]: choice (router, switch, firewall, load-balancer)\n", |
62 | | - "type": "object", |
63 | 115 | "properties": { |
64 | 116 | "hostname": { |
| 117 | + "title": "hostname", |
65 | 118 | "$ref": "#/$defs/hostname" |
66 | 119 | }, |
67 | 120 | "model": { |
68 | | - "type": "string", |
69 | 121 | "title": "model", |
| 122 | + "type": "string", |
70 | 123 | "description": "String" |
71 | 124 | }, |
72 | 125 | "device_type": { |
73 | | - "title": "Device Type", |
74 | | - "description": "Device Type options are:\nrouter, switch, firewall, load-balancer\n", |
| 126 | + "title": "device_type", |
75 | 127 | "enum": [ |
76 | 128 | "router", |
77 | 129 | "switch", |
|
87 | 139 | ] |
88 | 140 | }, |
89 | 141 | "system": { |
| 142 | + "type": "object", |
| 143 | + "additionalProperties": false, |
90 | 144 | "title": "System", |
91 | 145 | "description": "Object containing System information. Has the below properties:\ndomain_name [required]: string\nntp_servers [required]: list of ipv4 addresses\n", |
92 | | - "type": "object", |
93 | 146 | "properties": { |
94 | 147 | "domain_name": { |
95 | | - "type": "string", |
96 | 148 | "title": "domain_name", |
| 149 | + "type": "string", |
97 | 150 | "description": "String" |
98 | 151 | }, |
99 | 152 | "ntp_servers": { |
| 153 | + "type": "array", |
100 | 154 | "title": "NTP Servers", |
101 | 155 | "description": "List of NTP servers", |
102 | | - "type": "array", |
103 | 156 | "items": { |
| 157 | + "title": "items", |
104 | 158 | "$ref": "#/$defs/ipv4" |
105 | 159 | } |
106 | 160 | } |
|
111 | 165 | ] |
112 | 166 | }, |
113 | 167 | "interfaces": { |
| 168 | + "type": "array", |
114 | 169 | "title": "Device Interfaces", |
115 | 170 | "description": "List of device interfaces. Each interface has the below properties:\nif [required]: string\ndesc: string\nipv4: ipv4_cidr\nipv6: ipv6_cidr\n", |
116 | | - "type": "array", |
117 | 171 | "items": { |
118 | 172 | "type": "object", |
| 173 | + "additionalProperties": false, |
119 | 174 | "properties": { |
120 | 175 | "if": { |
121 | | - "type": "string", |
122 | 176 | "title": "if", |
| 177 | + "type": "string", |
123 | 178 | "description": "String" |
124 | 179 | }, |
125 | 180 | "desc": { |
126 | | - "type": "string", |
127 | 181 | "title": "desc", |
| 182 | + "type": "string", |
128 | 183 | "description": "String" |
129 | 184 | }, |
130 | 185 | "ipv4": { |
| 186 | + "title": "ipv4", |
131 | 187 | "$ref": "#/$defs/ipv4_cidr" |
132 | 188 | }, |
133 | 189 | "ipv6": { |
| 190 | + "title": "ipv6", |
134 | 191 | "$ref": "#/$defs/ipv6_cidr" |
135 | 192 | } |
136 | 193 | }, |
|
0 commit comments