1111 "type" : " object" ,
1212 "additionalProperties" : false ,
1313 "properties" : {
14- "interval_seconds" : { "type" : [" integer" , " string" ], "minimum" : 1 , "default" : 10 },
15- "timeout_ms" : { "type" : [" integer" , " string" ], "minimum" : 100 , "default" : 1500 },
16- "retries" : { "type" : [" integer" , " string" ], "minimum" : 0 , "default" : 1 },
14+ "interval_seconds" : {
15+ "type" : [" integer" , " string" ],
16+ "minimum" : 1 ,
17+ "default" : 10
18+ },
19+ "timeout_ms" : {
20+ "type" : [" integer" , " string" ],
21+ "minimum" : 100 ,
22+ "default" : 1500
23+ },
24+ "retries" : {
25+ "type" : [" integer" , " string" ],
26+ "minimum" : 0 ,
27+ "default" : 1
28+ },
1729 "http" : {
1830 "type" : " object" ,
1931 "additionalProperties" : false ,
2032 "properties" : {
21- "user_agent" : { "type" : " string" , "default" : " ThingConnectPulse/1.0" },
33+ "user_agent" : {
34+ "type" : " string" ,
35+ "default" : " ThingConnectPulse/1.0"
36+ },
2237 "expect_text" : { "type" : " string" , "default" : " " }
2338 },
2439 "default" : {}
3954 },
4055 "name" : { "type" : " string" , "minLength" : 1 },
4156 "parent_id" : { "type" : [" string" , " null" ] },
42- "color" : { "type" : " string" , "pattern" : " ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$" },
57+ "color" : {
58+ "type" : " string" ,
59+ "pattern" : " ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$"
60+ },
4361 "sort_order" : { "type" : [" integer" , " string" ] }
4462 },
4563 "additionalProperties" : false
6280 },
6381 "ipv6" : {
6482 "type" : " string" ,
65- "pattern" : " ^[0-9A-Fa-f:]+$"
83+ "pattern" : " ^[0-9A-Fa-f:]+(%[0-9A-Za-z]+)?$" ,
84+ "description" : " IPv6 address, optionally with zone index (e.g., fe80::1%3)"
6685 },
6786 "cidr" : {
6887 "type" : " string" ,
81100 "type" : { "$ref" : " #/definitions/probeType" },
82101 "group" : { "type" : " string" },
83102 "name" : { "type" : [" string" , " null" ] },
84- "host" : { "type" : [" string" , " null" ] },
103+ "host" : {
104+ "type" : [" string" , " null" ],
105+ "anyOf" : [
106+ { "$ref" : " #/definitions/hostname" },
107+ { "$ref" : " #/definitions/ipv4" },
108+ { "$ref" : " #/definitions/ipv6" }
109+ ]
110+ },
85111 "cidr" : { "type" : [" string" , " null" ] },
86112 "wildcard" : { "type" : [" string" , " null" ] },
87- "port" : { "type" : [" integer" , " string" , " null" ], "minimum" : 1 , "maximum" : 65535 },
113+ "port" : {
114+ "type" : [" integer" , " string" , " null" ],
115+ "minimum" : 1 ,
116+ "maximum" : 65535
117+ },
88118 "http_path" : { "type" : [" string" , " null" ] },
89119 "http_match" : { "type" : [" string" , " null" ] },
90- "interval_seconds" : { "type" : [" integer" , " string" , " null" ], "minimum" : 1 },
91- "timeout_ms" : { "type" : [" integer" , " string" , " null" ], "minimum" : 100 },
92- "retries" : { "type" : [" integer" , " string" , " null" ], "minimum" : 0 },
93- "expected_rtt_ms" : { "type" : [" integer" , " string" , " null" ], "minimum" : 1 },
120+ "interval_seconds" : {
121+ "type" : [" integer" , " string" , " null" ],
122+ "minimum" : 1
123+ },
124+ "timeout_ms" : {
125+ "type" : [" integer" , " string" , " null" ],
126+ "minimum" : 100
127+ },
128+ "retries" : {
129+ "type" : [" integer" , " string" , " null" ],
130+ "minimum" : 0
131+ },
132+ "expected_rtt_ms" : {
133+ "type" : [" integer" , " string" , " null" ],
134+ "minimum" : 1
135+ },
94136 "enabled" : { "type" : [" boolean" , " null" ] },
95137 "notes" : { "type" : [" string" , " null" ] }
96138 },
110152 "examples" : [
111153 {
112154 "version" : 1 ,
113- "defaults" : { "interval_seconds" : 10 , "timeout_ms" : 1500 , "retries" : 1 , "http" : { "user_agent" : " ThingConnectPulse/1.0" , "expect_text" : " " } },
114- "groups" : [ { "id" : " new-press" , "name" : " Press Shop" }, { "id" : " new-lab" , "name" : " Quality Lab" } ],
155+ "defaults" : {
156+ "interval_seconds" : 10 ,
157+ "timeout_ms" : 1500 ,
158+ "retries" : 1 ,
159+ "http" : { "user_agent" : " ThingConnectPulse/1.0" , "expect_text" : " " }
160+ },
161+ "groups" : [
162+ { "id" : " new-press" , "name" : " Press Shop" },
163+ { "id" : " new-lab" , "name" : " Quality Lab" }
164+ ],
115165 "targets" : [
116- { "type" : " icmp" , "host" : " 10.10.1.21" , "name" : " PLC-Press-01" , "group" : " press" , "interval_seconds" : 5 },
117- { "type" : " tcp" , "wildcard" : " 10.10.1.*" , "port" : 5900 , "name" : " HMI-VNC" , "group" : " press" },
118- { "type" : " http" , "cidr" : " 10.10.2.0/28" , "http_path" : " /health" , "http_match" : " OK" , "name" : " QMS-HTTP" , "group" : " lab" }
166+ {
167+ "type" : " icmp" ,
168+ "host" : " 10.10.1.21" ,
169+ "name" : " PLC-Press-01" ,
170+ "group" : " press" ,
171+ "interval_seconds" : 5
172+ },
173+ {
174+ "type" : " tcp" ,
175+ "wildcard" : " 10.10.1.*" ,
176+ "port" : 5900 ,
177+ "name" : " HMI-VNC" ,
178+ "group" : " press"
179+ },
180+ {
181+ "type" : " http" ,
182+ "cidr" : " 10.10.2.0/28" ,
183+ "http_path" : " /health" ,
184+ "http_match" : " OK" ,
185+ "name" : " QMS-HTTP" ,
186+ "group" : " lab"
187+ },
188+ {
189+ "type" : " icmp" ,
190+ "host" : " fd7a:115c:a1e0::3801:160a" ,
191+ "name" : " Tailscale-Node-01" ,
192+ "group" : " network" ,
193+ "interval_seconds" : 5
194+ },
195+ {
196+ "type" : " http" ,
197+ "cidr" : " 2001:db8:abcd:1234::/64" ,
198+ "http_path" : " /health" ,
199+ "http_match" : " OK" ,
200+ "name" : " IPv6-HTTP-Test" ,
201+ "group" : " lab"
202+ }
119203 ]
120204 }
121205 ]
122- }
206+ }
0 commit comments