@epilot/sdk 2.0.0-beta.2 → 2.0.0-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/README.md +1 -0
  2. package/definitions/access-token-runtime.json +1 -0
  3. package/definitions/access-token.json +663 -0
  4. package/definitions/address-runtime.json +1 -0
  5. package/definitions/address-suggestions-runtime.json +1 -0
  6. package/definitions/address-suggestions.json +582 -0
  7. package/definitions/address.json +578 -0
  8. package/definitions/ai-agents-runtime.json +1 -0
  9. package/definitions/ai-agents.json +1711 -0
  10. package/definitions/app-runtime.json +1 -0
  11. package/definitions/app.json +4443 -0
  12. package/definitions/audit-logs-runtime.json +1 -0
  13. package/definitions/audit-logs.json +305 -0
  14. package/definitions/automation-runtime.json +1 -0
  15. package/definitions/automation.json +4850 -0
  16. package/definitions/billing-runtime.json +1 -0
  17. package/definitions/billing.json +837 -0
  18. package/definitions/blueprint-manifest-runtime.json +1 -0
  19. package/definitions/blueprint-manifest.json +3376 -0
  20. package/definitions/consent-runtime.json +1 -0
  21. package/definitions/consent.json +344 -0
  22. package/definitions/customer-portal-runtime.json +1 -0
  23. package/definitions/customer-portal.json +15000 -0
  24. package/definitions/dashboard-runtime.json +1 -0
  25. package/definitions/dashboard.json +484 -0
  26. package/definitions/data-management-runtime.json +1 -0
  27. package/definitions/data-management.json +962 -0
  28. package/definitions/deduplication-runtime.json +1 -0
  29. package/definitions/deduplication.json +183 -0
  30. package/definitions/design-runtime.json +1 -0
  31. package/definitions/design.json +1423 -0
  32. package/definitions/document-runtime.json +1 -0
  33. package/definitions/document.json +758 -0
  34. package/definitions/email-settings-runtime.json +1 -0
  35. package/definitions/email-settings.json +2627 -0
  36. package/definitions/email-template-runtime.json +1 -0
  37. package/definitions/email-template.json +1419 -0
  38. package/definitions/entity-mapping-runtime.json +1 -0
  39. package/definitions/entity-mapping.json +1642 -0
  40. package/definitions/entity-runtime.json +1 -0
  41. package/definitions/entity.json +10074 -0
  42. package/definitions/environments-runtime.json +1 -0
  43. package/definitions/environments.json +363 -0
  44. package/definitions/erp-integration-runtime.json +1 -0
  45. package/definitions/erp-integration.json +5845 -0
  46. package/definitions/event-catalog-runtime.json +1 -0
  47. package/definitions/event-catalog.json +1051 -0
  48. package/definitions/file-runtime.json +1 -0
  49. package/definitions/file.json +2842 -0
  50. package/definitions/iban-runtime.json +1 -0
  51. package/definitions/iban.json +132 -0
  52. package/definitions/journey-runtime.json +1 -0
  53. package/definitions/journey.json +2341 -0
  54. package/definitions/kanban-runtime.json +1 -0
  55. package/definitions/kanban.json +929 -0
  56. package/definitions/message-runtime.json +1 -0
  57. package/definitions/message.json +2660 -0
  58. package/definitions/metering-runtime.json +1 -0
  59. package/definitions/metering.json +2321 -0
  60. package/definitions/notes-runtime.json +1 -0
  61. package/definitions/notes.json +1531 -0
  62. package/definitions/notification-runtime.json +1 -0
  63. package/definitions/notification.json +1425 -0
  64. package/definitions/organization-runtime.json +1 -0
  65. package/definitions/organization.json +629 -0
  66. package/definitions/partner-directory-runtime.json +1 -0
  67. package/definitions/partner-directory.json +1718 -0
  68. package/definitions/permissions-runtime.json +1 -0
  69. package/definitions/permissions.json +1480 -0
  70. package/definitions/pricing-runtime.json +1 -0
  71. package/definitions/pricing-tier-runtime.json +1 -0
  72. package/definitions/pricing-tier.json +105 -0
  73. package/definitions/pricing.json +9884 -0
  74. package/definitions/purpose-runtime.json +1 -0
  75. package/definitions/purpose.json +524 -0
  76. package/definitions/sandbox-runtime.json +1 -0
  77. package/definitions/sandbox.json +453 -0
  78. package/definitions/submission-runtime.json +1 -0
  79. package/definitions/submission.json +313 -0
  80. package/definitions/targeting-runtime.json +1 -0
  81. package/definitions/targeting.json +1474 -0
  82. package/definitions/template-variables-runtime.json +1 -0
  83. package/definitions/template-variables.json +1408 -0
  84. package/definitions/user-runtime.json +1 -0
  85. package/definitions/user.json +2408 -0
  86. package/definitions/validation-rules-runtime.json +1 -0
  87. package/definitions/validation-rules.json +1491 -0
  88. package/definitions/webhooks-runtime.json +1 -0
  89. package/definitions/webhooks.json +1525 -0
  90. package/definitions/workflow-definition-runtime.json +1 -0
  91. package/definitions/workflow-definition.json +3417 -0
  92. package/definitions/workflow-runtime.json +1 -0
  93. package/definitions/workflow.json +4106 -0
  94. package/dist/apis/access-token.cjs +13 -84
  95. package/dist/apis/access-token.js +11 -82
  96. package/dist/apis/address-suggestions.cjs +13 -127
  97. package/dist/apis/address-suggestions.js +11 -125
  98. package/dist/apis/address.cjs +13 -79
  99. package/dist/apis/address.js +11 -77
  100. package/dist/apis/ai-agents.cjs +13 -210
  101. package/dist/apis/ai-agents.js +11 -208
  102. package/dist/apis/app.cjs +13 -568
  103. package/dist/apis/app.js +11 -566
  104. package/dist/apis/audit-logs.cjs +13 -50
  105. package/dist/apis/audit-logs.js +11 -48
  106. package/dist/apis/automation.cjs +13 -277
  107. package/dist/apis/automation.js +11 -275
  108. package/dist/apis/billing.cjs +13 -170
  109. package/dist/apis/billing.js +11 -168
  110. package/dist/apis/blueprint-manifest.cjs +13 -499
  111. package/dist/apis/blueprint-manifest.js +11 -497
  112. package/dist/apis/consent.cjs +13 -79
  113. package/dist/apis/consent.js +11 -77
  114. package/dist/apis/customer-portal.cjs +13 -2247
  115. package/dist/apis/customer-portal.js +11 -2245
  116. package/dist/apis/dashboard.cjs +41 -0
  117. package/dist/apis/dashboard.d.cts +18 -0
  118. package/dist/apis/dashboard.d.ts +18 -0
  119. package/dist/apis/dashboard.js +41 -0
  120. package/dist/apis/data-management.cjs +13 -235
  121. package/dist/apis/data-management.js +11 -233
  122. package/dist/apis/deduplication.cjs +13 -37
  123. package/dist/apis/deduplication.js +11 -35
  124. package/dist/apis/design.cjs +13 -214
  125. package/dist/apis/design.js +11 -212
  126. package/dist/apis/document.cjs +13 -73
  127. package/dist/apis/document.js +11 -71
  128. package/dist/apis/email-settings.cjs +13 -528
  129. package/dist/apis/email-settings.js +11 -526
  130. package/dist/apis/email-template.cjs +13 -117
  131. package/dist/apis/email-template.js +11 -115
  132. package/dist/apis/entity-mapping.cjs +13 -210
  133. package/dist/apis/entity-mapping.js +11 -208
  134. package/dist/apis/entity.cjs +13 -1595
  135. package/dist/apis/entity.js +11 -1593
  136. package/dist/apis/environments.cjs +13 -66
  137. package/dist/apis/environments.js +11 -64
  138. package/dist/apis/erp-integration.cjs +13 -581
  139. package/dist/apis/erp-integration.js +11 -579
  140. package/dist/apis/event-catalog.cjs +13 -125
  141. package/dist/apis/event-catalog.js +11 -123
  142. package/dist/apis/file.cjs +13 -568
  143. package/dist/apis/file.js +11 -566
  144. package/dist/apis/iban.cjs +13 -38
  145. package/dist/apis/iban.js +11 -36
  146. package/dist/apis/journey.cjs +13 -265
  147. package/dist/apis/journey.js +11 -263
  148. package/dist/apis/kanban.cjs +13 -159
  149. package/dist/apis/kanban.js +11 -157
  150. package/dist/apis/message.cjs +13 -668
  151. package/dist/apis/message.js +11 -666
  152. package/dist/apis/metering.cjs +13 -394
  153. package/dist/apis/metering.js +11 -392
  154. package/dist/apis/notes.cjs +13 -214
  155. package/dist/apis/notes.js +11 -212
  156. package/dist/apis/notification.cjs +13 -232
  157. package/dist/apis/notification.js +11 -230
  158. package/dist/apis/organization.cjs +13 -113
  159. package/dist/apis/organization.js +11 -111
  160. package/dist/apis/partner-directory.cjs +13 -277
  161. package/dist/apis/partner-directory.js +11 -275
  162. package/dist/apis/permissions.cjs +13 -173
  163. package/dist/apis/permissions.js +11 -171
  164. package/dist/apis/pricing-tier.cjs +14 -32
  165. package/dist/apis/pricing-tier.js +11 -29
  166. package/dist/apis/pricing.cjs +13 -434
  167. package/dist/apis/pricing.js +11 -432
  168. package/dist/apis/purpose.cjs +13 -175
  169. package/dist/apis/purpose.js +11 -173
  170. package/dist/apis/sandbox.cjs +13 -95
  171. package/dist/apis/sandbox.js +11 -93
  172. package/dist/apis/submission.cjs +13 -50
  173. package/dist/apis/submission.js +11 -48
  174. package/dist/apis/targeting.cjs +13 -270
  175. package/dist/apis/targeting.js +11 -268
  176. package/dist/apis/template-variables.cjs +13 -154
  177. package/dist/apis/template-variables.js +11 -152
  178. package/dist/apis/user.cjs +13 -483
  179. package/dist/apis/user.js +11 -481
  180. package/dist/apis/validation-rules.cjs +13 -115
  181. package/dist/apis/validation-rules.js +11 -113
  182. package/dist/apis/webhooks.cjs +13 -247
  183. package/dist/apis/webhooks.js +11 -245
  184. package/dist/apis/workflow-definition.cjs +13 -337
  185. package/dist/apis/workflow-definition.js +11 -335
  186. package/dist/apis/workflow.cjs +13 -397
  187. package/dist/apis/workflow.js +11 -395
  188. package/dist/{chunk-D7ICL3AM.cjs → chunk-5LXNSDG2.cjs} +51 -2
  189. package/dist/{chunk-DGCGLG7G.js → chunk-QMQNMCOC.js} +49 -0
  190. package/dist/dashboard.d-AE3RQ6zo.d.cts +440 -0
  191. package/dist/dashboard.d-AE3RQ6zo.d.ts +440 -0
  192. package/dist/index.cjs +60 -53
  193. package/dist/index.d.cts +70 -68
  194. package/dist/index.d.ts +70 -68
  195. package/dist/index.js +57 -50
  196. package/package.json +55 -3
