1+ {
2+ "$schema" : " https://json-schema.org/draft/2020-12/schema" ,
3+ "type" : " object" ,
4+ "additionalProperties" : {
5+ "type" : " object" ,
6+ "properties" : {
7+ "base-url" : {
8+ "title" : " FHIR server base URL" ,
9+ "type" : " string"
10+ },
11+ "connect-timeout" : {
12+ "type" : " string" ,
13+ "format" : " duration" ,
14+ "pattern" : " ^P(([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\ .?[0-9]+)?S)?))?$"
15+ },
16+ "read-timeout" : {
17+ "type" : " string" ,
18+ "format" : " duration" ,
19+ "pattern" : " ^P(([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\ .?[0-9]+)?S)?))?$"
20+ },
21+ "enable-debug-logging" : {
22+ "anyOf" : [
23+ {
24+ "type" : " boolean"
25+ },
26+ {
27+ "type" : " string" ,
28+ "enum" : [" y" , " Y" , " yes" , " Yes" , " YES" , " n" , " N" , " no" , " No" , " NO" , " on" , " On" , " ON" , " off" , " Off" , " OFF" ]
29+ }
30+ ]
31+ },
32+ "test-connection-on-startup" : {
33+ "anyOf" : [
34+ {
35+ "type" : " boolean"
36+ },
37+ {
38+ "type" : " string" ,
39+ "enum" : [" y" , " Y" , " yes" , " Yes" , " YES" , " n" , " N" , " no" , " No" , " NO" , " on" , " On" , " ON" , " off" , " Off" , " OFF" ]
40+ }
41+ ]
42+ },
43+ "trusted-root-certificates-file" : {
44+ "type" : " string"
45+ },
46+ "basic-auth" : {
47+ "title" : " Basic authentication" ,
48+ "type" : " object" ,
49+ "properties" : {
50+ "password" : {
51+ "type" : " string"
52+ },
53+ "password-file" : {
54+ "type" : " string"
55+ },
56+ "username" : {
57+ "type" : " string"
58+ }
59+ },
60+ "required" : [
61+ " username"
62+ ],
63+ "oneOf" : [
64+ {
65+ "required" : [
66+ " password"
67+ ],
68+ "not" : {
69+ "required" : [
70+ " password-file"
71+ ]
72+ }
73+ },
74+ {
75+ "required" : [
76+ " password-file"
77+ ],
78+ "not" : {
79+ "required" : [
80+ " password"
81+ ]
82+ }
83+ }
84+ ],
85+ "additionalProperties" : false
86+ },
87+ "bearer-auth" : {
88+ "title" : " Bearer token authentication" ,
89+ "type" : " object" ,
90+ "properties" : {
91+ "token" : {
92+ "type" : " string"
93+ },
94+ "token-file" : {
95+ "type" : " string"
96+ }
97+ },
98+ "oneOf" : [
99+ {
100+ "required" : [
101+ " token"
102+ ],
103+ "not" : {
104+ "required" : [
105+ " token-file"
106+ ]
107+ }
108+ },
109+ {
110+ "required" : [
111+ " token-file"
112+ ],
113+ "not" : {
114+ "required" : [
115+ " token"
116+ ]
117+ }
118+ }
119+ ],
120+ "additionalProperties" : false
121+ },
122+ "cert-auth" : {
123+ "title" : " Client certificate authentication" ,
124+ "type" : " object" ,
125+ "properties" : {
126+ "certificate-file" : {
127+ "type" : " string"
128+ },
129+ "p12-file" : {
130+ "type" : " string"
131+ },
132+ "password" : {
133+ "type" : " string"
134+ },
135+ "password-file" : {
136+ "type" : " string"
137+ },
138+ "private-key-file" : {
139+ "type" : " string"
140+ }
141+ },
142+ "oneOf" : [
143+ {
144+ "required" : [
145+ " certificate-file" ,
146+ " private-key-file"
147+ ],
148+ "not" : {
149+ "required" : [
150+ " p12-file"
151+ ]
152+ },
153+ "oneOf" : [
154+ {
155+ "required" : [
156+ " password"
157+ ],
158+ "not" : {
159+ "required" : [
160+ " password-file"
161+ ]
162+ }
163+ },
164+ {
165+ "required" : [
166+ " password-file"
167+ ],
168+ "not" : {
169+ "required" : [
170+ " password"
171+ ]
172+ }
173+ },
174+ {
175+ "not" : {
176+ "anyOf" : [
177+ {
178+ "required" : [
179+ " password"
180+ ]
181+ },
182+ {
183+ "required" : [
184+ " password-file"
185+ ]
186+ }
187+ ]
188+ }
189+ }
190+ ]
191+ },
192+ {
193+ "required" : [
194+ " p12-file"
195+ ],
196+ "not" : {
197+ "required" : [
198+ " certificate-file" ,
199+ " private-key-file"
200+ ]
201+ },
202+ "oneOf" : [
203+ {
204+ "required" : [
205+ " password"
206+ ],
207+ "not" : {
208+ "required" : [
209+ " password-file"
210+ ]
211+ }
212+ },
213+ {
214+ "required" : [
215+ " password-file"
216+ ],
217+ "not" : {
218+ "required" : [
219+ " password"
220+ ]
221+ }
222+ },
223+ {
224+ "not" : {
225+ "anyOf" : [
226+ {
227+ "required" : [
228+ " password"
229+ ]
230+ },
231+ {
232+ "required" : [
233+ " password-file"
234+ ]
235+ }
236+ ]
237+ }
238+ }
239+ ]
240+ }
241+ ],
242+ "additionalProperties" : false
243+ },
244+ "oidc-auth" : {
245+ "title" : " OIDC client credentials flow authentication" ,
246+ "type" : " object" ,
247+ "properties" : {
248+ "base-url" : {
249+ "type" : " string"
250+ },
251+ "discovery-path" : {
252+ "type" : " string"
253+ },
254+ "client-id" : {
255+ "type" : " string"
256+ },
257+ "client-secret" : {
258+ "type" : " string"
259+ },
260+ "client-secret-file" : {
261+ "type" : " string"
262+ },
263+ "required-audience" : {
264+ "type" : " array" ,
265+ "items" : {
266+ "type" : " string"
267+ }
268+ },
269+ "verify-authorized-party" : {
270+ "anyOf" : [
271+ {
272+ "type" : " boolean"
273+ },
274+ {
275+ "type" : " string" ,
276+ "enum" : [" y" , " Y" , " yes" , " Yes" , " YES" , " n" , " N" , " no" , " No" , " NO" , " on" , " On" , " ON" , " off" , " Off" , " OFF" ]
277+ }
278+ ]
279+ },
280+ "connect-timeout" : {
281+ "type" : " string" ,
282+ "format" : " duration" ,
283+ "pattern" : " ^P(([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\ .?[0-9]+)?S)?))?$"
284+ },
285+ "read-timeout" : {
286+ "type" : " string" ,
287+ "format" : " duration" ,
288+ "pattern" : " ^P(([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+D)?(T([0-9]+H)?([0-9]+M)?([0-9]+(\\ .?[0-9]+)?S)?))?$"
289+ },
290+ "enable-debug-logging" : {
291+ "anyOf" : [
292+ {
293+ "type" : " boolean"
294+ },
295+ {
296+ "type" : " string" ,
297+ "enum" : [" y" , " Y" , " yes" , " Yes" , " YES" , " n" , " N" , " no" , " No" , " NO" , " on" , " On" , " ON" , " off" , " Off" , " OFF" ]
298+ }
299+ ]
300+ },
301+ "test-connection-on-startup" : {
302+ "anyOf" : [
303+ {
304+ "type" : " boolean"
305+ },
306+ {
307+ "type" : " string" ,
308+ "enum" : [" y" , " Y" , " yes" , " Yes" , " YES" , " n" , " N" , " no" , " No" , " NO" , " on" , " On" , " ON" , " off" , " Off" , " OFF" ]
309+ }
310+ ]
311+ },
312+ "trusted-root-certificates-file" : {
313+ "type" : " string"
314+ }
315+ },
316+ "required" : [
317+ " base-url" ,
318+ " client-id"
319+ ],
320+ "oneOf" : [
321+ {
322+ "required" : [
323+ " client-secret"
324+ ],
325+ "not" : {
326+ "required" : [
327+ " client-secret-file"
328+ ]
329+ }
330+ },
331+ {
332+ "required" : [
333+ " client-secret-file"
334+ ],
335+ "not" : {
336+ "required" : [
337+ " client-secret"
338+ ]
339+ }
340+ }
341+ ],
342+ "additionalProperties" : false
343+ }
344+ },
345+ "additionalProperties" : false
346+ }
347+ }
0 commit comments