@@ -0,0 +1,1491 @@
1
+ {
2
+ "openapi": "3.0.3",
3
+ "info": {
4
+ "title": "Validation Rules API",
5
+ "version": "1.0.0"
6
+ },
7
+ "tags": [
8
+ {
9
+ "name": "Validation Rules",
10
+ "description": "Endpoints for managing validation rules"
11
+ }
12
+ ],
13
+ "security": [
14
+ {
15
+ "EpilotAuth": []
16
+ }
17
+ ],
18
+ "paths": {
19
+ "/v1/validation-rules": {
20
+ "get": {
21
+ "operationId": "getValidationRules",
22
+ "summary": "Get all validation rules by organization Id",
23
+ "description": "Gets all validation rules by organization Id",
24
+ "tags": [
25
+ "Validation Rules"
26
+ ],
27
+ "security": [
28
+ {
29
+ "EpilotAuth": []
30
+ }
31
+ ],
32
+ "responses": {
33
+ "200": {
34
+ "description": "Success",
35
+ "content": {
36
+ "application/json": {
37
+ "schema": {
38
+ "$ref": "#/components/schemas/GetValidationRulesResponse"
39
+ }
40
+ }
41
+ }
42
+ },
43
+ "400": {
44
+ "description": "Bad Request - Invalid request body",
45
+ "content": {
46
+ "application/json": {
47
+ "schema": {
48
+ "type": "object",
49
+ "properties": {
50
+ "message": {
51
+ "type": "string",
52
+ "example": "Invalid request body"
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ },
59
+ "500": {
60
+ "description": "Internal Server Error",
61
+ "content": {
62
+ "application/json": {
63
+ "schema": {
64
+ "type": "object",
65
+ "properties": {
66
+ "message": {
67
+ "type": "string",
68
+ "example": "Unknown API Error"
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
75
+ }
76
+ },
77
+ "post": {
78
+ "operationId": "createValidationRule",
79
+ "summary": "Create Validation Rule",
80
+ "description": "Creates a new validation rule",
81
+ "tags": [
82
+ "Validation Rules"
83
+ ],
84
+ "security": [
85
+ {
86
+ "EpilotAuth": []
87
+ }
88
+ ],
89
+ "requestBody": {
90
+ "content": {
91
+ "application/json": {
92
+ "schema": {
93
+ "$ref": "#/components/schemas/CreateValidationRuleRequest"
94
+ }
95
+ }
96
+ },
97
+ "description": "Payload"
98
+ },
99
+ "responses": {
100
+ "201": {
101
+ "description": "Success",
102
+ "content": {
103
+ "application/json": {
104
+ "schema": {
105
+ "$ref": "#/components/schemas/ValidationRule"
106
+ }
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ },
113
+ "/v1/validation-rules/{ruleId}": {
114
+ "get": {
115
+ "operationId": "getValidationRuleById",
116
+ "summary": "Get validation rule by ID",
117
+ "description": "Retrieves a specific validation rule by its ID",
118
+ "tags": [
119
+ "Validation Rules"
120
+ ],
121
+ "security": [
122
+ {
123
+ "EpilotAuth": []
124
+ }
125
+ ],
126
+ "parameters": [
127
+ {
128
+ "name": "ruleId",
129
+ "in": "path",
130
+ "required": true,
131
+ "schema": {
132
+ "type": "string"
133
+ },
134
+ "description": "The unique identifier of the validation rule to retrieve."
135
+ }
136
+ ],
137
+ "responses": {
138
+ "200": {
139
+ "description": "Success",
140
+ "content": {
141
+ "application/json": {
142
+ "schema": {
143
+ "$ref": "#/components/schemas/ValidationRule"
144
+ }
145
+ }
146
+ }
147
+ },
148
+ "404": {
149
+ "description": "Validation rule not found",
150
+ "content": {
151
+ "application/json": {
152
+ "schema": {
153
+ "type": "object",
154
+ "properties": {
155
+ "message": {
156
+ "type": "string",
157
+ "example": "Validation rule not found"
158
+ }
159
+ }
160
+ }
161
+ }
162
+ }
163
+ },
164
+ "500": {
165
+ "description": "Internal Server Error",
166
+ "content": {
167
+ "application/json": {
168
+ "schema": {
169
+ "type": "object",
170
+ "properties": {
171
+ "message": {
172
+ "type": "string",
173
+ "example": "Unknown API Error"
174
+ }
175
+ }
176
+ }
177
+ }
178
+ }
179
+ }
180
+ }
181
+ },
182
+ "patch": {
183
+ "operationId": "updateValidationRule",
184
+ "summary": "Update Validation Rule (partial update)",
185
+ "description": "Updates an existing validation rule partially by ID",
186
+ "tags": [
187
+ "Validation Rules"
188
+ ],
189
+ "security": [
190
+ {
191
+ "EpilotAuth": []
192
+ }
193
+ ],
194
+ "parameters": [
195
+ {
196
+ "name": "ruleId",
197
+ "in": "path",
198
+ "required": true,
199
+ "schema": {
200
+ "type": "string"
201
+ },
202
+ "description": "The unique identifier of the validation rule to update."
203
+ }
204
+ ],
205
+ "requestBody": {
206
+ "content": {
207
+ "application/json": {
208
+ "schema": {
209
+ "$ref": "#/components/schemas/UpdateValidationRuleRequest"
210
+ }
211
+ }
212
+ },
213
+ "description": "Fields to update in the validation rule"
214
+ },
215
+ "responses": {
216
+ "200": {
217
+ "description": "Success",
218
+ "content": {
219
+ "application/json": {
220
+ "schema": {
221
+ "$ref": "#/components/schemas/ValidationRule"
222
+ }
223
+ }
224
+ }
225
+ },
226
+ "400": {
227
+ "description": "Bad Request - Invalid request body",
228
+ "content": {
229
+ "application/json": {
230
+ "schema": {
231
+ "type": "object",
232
+ "properties": {
233
+ "message": {
234
+ "type": "string",
235
+ "example": "Invalid request body"
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+ },
242
+ "500": {
243
+ "description": "Internal Server Error",
244
+ "content": {
245
+ "application/json": {
246
+ "schema": {
247
+ "type": "object",
248
+ "properties": {
249
+ "message": {
250
+ "type": "string",
251
+ "example": "Unknown API Error"
252
+ }
253
+ }
254
+ }
255
+ }
256
+ }
257
+ }
258
+ }
259
+ },
260
+ "delete": {
261
+ "operationId": "deleteValidationRule",
262
+ "summary": "Delete Validation Rule",
263
+ "description": "Deletes a validation rule by ID",
264
+ "tags": [
265
+ "Validation Rules"
266
+ ],
267
+ "security": [
268
+ {
269
+ "EpilotAuth": []
270
+ }
271
+ ],
272
+ "parameters": [
273
+ {
274
+ "name": "ruleId",
275
+ "in": "path",
276
+ "required": true,
277
+ "schema": {
278
+ "type": "string"
279
+ },
280
+ "description": "The unique identifier of the validation rule to delete."
281
+ }
282
+ ],
283
+ "responses": {
284
+ "204": {
285
+ "description": "Validation rule deleted successfully"
286
+ },
287
+ "500": {
288
+ "description": "Internal Server Error",
289
+ "content": {
290
+ "application/json": {
291
+ "schema": {
292
+ "type": "object",
293
+ "properties": {
294
+ "message": {
295
+ "type": "string",
296
+ "example": "Unknown API Error"
297
+ }
298
+ }
299
+ }
300
+ }
301
+ }
302
+ }
303
+ }
304
+ }
305
+ },
306
+ "/v1/validation-rules/{ruleId}/used-by": {
307
+ "post": {
308
+ "operationId": "addUsedByReference",
309
+ "summary": "Add a reference to the usedBy array",
310
+ "description": "Adds a single reference to the usedBy array of a validation rule",
311
+ "tags": [
312
+ "Validation Rules"
313
+ ],
314
+ "security": [
315
+ {
316
+ "EpilotAuth": []
317
+ }
318
+ ],
319
+ "parameters": [
320
+ {
321
+ "name": "ruleId",
322
+ "in": "path",
323
+ "required": true,
324
+ "schema": {
325
+ "type": "string"
326
+ },
327
+ "description": "The unique identifier of the validation rule to update."
328
+ }
329
+ ],
330
+ "requestBody": {
331
+ "content": {
332
+ "application/json": {
333
+ "schema": {
334
+ "$ref": "#/components/schemas/UsedBy"
335
+ }
336
+ }
337
+ },
338
+ "description": "The usedBy reference to add"
339
+ },
340
+ "responses": {
341
+ "200": {
342
+ "description": "Success",
343
+ "content": {
344
+ "application/json": {
345
+ "schema": {
346
+ "$ref": "#/components/schemas/ValidationRule"
347
+ }
348
+ }
349
+ }
350
+ },
351
+ "400": {
352
+ "description": "Bad Request - Invalid request body",
353
+ "content": {
354
+ "application/json": {
355
+ "schema": {
356
+ "type": "object",
357
+ "properties": {
358
+ "message": {
359
+ "type": "string",
360
+ "example": "Invalid request body"
361
+ }
362
+ }
363
+ }
364
+ }
365
+ }
366
+ },
367
+ "404": {
368
+ "description": "Validation rule not found",
369
+ "content": {
370
+ "application/json": {
371
+ "schema": {
372
+ "type": "object",
373
+ "properties": {
374
+ "message": {
375
+ "type": "string",
376
+ "example": "Validation rule not found"
377
+ }
378
+ }
379
+ }
380
+ }
381
+ }
382
+ },
383
+ "500": {
384
+ "description": "Internal Server Error",
385
+ "content": {
386
+ "application/json": {
387
+ "schema": {
388
+ "type": "object",
389
+ "properties": {
390
+ "message": {
391
+ "type": "string",
392
+ "example": "Unknown API Error"
393
+ }
394
+ }
395
+ }
396
+ }
397
+ }
398
+ }
399
+ }
400
+ },
401
+ "delete": {
402
+ "operationId": "removeUsedByReference",
403
+ "summary": "Remove a reference from the usedBy array",
404
+ "description": "Removes a specific reference from the usedBy array of a validation rule",
405
+ "tags": [
406
+ "Validation Rules"
407
+ ],
408
+ "security": [
409
+ {
410
+ "EpilotAuth": []
411
+ }
412
+ ],
413
+ "parameters": [
414
+ {
415
+ "name": "ruleId",
416
+ "in": "path",
417
+ "required": true,
418
+ "schema": {
419
+ "type": "string"
420
+ },
421
+ "description": "The unique identifier of the validation rule to update."
422
+ }
423
+ ],
424
+ "requestBody": {
425
+ "content": {
426
+ "application/json": {
427
+ "schema": {
428
+ "$ref": "#/components/schemas/UsedBy"
429
+ }
430
+ }
431
+ },
432
+ "description": "The usedBy reference to remove"
433
+ },
434
+ "responses": {
435
+ "200": {
436
+ "description": "Success",
437
+ "content": {
438
+ "application/json": {
439
+ "schema": {
440
+ "$ref": "#/components/schemas/ValidationRule"
441
+ }
442
+ }
443
+ }
444
+ },
445
+ "400": {
446
+ "description": "Bad Request - Invalid request body",
447
+ "content": {
448
+ "application/json": {
449
+ "schema": {
450
+ "type": "object",
451
+ "properties": {
452
+ "message": {
453
+ "type": "string",
454
+ "example": "Invalid request body"
455
+ }
456
+ }
457
+ }
458
+ }
459
+ }
460
+ },
461
+ "404": {
462
+ "description": "Validation rule not found",
463
+ "content": {
464
+ "application/json": {
465
+ "schema": {
466
+ "type": "object",
467
+ "properties": {
468
+ "message": {
469
+ "type": "string",
470
+ "example": "Validation rule not found"
471
+ }
472
+ }
473
+ }
474
+ }
475
+ }
476
+ },
477
+ "500": {
478
+ "description": "Internal Server Error",
479
+ "content": {
480
+ "application/json": {
481
+ "schema": {
482
+ "type": "object",
483
+ "properties": {
484
+ "message": {
485
+ "type": "string",
486
+ "example": "Unknown API Error"
487
+ }
488
+ }
489
+ }
490
+ }
491
+ }
492
+ }
493
+ }
494
+ }
495
+ }
496
+ },
497
+ "components": {
498
+ "securitySchemes": {
499
+ "EpilotAuth": {
500
+ "type": "http",
501
+ "scheme": "bearer",
502
+ "description": "Authorization header with epilot OAuth2 bearer token",
503
+ "bearerFormat": "JWT"
504
+ },
505
+ "EpilotPublicAuth": {
506
+ "type": "http",
507
+ "scheme": "bearer",
508
+ "description": "Authorization header with epilot public access token",
509
+ "bearerFormat": "JWT"
510
+ }
511
+ },
512
+ "schemas": {
513
+ "GetValidationRulesResponse": {
514
+ "type": "object",
515
+ "properties": {
516
+ "results": {
517
+ "type": "array",
518
+ "items": {
519
+ "$ref": "#/components/schemas/ValidationRule"
520
+ }
521
+ }
522
+ }
523
+ },
524
+ "CreateValidationRuleRequest": {
525
+ "allOf": [
526
+ {
527
+ "$ref": "#/components/schemas/ValidationRuleBase"
528
+ },
529
+ {
530
+ "type": "object",
531
+ "required": [
532
+ "title",
533
+ "rule"
534
+ ]
535
+ }
536
+ ]
537
+ },
538
+ "UpdateValidationRuleRequest": {
539
+ "allOf": [
540
+ {
541
+ "$ref": "#/components/schemas/ValidationRuleBase"
542
+ }
543
+ ]
544
+ },
545
+ "ValidationRuleBase": {
546
+ "allOf": [
547
+ {
548
+ "type": "object",
549
+ "properties": {
550
+ "title": {
551
+ "type": "string",
552
+ "description": "Title of the validation rule."
553
+ },
554
+ "placeholder": {
555
+ "type": "string",
556
+ "description": "Placeholder for the validation rule."
557
+ },
558
+ "used_by": {
559
+ "type": "array",
560
+ "items": {
561
+ "$ref": "#/components/schemas/UsedBy"
562
+ },
563
+ "description": "Describes where and how a validation rule is applied."
564
+ },
565
+ "rule": {
566
+ "oneOf": [
567
+ {
568
+ "$ref": "#/components/schemas/RegexRuleType"
569
+ },
570
+ {
571
+ "$ref": "#/components/schemas/PatternRuleType"
572
+ },
573
+ {
574
+ "$ref": "#/components/schemas/NumericRuleType"
575
+ }
576
+ ]
577
+ }
578
+ }
579
+ }
580
+ ]
581
+ },
582
+ "ValidationRule": {
583
+ "allOf": [
584
+ {
585
+ "$ref": "#/components/schemas/ValidationRuleBase"
586
+ },
587
+ {
588
+ "type": "object",
589
+ "required": [
590
+ "_schema_version",
591
+ "_id",
592
+ "_organization_id",
593
+ "title",
594
+ "type",
595
+ "created_at",
596
+ "updated_at",
597
+ "created_by",
598
+ "updated_by"
599
+ ],
600
+ "properties": {
601
+ "_schema_version": {
602
+ "type": "string",
603
+ "description": "Schema version of the validation rule."
604
+ },
605
+ "_id": {
606
+ "type": "string",
607
+ "description": "Unique identifier for the validation rule."
608
+ },
609
+ "_organization_id": {
610
+ "type": "string",
611
+ "description": "Organization ID that owns this rule."
612
+ },
613
+ "created_at": {
614
+ "type": "string",
615
+ "description": "ISO timestamp when the rule was created."
616
+ },
617
+ "updated_at": {
618
+ "type": "string",
619
+ "description": "ISO timestamp when the rule was last updated."
620
+ },
621
+ "created_by": {
622
+ "type": "string",
623
+ "description": "User ID of the creator."
624
+ },
625
+ "updated_by": {
626
+ "type": "string",
627
+ "description": "User ID of the last updater."
628
+ }
629
+ }
630
+ }
631
+ ],
632
+ "description": "The Validation rule definition."
633
+ },
634
+ "UsedBy": {
635
+ "type": "object",
636
+ "required": [
637
+ "type"
638
+ ],
639
+ "properties": {
640
+ "type": {
641
+ "type": "string",
642
+ "enum": [
643
+ "journey",
644
+ "entity"
645
+ ],
646
+ "description": "The context in which the rule is used (e.g., journey or entity)."
647
+ },
648
+ "schema_slug": {
649
+ "type": "string",
650
+ "description": "Slug of the schema using this rule for entities."
651
+ },
652
+ "source_id": {
653
+ "type": "string",
654
+ "description": "Source identifier for the usage context."
655
+ }
656
+ },
657
+ "description": "Describes where and how a validation rule is applied."
658
+ },
659
+ "RegexRuleType": {
660
+ "description": "Validation rule that uses a regular expression to validate input.",
661
+ "type": "object",
662
+ "required": [
663
+ "type",
664
+ "conditions"
665
+ ],
666
+ "properties": {
667
+ "type": {
668
+ "type": "string",
669
+ "enum": [
670
+ "regex"
671
+ ],
672
+ "description": "Indicates this is a regex-based validation rule."
673
+ },
674
+ "conditions": {
675
+ "$ref": "#/components/schemas/RegexCondition",
676
+ "description": "The conditions that must be met for the rule to trigger"
677
+ }
678
+ }
679
+ },
680
+ "PatternRuleType": {
681
+ "description": "Validation rule that uses a sequence of patterns to validate input.",
682
+ "type": "object",
683
+ "required": [
684
+ "type",
685
+ "conditions"
686
+ ],
687
+ "properties": {
688
+ "type": {
689
+ "type": "string",
690
+ "enum": [
691
+ "pattern"
692
+ ],
693
+ "description": "Indicates this is a pattern-based validation rule."
694
+ },
695
+ "conditions": {
696
+ "$ref": "#/components/schemas/PatternCondition",
697
+ "description": "The conditions that must be met for the rule to trigger"
698
+ }
699
+ }
700
+ },
701
+ "NumericRuleType": {
702
+ "description": "Validation rule for numeric values, supporting range and digit count constraints.",
703
+ "type": "object",
704
+ "required": [
705
+ "type",
706
+ "conditions"
707
+ ],
708
+ "properties": {
709
+ "type": {
710
+ "type": "string",
711
+ "enum": [
712
+ "numeric"
713
+ ],
714
+ "description": "Indicates this is a numeric-based validation rule."
715
+ },
716
+ "conditions": {
717
+ "$ref": "#/components/schemas/NumericCondition",
718
+ "description": "The conditions that must be met for the rule to trigger"
719
+ }
720
+ }
721
+ },
722
+ "RegexCondition": {
723
+ "description": "Condition definition for a regex-based validation rule (2 levels deep)",
724
+ "anyOf": [
725
+ {
726
+ "type": "object",
727
+ "description": "All conditions must be true (AND logic)",
728
+ "properties": {
729
+ "all": {
730
+ "type": "array",
731
+ "items": {
732
+ "anyOf": [
733
+ {
734
+ "$ref": "#/components/schemas/RegexFactCondition"
735
+ },
736
+ {
737
+ "$ref": "#/components/schemas/RegexNestedCondition"
738
+ }
739
+ ]
740
+ }
741
+ }
742
+ },
743
+ "required": [
744
+ "all"
745
+ ],
746
+ "additionalProperties": false
747
+ },
748
+ {
749
+ "type": "object",
750
+ "description": "Any conditions must be true (OR logic)",
751
+ "properties": {
752
+ "any": {
753
+ "type": "array",
754
+ "items": {
755
+ "anyOf": [
756
+ {
757
+ "$ref": "#/components/schemas/RegexFactCondition"
758
+ },
759
+ {
760
+ "$ref": "#/components/schemas/RegexNestedCondition"
761
+ }
762
+ ]
763
+ }
764
+ }
765
+ },
766
+ "required": [
767
+ "any"
768
+ ],
769
+ "additionalProperties": false
770
+ },
771
+ {
772
+ "type": "object",
773
+ "description": "NOT condition (negation)",
774
+ "properties": {
775
+ "not": {
776
+ "anyOf": [
777
+ {
778
+ "$ref": "#/components/schemas/RegexFactCondition"
779
+ },
780
+ {
781
+ "$ref": "#/components/schemas/RegexNestedCondition"
782
+ }
783
+ ]
784
+ }
785
+ },
786
+ "required": [
787
+ "not"
788
+ ],
789
+ "additionalProperties": false
790
+ }
791
+ ]
792
+ },
793
+ "RegexNestedCondition": {
794
+ "description": "Nested condition with logical operators (level 2 only)",
795
+ "anyOf": [
796
+ {
797
+ "type": "object",
798
+ "properties": {
799
+ "all": {
800
+ "type": "array",
801
+ "items": {
802
+ "$ref": "#/components/schemas/RegexFactCondition"
803
+ }
804
+ }
805
+ },
806
+ "required": [
807
+ "all"
808
+ ]
809
+ },
810
+ {
811
+ "type": "object",
812
+ "properties": {
813
+ "any": {
814
+ "type": "array",
815
+ "items": {
816
+ "$ref": "#/components/schemas/RegexFactCondition"
817
+ }
818
+ }
819
+ },
820
+ "required": [
821
+ "any"
822
+ ]
823
+ },
824
+ {
825
+ "type": "object",
826
+ "properties": {
827
+ "not": {
828
+ "$ref": "#/components/schemas/RegexFactCondition"
829
+ }
830
+ },
831
+ "required": [
832
+ "not"
833
+ ]
834
+ }
835
+ ]
836
+ },
837
+ "RegexFactCondition": {
838
+ "description": "Fact-based condition for regex validation",
839
+ "type": "object",
840
+ "required": [
841
+ "fact",
842
+ "operator",
843
+ "value"
844
+ ],
845
+ "properties": {
846
+ "fact": {
847
+ "type": "string",
848
+ "enum": [
849
+ "inputValue"
850
+ ],
851
+ "description": "The name of the value to validate. Should always be 'inputValue' because this property name is passed to the engine"
852
+ },
853
+ "operator": {
854
+ "type": "string",
855
+ "enum": [
856
+ "regexMatch"
857
+ ],
858
+ "description": "The operator to use for comparison"
859
+ },
860
+ "value": {
861
+ "type": "string",
862
+ "description": "The actual regex"
863
+ },
864
+ "params": {
865
+ "description": "Additional parameters for the condition",
866
+ "type": "object",
867
+ "properties": {
868
+ "errorMessage": {
869
+ "type": "string",
870
+ "description": "Custom error message"
871
+ }
872
+ }
873
+ }
874
+ }
875
+ },
876
+ "PatternCondition": {
877
+ "description": "Condition definition for a pattern-based validation rule (2 levels deep)",
878
+ "anyOf": [
879
+ {
880
+ "type": "object",
881
+ "description": "All conditions must be true (AND logic)",
882
+ "properties": {
883
+ "all": {
884
+ "type": "array",
885
+ "items": {
886
+ "anyOf": [
887
+ {
888
+ "$ref": "#/components/schemas/PatternFactCondition"
889
+ },
890
+ {
891
+ "$ref": "#/components/schemas/PatternNestedCondition"
892
+ }
893
+ ]
894
+ }
895
+ }
896
+ },
897
+ "required": [
898
+ "all"
899
+ ],
900
+ "additionalProperties": false
901
+ },
902
+ {
903
+ "type": "object",
904
+ "description": "Any conditions must be true (OR logic)",
905
+ "properties": {
906
+ "any": {
907
+ "type": "array",
908
+ "items": {
909
+ "anyOf": [
910
+ {
911
+ "$ref": "#/components/schemas/PatternFactCondition"
912
+ },
913
+ {
914
+ "$ref": "#/components/schemas/PatternNestedCondition"
915
+ }
916
+ ]
917
+ }
918
+ }
919
+ },
920
+ "required": [
921
+ "any"
922
+ ],
923
+ "additionalProperties": false
924
+ },
925
+ {
926
+ "type": "object",
927
+ "description": "NOT condition (negation)",
928
+ "properties": {
929
+ "not": {
930
+ "anyOf": [
931
+ {
932
+ "$ref": "#/components/schemas/PatternFactCondition"
933
+ },
934
+ {
935
+ "$ref": "#/components/schemas/PatternNestedCondition"
936
+ }
937
+ ]
938
+ }
939
+ },
940
+ "required": [
941
+ "not"
942
+ ],
943
+ "additionalProperties": false
944
+ }
945
+ ]
946
+ },
947
+ "PatternNestedCondition": {
948
+ "description": "Nested condition with logical operators (level 2 only)",
949
+ "anyOf": [
950
+ {
951
+ "type": "object",
952
+ "properties": {
953
+ "all": {
954
+ "type": "array",
955
+ "items": {
956
+ "$ref": "#/components/schemas/PatternFactCondition"
957
+ }
958
+ }
959
+ },
960
+ "required": [
961
+ "all"
962
+ ]
963
+ },
964
+ {
965
+ "type": "object",
966
+ "properties": {
967
+ "any": {
968
+ "type": "array",
969
+ "items": {
970
+ "$ref": "#/components/schemas/PatternFactCondition"
971
+ }
972
+ }
973
+ },
974
+ "required": [
975
+ "any"
976
+ ]
977
+ },
978
+ {
979
+ "type": "object",
980
+ "properties": {
981
+ "not": {
982
+ "$ref": "#/components/schemas/PatternFactCondition"
983
+ }
984
+ },
985
+ "required": [
986
+ "not"
987
+ ]
988
+ }
989
+ ]
990
+ },
991
+ "PatternFactCondition": {
992
+ "description": "Fact-based condition for pattern validation",
993
+ "type": "object",
994
+ "oneOf": [
995
+ {
996
+ "description": "Numeric condition (total-length fact)",
997
+ "required": [
998
+ "fact",
999
+ "operator",
1000
+ "value"
1001
+ ],
1002
+ "properties": {
1003
+ "fact": {
1004
+ "type": "string",
1005
+ "enum": [
1006
+ "total-length"
1007
+ ],
1008
+ "description": "The name of the value to validate."
1009
+ },
1010
+ "operator": {
1011
+ "type": "string",
1012
+ "enum": [
1013
+ "equal",
1014
+ "notEqual",
1015
+ "lessThan",
1016
+ "lessThanInclusive",
1017
+ "greaterThan",
1018
+ "greaterThanInclusive"
1019
+ ],
1020
+ "description": "Numeric comparison operator"
1021
+ },
1022
+ "value": {
1023
+ "type": "number",
1024
+ "description": "Numeric value to compare against"
1025
+ },
1026
+ "params": {
1027
+ "description": "Additional parameters for the condition",
1028
+ "type": "object",
1029
+ "properties": {
1030
+ "errorMessage": {
1031
+ "type": "string",
1032
+ "description": "Custom error message"
1033
+ },
1034
+ "start": {
1035
+ "type": "number",
1036
+ "description": "From where to check"
1037
+ },
1038
+ "end": {
1039
+ "type": "number",
1040
+ "description": "To where to check"
1041
+ }
1042
+ }
1043
+ }
1044
+ }
1045
+ },
1046
+ {
1047
+ "description": "Exact digits condition",
1048
+ "required": [
1049
+ "fact",
1050
+ "operator",
1051
+ "value"
1052
+ ],
1053
+ "properties": {
1054
+ "fact": {
1055
+ "type": "string",
1056
+ "enum": [
1057
+ "static-check",
1058
+ "total-length"
1059
+ ],
1060
+ "description": "The name of the value to validate."
1061
+ },
1062
+ "operator": {
1063
+ "type": "string",
1064
+ "enum": [
1065
+ "exactlyNDigits"
1066
+ ],
1067
+ "description": "Exact digit count operator"
1068
+ },
1069
+ "value": {
1070
+ "type": "number",
1071
+ "description": "Number of digits required"
1072
+ },
1073
+ "params": {
1074
+ "description": "Additional parameters for the condition",
1075
+ "type": "object",
1076
+ "properties": {
1077
+ "errorMessage": {
1078
+ "type": "string",
1079
+ "description": "Custom error message"
1080
+ },
1081
+ "start": {
1082
+ "type": "number",
1083
+ "description": "From where to check"
1084
+ },
1085
+ "end": {
1086
+ "type": "number",
1087
+ "description": "To where to check"
1088
+ }
1089
+ }
1090
+ }
1091
+ }
1092
+ },
1093
+ {
1094
+ "description": "Array-based condition (in, notIn, contains, doesNotContain)",
1095
+ "required": [
1096
+ "fact",
1097
+ "operator",
1098
+ "value"
1099
+ ],
1100
+ "properties": {
1101
+ "fact": {
1102
+ "type": "string",
1103
+ "enum": [
1104
+ "static-check"
1105
+ ],
1106
+ "description": "The name of the value to validate."
1107
+ },
1108
+ "operator": {
1109
+ "type": "string",
1110
+ "enum": [
1111
+ "in",
1112
+ "notIn",
1113
+ "contains",
1114
+ "doesNotContain"
1115
+ ],
1116
+ "description": "Array-based comparison operator"
1117
+ },
1118
+ "value": {
1119
+ "type": "array",
1120
+ "items": {
1121
+ "type": "string"
1122
+ },
1123
+ "description": "Array of string values for array-based operators"
1124
+ },
1125
+ "params": {
1126
+ "description": "Additional parameters for the condition",
1127
+ "type": "object",
1128
+ "properties": {
1129
+ "errorMessage": {
1130
+ "type": "string",
1131
+ "description": "Custom error message"
1132
+ },
1133
+ "start": {
1134
+ "type": "number",
1135
+ "description": "From where to check"
1136
+ },
1137
+ "end": {
1138
+ "type": "number",
1139
+ "description": "To where to check"
1140
+ }
1141
+ }
1142
+ }
1143
+ }
1144
+ },
1145
+ {
1146
+ "description": "String-based condition",
1147
+ "required": [
1148
+ "fact",
1149
+ "operator",
1150
+ "value"
1151
+ ],
1152
+ "properties": {
1153
+ "fact": {
1154
+ "type": "string",
1155
+ "enum": [
1156
+ "static-check"
1157
+ ],
1158
+ "description": "The name of the value to validate."
1159
+ },
1160
+ "operator": {
1161
+ "type": "string",
1162
+ "enum": [
1163
+ "equal",
1164
+ "notEqual"
1165
+ ],
1166
+ "description": "String comparison operator"
1167
+ },
1168
+ "value": {
1169
+ "type": "string",
1170
+ "description": "String value to compare against"
1171
+ },
1172
+ "params": {
1173
+ "description": "Additional parameters for the condition",
1174
+ "type": "object",
1175
+ "properties": {
1176
+ "errorMessage": {
1177
+ "type": "string",
1178
+ "description": "Custom error message"
1179
+ },
1180
+ "start": {
1181
+ "type": "number",
1182
+ "description": "From where to check"
1183
+ },
1184
+ "end": {
1185
+ "type": "number",
1186
+ "description": "To where to check"
1187
+ }
1188
+ }
1189
+ }
1190
+ }
1191
+ }
1192
+ ]
1193
+ },
1194
+ "NumericCondition": {
1195
+ "description": "Condition definition for a numeric-based validation rule (2 levels deep)",
1196
+ "anyOf": [
1197
+ {
1198
+ "type": "object",
1199
+ "description": "All conditions must be true (AND logic)",
1200
+ "properties": {
1201
+ "all": {
1202
+ "type": "array",
1203
+ "items": {
1204
+ "anyOf": [
1205
+ {
1206
+ "$ref": "#/components/schemas/NumericFactCondition"
1207
+ },
1208
+ {
1209
+ "$ref": "#/components/schemas/NumericNestedCondition"
1210
+ }
1211
+ ]
1212
+ }
1213
+ }
1214
+ },
1215
+ "required": [
1216
+ "all"
1217
+ ],
1218
+ "additionalProperties": false
1219
+ },
1220
+ {
1221
+ "type": "object",
1222
+ "description": "Any conditions must be true (OR logic)",
1223
+ "properties": {
1224
+ "any": {
1225
+ "type": "array",
1226
+ "items": {
1227
+ "anyOf": [
1228
+ {
1229
+ "$ref": "#/components/schemas/NumericFactCondition"
1230
+ },
1231
+ {
1232
+ "$ref": "#/components/schemas/NumericNestedCondition"
1233
+ }
1234
+ ]
1235
+ }
1236
+ }
1237
+ },
1238
+ "required": [
1239
+ "any"
1240
+ ],
1241
+ "additionalProperties": false
1242
+ },
1243
+ {
1244
+ "type": "object",
1245
+ "description": "NOT condition (negation)",
1246
+ "properties": {
1247
+ "not": {
1248
+ "anyOf": [
1249
+ {
1250
+ "$ref": "#/components/schemas/NumericFactCondition"
1251
+ },
1252
+ {
1253
+ "$ref": "#/components/schemas/NumericNestedCondition"
1254
+ }
1255
+ ]
1256
+ }
1257
+ },
1258
+ "required": [
1259
+ "not"
1260
+ ],
1261
+ "additionalProperties": false
1262
+ }
1263
+ ]
1264
+ },
1265
+ "NumericNestedCondition": {
1266
+ "description": "Nested condition with logical operators (level 2 only)",
1267
+ "anyOf": [
1268
+ {
1269
+ "type": "object",
1270
+ "properties": {
1271
+ "all": {
1272
+ "type": "array",
1273
+ "items": {
1274
+ "$ref": "#/components/schemas/NumericFactCondition"
1275
+ }
1276
+ }
1277
+ },
1278
+ "required": [
1279
+ "all"
1280
+ ]
1281
+ },
1282
+ {
1283
+ "type": "object",
1284
+ "properties": {
1285
+ "any": {
1286
+ "type": "array",
1287
+ "items": {
1288
+ "$ref": "#/components/schemas/NumericFactCondition"
1289
+ }
1290
+ }
1291
+ },
1292
+ "required": [
1293
+ "any"
1294
+ ]
1295
+ },
1296
+ {
1297
+ "type": "object",
1298
+ "properties": {
1299
+ "not": {
1300
+ "$ref": "#/components/schemas/NumericFactCondition"
1301
+ }
1302
+ },
1303
+ "required": [
1304
+ "not"
1305
+ ]
1306
+ }
1307
+ ]
1308
+ },
1309
+ "NumericFactCondition": {
1310
+ "description": "Fact-based condition for numeric validation",
1311
+ "type": "object",
1312
+ "oneOf": [
1313
+ {
1314
+ "description": "Numeric value comparison",
1315
+ "required": [
1316
+ "fact",
1317
+ "operator",
1318
+ "value"
1319
+ ],
1320
+ "properties": {
1321
+ "fact": {
1322
+ "type": "string",
1323
+ "enum": [
1324
+ "numeric-value",
1325
+ "total-length"
1326
+ ],
1327
+ "description": "The numeric value extracted from input; The amount of digits"
1328
+ },
1329
+ "operator": {
1330
+ "type": "string",
1331
+ "enum": [
1332
+ "equal",
1333
+ "notEqual",
1334
+ "lessThan",
1335
+ "lessThanInclusive",
1336
+ "greaterThan",
1337
+ "greaterThanInclusive"
1338
+ ],
1339
+ "description": "Numeric comparison operator"
1340
+ },
1341
+ "value": {
1342
+ "type": "number",
1343
+ "description": "Numeric value to compare against"
1344
+ },
1345
+ "params": {
1346
+ "description": "Additional parameters for the condition",
1347
+ "type": "object",
1348
+ "properties": {
1349
+ "errorMessage": {
1350
+ "type": "string",
1351
+ "description": "Custom error message"
1352
+ }
1353
+ }
1354
+ }
1355
+ }
1356
+ },
1357
+ {
1358
+ "description": "Integer digits count validation",
1359
+ "required": [
1360
+ "fact",
1361
+ "operator",
1362
+ "value"
1363
+ ],
1364
+ "properties": {
1365
+ "fact": {
1366
+ "type": "string",
1367
+ "enum": [
1368
+ "integer-digits-count"
1369
+ ],
1370
+ "description": "Count of integer digits (excludes leading zeros unless allowed)"
1371
+ },
1372
+ "operator": {
1373
+ "type": "string",
1374
+ "enum": [
1375
+ "equal",
1376
+ "exactlyNDigits",
1377
+ "minIntegerDigits",
1378
+ "maxIntegerDigits"
1379
+ ],
1380
+ "description": "Digit count comparison operator"
1381
+ },
1382
+ "value": {
1383
+ "type": "number",
1384
+ "description": "Expected number of integer digits"
1385
+ },
1386
+ "params": {
1387
+ "description": "Additional parameters for the condition",
1388
+ "type": "object",
1389
+ "properties": {
1390
+ "errorMessage": {
1391
+ "type": "string",
1392
+ "description": "Custom error message"
1393
+ },
1394
+ "allowLeadingZeroes": {
1395
+ "type": "boolean",
1396
+ "description": "Whether to count leading zeroes in digit count",
1397
+ "default": false
1398
+ }
1399
+ }
1400
+ }
1401
+ }
1402
+ },
1403
+ {
1404
+ "description": "Decimal digits count validation",
1405
+ "required": [
1406
+ "fact",
1407
+ "operator",
1408
+ "value"
1409
+ ],
1410
+ "properties": {
1411
+ "fact": {
1412
+ "type": "string",
1413
+ "enum": [
1414
+ "decimal-digits-count"
1415
+ ],
1416
+ "description": "Count of decimal digits"
1417
+ },
1418
+ "operator": {
1419
+ "type": "string",
1420
+ "enum": [
1421
+ "equal",
1422
+ "minDecimalDigits",
1423
+ "maxDecimalDigits"
1424
+ ],
1425
+ "description": "Decimal digit count comparison operator"
1426
+ },
1427
+ "value": {
1428
+ "type": "number",
1429
+ "description": "Expected number of decimal digits"
1430
+ },
1431
+ "params": {
1432
+ "description": "Additional parameters for the condition",
1433
+ "type": "object",
1434
+ "properties": {
1435
+ "errorMessage": {
1436
+ "type": "string",
1437
+ "description": "Custom error message"
1438
+ }
1439
+ }
1440
+ }
1441
+ }
1442
+ },
1443
+ {
1444
+ "description": "Leading zeros validation",
1445
+ "required": [
1446
+ "fact",
1447
+ "operator",
1448
+ "value"
1449
+ ],
1450
+ "properties": {
1451
+ "fact": {
1452
+ "type": "string",
1453
+ "enum": [
1454
+ "has-leading-zeroes"
1455
+ ],
1456
+ "description": "Whether the input has leading zeros"
1457
+ },
1458
+ "operator": {
1459
+ "type": "string",
1460
+ "enum": [
1461
+ "equal",
1462
+ "notAllowed"
1463
+ ],
1464
+ "description": "Leading zeros check operator"
1465
+ },
1466
+ "value": {
1467
+ "type": "boolean",
1468
+ "description": "Whether leading zeros should be present or not"
1469
+ },
1470
+ "params": {
1471
+ "description": "Additional parameters for the condition",
1472
+ "type": "object",
1473
+ "properties": {
1474
+ "errorMessage": {
1475
+ "type": "string",
1476
+ "description": "Custom error message"
1477
+ }
1478
+ }
1479
+ }
1480
+ }
1481
+ }
1482
+ ]
1483
+ }
1484
+ }
1485
+ },
1486
+ "servers": [
1487
+ {
1488
+ "url": "https://validation-rules.sls.epilot.io"
1489
+ }
1490
+ ]
1491
+ }