@hyperscale0/udl 3.1.0 → 3.2.0

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.
@@ -59,6 +59,1469 @@
59
59
  "items": {
60
60
  "type": "object",
61
61
  "properties": {
62
+ "reports": {
63
+ "maxItems": 16,
64
+ "type": "array",
65
+ "items": {
66
+ "type": "object",
67
+ "properties": {
68
+ "identity": {
69
+ "type": "object",
70
+ "properties": {
71
+ "id": {
72
+ "type": "string",
73
+ "maxLength": 80,
74
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
75
+ },
76
+ "version": {
77
+ "type": "integer",
78
+ "exclusiveMinimum": 0,
79
+ "maximum": 9007199254740991
80
+ },
81
+ "description": {
82
+ "type": "string",
83
+ "minLength": 1,
84
+ "maxLength": 2048
85
+ }
86
+ },
87
+ "required": ["id", "version", "description"],
88
+ "additionalProperties": false
89
+ },
90
+ "scope": {
91
+ "type": "object",
92
+ "properties": {
93
+ "kind": {
94
+ "type": "string",
95
+ "enum": ["product", "company"]
96
+ },
97
+ "classification": {
98
+ "type": "string",
99
+ "enum": ["internal", "personal", "restricted"]
100
+ },
101
+ "currency": {
102
+ "type": "string",
103
+ "pattern": "^[A-Z]{3}$"
104
+ }
105
+ },
106
+ "required": ["kind", "classification", "currency"],
107
+ "additionalProperties": false
108
+ },
109
+ "datasets": {
110
+ "minItems": 1,
111
+ "maxItems": 16,
112
+ "type": "array",
113
+ "items": {
114
+ "type": "object",
115
+ "properties": {
116
+ "id": {
117
+ "type": "string",
118
+ "maxLength": 80,
119
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
120
+ },
121
+ "source": {
122
+ "type": "string",
123
+ "enum": [
124
+ "instrument",
125
+ "account",
126
+ "identity",
127
+ "operation"
128
+ ]
129
+ },
130
+ "instruments": {
131
+ "maxItems": 32,
132
+ "type": "array",
133
+ "items": {
134
+ "type": "string",
135
+ "maxLength": 80,
136
+ "pattern": "^[a-z][a-zA-Z0-9_]*$",
137
+ "x-udl-reference": "instrument"
138
+ }
139
+ },
140
+ "rowKey": {
141
+ "type": "string",
142
+ "maxLength": 80,
143
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
144
+ },
145
+ "columns": {
146
+ "minItems": 1,
147
+ "maxItems": 64,
148
+ "type": "array",
149
+ "items": {
150
+ "type": "object",
151
+ "properties": {
152
+ "name": {
153
+ "type": "string",
154
+ "maxLength": 80,
155
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
156
+ },
157
+ "field": {
158
+ "type": "string",
159
+ "maxLength": 240,
160
+ "pattern": "^[a-z][a-zA-Z0-9_]*(\\.[a-z][a-zA-Z0-9_]*)*$"
161
+ },
162
+ "type": {
163
+ "oneOf": [
164
+ {
165
+ "type": "object",
166
+ "properties": {
167
+ "kind": {
168
+ "type": "string",
169
+ "const": "money"
170
+ },
171
+ "currency": {
172
+ "type": "string",
173
+ "pattern": "^[A-Z]{3}$"
174
+ }
175
+ },
176
+ "required": ["kind", "currency"],
177
+ "additionalProperties": false
178
+ },
179
+ {
180
+ "type": "object",
181
+ "properties": {
182
+ "kind": {
183
+ "type": "string",
184
+ "enum": [
185
+ "text",
186
+ "integer",
187
+ "boolean",
188
+ "date"
189
+ ]
190
+ }
191
+ },
192
+ "required": ["kind"],
193
+ "additionalProperties": false
194
+ }
195
+ ]
196
+ },
197
+ "required": {
198
+ "type": "boolean"
199
+ }
200
+ },
201
+ "required": ["name", "field", "type", "required"],
202
+ "additionalProperties": false
203
+ }
204
+ },
205
+ "expressions": {
206
+ "maxItems": 128,
207
+ "type": "array",
208
+ "items": {
209
+ "oneOf": [
210
+ {
211
+ "type": "object",
212
+ "properties": {
213
+ "id": {
214
+ "type": "string",
215
+ "maxLength": 80,
216
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
217
+ },
218
+ "op": {
219
+ "type": "string",
220
+ "const": "field"
221
+ },
222
+ "path": {
223
+ "type": "string",
224
+ "maxLength": 240,
225
+ "pattern": "^[a-z][a-zA-Z0-9_]*(\\.[a-z][a-zA-Z0-9_]*)*$"
226
+ }
227
+ },
228
+ "required": ["id", "op", "path"],
229
+ "additionalProperties": false
230
+ },
231
+ {
232
+ "type": "object",
233
+ "properties": {
234
+ "id": {
235
+ "type": "string",
236
+ "maxLength": 80,
237
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
238
+ },
239
+ "op": {
240
+ "type": "string",
241
+ "const": "literal"
242
+ },
243
+ "type": {
244
+ "oneOf": [
245
+ {
246
+ "type": "object",
247
+ "properties": {
248
+ "kind": {
249
+ "type": "string",
250
+ "const": "money"
251
+ },
252
+ "currency": {
253
+ "type": "string",
254
+ "pattern": "^[A-Z]{3}$"
255
+ }
256
+ },
257
+ "required": ["kind", "currency"],
258
+ "additionalProperties": false
259
+ },
260
+ {
261
+ "type": "object",
262
+ "properties": {
263
+ "kind": {
264
+ "type": "string",
265
+ "enum": [
266
+ "text",
267
+ "integer",
268
+ "boolean",
269
+ "date"
270
+ ]
271
+ }
272
+ },
273
+ "required": ["kind"],
274
+ "additionalProperties": false
275
+ }
276
+ ]
277
+ },
278
+ "value": {
279
+ "anyOf": [
280
+ {
281
+ "type": "string",
282
+ "maxLength": 2048
283
+ },
284
+ {
285
+ "type": "integer",
286
+ "minimum": -9007199254740991,
287
+ "maximum": 9007199254740991
288
+ },
289
+ {
290
+ "type": "boolean"
291
+ }
292
+ ]
293
+ }
294
+ },
295
+ "required": ["id", "op", "type", "value"],
296
+ "additionalProperties": false
297
+ },
298
+ {
299
+ "type": "object",
300
+ "properties": {
301
+ "id": {
302
+ "type": "string",
303
+ "maxLength": 80,
304
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
305
+ },
306
+ "op": {
307
+ "type": "string",
308
+ "const": "parameter"
309
+ },
310
+ "name": {
311
+ "type": "string",
312
+ "enum": [
313
+ "periodStart",
314
+ "periodEnd",
315
+ "observationAt"
316
+ ]
317
+ }
318
+ },
319
+ "required": ["id", "op", "name"],
320
+ "additionalProperties": false
321
+ },
322
+ {
323
+ "type": "object",
324
+ "properties": {
325
+ "id": {
326
+ "type": "string",
327
+ "maxLength": 80,
328
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
329
+ },
330
+ "op": {
331
+ "type": "string",
332
+ "enum": [
333
+ "sum",
334
+ "subtract",
335
+ "minimum",
336
+ "maximum",
337
+ "equal",
338
+ "less",
339
+ "atMost",
340
+ "and",
341
+ "or",
342
+ "daysBetween"
343
+ ]
344
+ },
345
+ "left": {
346
+ "type": "string",
347
+ "maxLength": 80,
348
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
349
+ },
350
+ "right": {
351
+ "type": "string",
352
+ "maxLength": 80,
353
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
354
+ }
355
+ },
356
+ "required": ["id", "op", "left", "right"],
357
+ "additionalProperties": false
358
+ },
359
+ {
360
+ "type": "object",
361
+ "properties": {
362
+ "id": {
363
+ "type": "string",
364
+ "maxLength": 80,
365
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
366
+ },
367
+ "op": {
368
+ "type": "string",
369
+ "const": "not"
370
+ },
371
+ "value": {
372
+ "type": "string",
373
+ "maxLength": 80,
374
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
375
+ }
376
+ },
377
+ "required": ["id", "op", "value"],
378
+ "additionalProperties": false
379
+ },
380
+ {
381
+ "type": "object",
382
+ "properties": {
383
+ "id": {
384
+ "type": "string",
385
+ "maxLength": 80,
386
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
387
+ },
388
+ "op": {
389
+ "type": "string",
390
+ "const": "choose"
391
+ },
392
+ "condition": {
393
+ "type": "string",
394
+ "maxLength": 80,
395
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
396
+ },
397
+ "yes": {
398
+ "type": "string",
399
+ "maxLength": 80,
400
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
401
+ },
402
+ "no": {
403
+ "type": "string",
404
+ "maxLength": 80,
405
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
406
+ }
407
+ },
408
+ "required": [
409
+ "id",
410
+ "op",
411
+ "condition",
412
+ "yes",
413
+ "no"
414
+ ],
415
+ "additionalProperties": false
416
+ },
417
+ {
418
+ "type": "object",
419
+ "properties": {
420
+ "id": {
421
+ "type": "string",
422
+ "maxLength": 80,
423
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
424
+ },
425
+ "op": {
426
+ "type": "string",
427
+ "const": "bucket"
428
+ },
429
+ "value": {
430
+ "type": "string",
431
+ "maxLength": 80,
432
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
433
+ },
434
+ "unit": {
435
+ "type": "string",
436
+ "enum": ["month", "quarter"]
437
+ }
438
+ },
439
+ "required": ["id", "op", "value", "unit"],
440
+ "additionalProperties": false
441
+ },
442
+ {
443
+ "type": "object",
444
+ "properties": {
445
+ "id": {
446
+ "type": "string",
447
+ "maxLength": 80,
448
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
449
+ },
450
+ "op": {
451
+ "type": "string",
452
+ "const": "ratio"
453
+ },
454
+ "numerator": {
455
+ "type": "string",
456
+ "maxLength": 80,
457
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
458
+ },
459
+ "denominator": {
460
+ "type": "string",
461
+ "maxLength": 80,
462
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
463
+ },
464
+ "scale": {
465
+ "type": "integer",
466
+ "minimum": 1,
467
+ "maximum": 1000000
468
+ },
469
+ "rounding": {
470
+ "type": "string",
471
+ "enum": ["floor", "halfUp"]
472
+ },
473
+ "zero": {
474
+ "type": "string",
475
+ "enum": ["refuse", "null"]
476
+ }
477
+ },
478
+ "required": [
479
+ "id",
480
+ "op",
481
+ "numerator",
482
+ "denominator",
483
+ "scale",
484
+ "rounding",
485
+ "zero"
486
+ ],
487
+ "additionalProperties": false
488
+ }
489
+ ]
490
+ }
491
+ },
492
+ "selection": {
493
+ "type": "string",
494
+ "maxLength": 80,
495
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
496
+ }
497
+ },
498
+ "required": [
499
+ "id",
500
+ "source",
501
+ "instruments",
502
+ "rowKey",
503
+ "columns",
504
+ "expressions"
505
+ ],
506
+ "additionalProperties": false
507
+ }
508
+ },
509
+ "time": {
510
+ "type": "object",
511
+ "properties": {
512
+ "timezone": {
513
+ "type": "string",
514
+ "const": "Asia/Riyadh"
515
+ },
516
+ "boundary": {
517
+ "type": "string",
518
+ "const": "startInclusiveEndExclusive"
519
+ },
520
+ "observation": {
521
+ "type": "string",
522
+ "const": "periodEnd"
523
+ },
524
+ "history": {
525
+ "type": "string",
526
+ "const": "retainedOnly"
527
+ }
528
+ },
529
+ "required": [
530
+ "timezone",
531
+ "boundary",
532
+ "observation",
533
+ "history"
534
+ ],
535
+ "additionalProperties": false
536
+ },
537
+ "selection": {
538
+ "type": "object",
539
+ "properties": {
540
+ "dataset": {
541
+ "type": "string",
542
+ "maxLength": 80,
543
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
544
+ },
545
+ "predicate": {
546
+ "type": "string",
547
+ "maxLength": 80,
548
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
549
+ }
550
+ },
551
+ "required": ["dataset"],
552
+ "additionalProperties": false
553
+ },
554
+ "calculation": {
555
+ "type": "object",
556
+ "properties": {
557
+ "joins": {
558
+ "maxItems": 16,
559
+ "type": "array",
560
+ "items": {
561
+ "type": "object",
562
+ "properties": {
563
+ "dataset": {
564
+ "type": "string",
565
+ "maxLength": 80,
566
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
567
+ },
568
+ "local": {
569
+ "type": "string",
570
+ "maxLength": 80,
571
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
572
+ },
573
+ "foreign": {
574
+ "type": "string",
575
+ "maxLength": 80,
576
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
577
+ },
578
+ "cardinality": {
579
+ "type": "string",
580
+ "enum": ["one", "many"]
581
+ },
582
+ "missing": {
583
+ "type": "string",
584
+ "enum": ["refuse", "allow"]
585
+ },
586
+ "aggregates": {
587
+ "maxItems": 32,
588
+ "type": "array",
589
+ "items": {
590
+ "type": "object",
591
+ "properties": {
592
+ "name": {
593
+ "type": "string",
594
+ "maxLength": 80,
595
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
596
+ },
597
+ "op": {
598
+ "type": "string",
599
+ "enum": [
600
+ "sum",
601
+ "average",
602
+ "count",
603
+ "minimum",
604
+ "maximum"
605
+ ]
606
+ },
607
+ "rounding": {
608
+ "type": "string",
609
+ "enum": ["floor", "halfUp"]
610
+ },
611
+ "value": {
612
+ "type": "string",
613
+ "maxLength": 80,
614
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
615
+ }
616
+ },
617
+ "required": ["name", "op"],
618
+ "additionalProperties": false
619
+ }
620
+ }
621
+ },
622
+ "required": [
623
+ "dataset",
624
+ "local",
625
+ "foreign",
626
+ "cardinality",
627
+ "missing",
628
+ "aggregates"
629
+ ],
630
+ "additionalProperties": false
631
+ }
632
+ },
633
+ "expressions": {
634
+ "maxItems": 128,
635
+ "type": "array",
636
+ "items": {
637
+ "oneOf": [
638
+ {
639
+ "type": "object",
640
+ "properties": {
641
+ "id": {
642
+ "type": "string",
643
+ "maxLength": 80,
644
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
645
+ },
646
+ "op": {
647
+ "type": "string",
648
+ "const": "field"
649
+ },
650
+ "path": {
651
+ "type": "string",
652
+ "maxLength": 240,
653
+ "pattern": "^[a-z][a-zA-Z0-9_]*(\\.[a-z][a-zA-Z0-9_]*)*$"
654
+ }
655
+ },
656
+ "required": ["id", "op", "path"],
657
+ "additionalProperties": false
658
+ },
659
+ {
660
+ "type": "object",
661
+ "properties": {
662
+ "id": {
663
+ "type": "string",
664
+ "maxLength": 80,
665
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
666
+ },
667
+ "op": {
668
+ "type": "string",
669
+ "const": "literal"
670
+ },
671
+ "type": {
672
+ "oneOf": [
673
+ {
674
+ "type": "object",
675
+ "properties": {
676
+ "kind": {
677
+ "type": "string",
678
+ "const": "money"
679
+ },
680
+ "currency": {
681
+ "type": "string",
682
+ "pattern": "^[A-Z]{3}$"
683
+ }
684
+ },
685
+ "required": ["kind", "currency"],
686
+ "additionalProperties": false
687
+ },
688
+ {
689
+ "type": "object",
690
+ "properties": {
691
+ "kind": {
692
+ "type": "string",
693
+ "enum": [
694
+ "text",
695
+ "integer",
696
+ "boolean",
697
+ "date"
698
+ ]
699
+ }
700
+ },
701
+ "required": ["kind"],
702
+ "additionalProperties": false
703
+ }
704
+ ]
705
+ },
706
+ "value": {
707
+ "anyOf": [
708
+ {
709
+ "type": "string",
710
+ "maxLength": 2048
711
+ },
712
+ {
713
+ "type": "integer",
714
+ "minimum": -9007199254740991,
715
+ "maximum": 9007199254740991
716
+ },
717
+ {
718
+ "type": "boolean"
719
+ }
720
+ ]
721
+ }
722
+ },
723
+ "required": ["id", "op", "type", "value"],
724
+ "additionalProperties": false
725
+ },
726
+ {
727
+ "type": "object",
728
+ "properties": {
729
+ "id": {
730
+ "type": "string",
731
+ "maxLength": 80,
732
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
733
+ },
734
+ "op": {
735
+ "type": "string",
736
+ "const": "parameter"
737
+ },
738
+ "name": {
739
+ "type": "string",
740
+ "enum": [
741
+ "periodStart",
742
+ "periodEnd",
743
+ "observationAt"
744
+ ]
745
+ }
746
+ },
747
+ "required": ["id", "op", "name"],
748
+ "additionalProperties": false
749
+ },
750
+ {
751
+ "type": "object",
752
+ "properties": {
753
+ "id": {
754
+ "type": "string",
755
+ "maxLength": 80,
756
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
757
+ },
758
+ "op": {
759
+ "type": "string",
760
+ "enum": [
761
+ "sum",
762
+ "subtract",
763
+ "minimum",
764
+ "maximum",
765
+ "equal",
766
+ "less",
767
+ "atMost",
768
+ "and",
769
+ "or",
770
+ "daysBetween"
771
+ ]
772
+ },
773
+ "left": {
774
+ "type": "string",
775
+ "maxLength": 80,
776
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
777
+ },
778
+ "right": {
779
+ "type": "string",
780
+ "maxLength": 80,
781
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
782
+ }
783
+ },
784
+ "required": ["id", "op", "left", "right"],
785
+ "additionalProperties": false
786
+ },
787
+ {
788
+ "type": "object",
789
+ "properties": {
790
+ "id": {
791
+ "type": "string",
792
+ "maxLength": 80,
793
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
794
+ },
795
+ "op": {
796
+ "type": "string",
797
+ "const": "not"
798
+ },
799
+ "value": {
800
+ "type": "string",
801
+ "maxLength": 80,
802
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
803
+ }
804
+ },
805
+ "required": ["id", "op", "value"],
806
+ "additionalProperties": false
807
+ },
808
+ {
809
+ "type": "object",
810
+ "properties": {
811
+ "id": {
812
+ "type": "string",
813
+ "maxLength": 80,
814
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
815
+ },
816
+ "op": {
817
+ "type": "string",
818
+ "const": "choose"
819
+ },
820
+ "condition": {
821
+ "type": "string",
822
+ "maxLength": 80,
823
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
824
+ },
825
+ "yes": {
826
+ "type": "string",
827
+ "maxLength": 80,
828
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
829
+ },
830
+ "no": {
831
+ "type": "string",
832
+ "maxLength": 80,
833
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
834
+ }
835
+ },
836
+ "required": ["id", "op", "condition", "yes", "no"],
837
+ "additionalProperties": false
838
+ },
839
+ {
840
+ "type": "object",
841
+ "properties": {
842
+ "id": {
843
+ "type": "string",
844
+ "maxLength": 80,
845
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
846
+ },
847
+ "op": {
848
+ "type": "string",
849
+ "const": "bucket"
850
+ },
851
+ "value": {
852
+ "type": "string",
853
+ "maxLength": 80,
854
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
855
+ },
856
+ "unit": {
857
+ "type": "string",
858
+ "enum": ["month", "quarter"]
859
+ }
860
+ },
861
+ "required": ["id", "op", "value", "unit"],
862
+ "additionalProperties": false
863
+ },
864
+ {
865
+ "type": "object",
866
+ "properties": {
867
+ "id": {
868
+ "type": "string",
869
+ "maxLength": 80,
870
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
871
+ },
872
+ "op": {
873
+ "type": "string",
874
+ "const": "ratio"
875
+ },
876
+ "numerator": {
877
+ "type": "string",
878
+ "maxLength": 80,
879
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
880
+ },
881
+ "denominator": {
882
+ "type": "string",
883
+ "maxLength": 80,
884
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
885
+ },
886
+ "scale": {
887
+ "type": "integer",
888
+ "minimum": 1,
889
+ "maximum": 1000000
890
+ },
891
+ "rounding": {
892
+ "type": "string",
893
+ "enum": ["floor", "halfUp"]
894
+ },
895
+ "zero": {
896
+ "type": "string",
897
+ "enum": ["refuse", "null"]
898
+ }
899
+ },
900
+ "required": [
901
+ "id",
902
+ "op",
903
+ "numerator",
904
+ "denominator",
905
+ "scale",
906
+ "rounding",
907
+ "zero"
908
+ ],
909
+ "additionalProperties": false
910
+ }
911
+ ]
912
+ }
913
+ },
914
+ "groupBy": {
915
+ "maxItems": 8,
916
+ "type": "array",
917
+ "items": {
918
+ "type": "string",
919
+ "maxLength": 80,
920
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
921
+ }
922
+ },
923
+ "aggregates": {
924
+ "maxItems": 64,
925
+ "type": "array",
926
+ "items": {
927
+ "type": "object",
928
+ "properties": {
929
+ "name": {
930
+ "type": "string",
931
+ "maxLength": 80,
932
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
933
+ },
934
+ "op": {
935
+ "type": "string",
936
+ "enum": [
937
+ "sum",
938
+ "average",
939
+ "count",
940
+ "minimum",
941
+ "maximum"
942
+ ]
943
+ },
944
+ "rounding": {
945
+ "type": "string",
946
+ "enum": ["floor", "halfUp"]
947
+ },
948
+ "value": {
949
+ "type": "string",
950
+ "maxLength": 80,
951
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
952
+ }
953
+ },
954
+ "required": ["name", "op"],
955
+ "additionalProperties": false
956
+ }
957
+ },
958
+ "resultExpressions": {
959
+ "maxItems": 64,
960
+ "type": "array",
961
+ "items": {
962
+ "oneOf": [
963
+ {
964
+ "type": "object",
965
+ "properties": {
966
+ "id": {
967
+ "type": "string",
968
+ "maxLength": 80,
969
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
970
+ },
971
+ "op": {
972
+ "type": "string",
973
+ "const": "field"
974
+ },
975
+ "path": {
976
+ "type": "string",
977
+ "maxLength": 240,
978
+ "pattern": "^[a-z][a-zA-Z0-9_]*(\\.[a-z][a-zA-Z0-9_]*)*$"
979
+ }
980
+ },
981
+ "required": ["id", "op", "path"],
982
+ "additionalProperties": false
983
+ },
984
+ {
985
+ "type": "object",
986
+ "properties": {
987
+ "id": {
988
+ "type": "string",
989
+ "maxLength": 80,
990
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
991
+ },
992
+ "op": {
993
+ "type": "string",
994
+ "const": "literal"
995
+ },
996
+ "type": {
997
+ "oneOf": [
998
+ {
999
+ "type": "object",
1000
+ "properties": {
1001
+ "kind": {
1002
+ "type": "string",
1003
+ "const": "money"
1004
+ },
1005
+ "currency": {
1006
+ "type": "string",
1007
+ "pattern": "^[A-Z]{3}$"
1008
+ }
1009
+ },
1010
+ "required": ["kind", "currency"],
1011
+ "additionalProperties": false
1012
+ },
1013
+ {
1014
+ "type": "object",
1015
+ "properties": {
1016
+ "kind": {
1017
+ "type": "string",
1018
+ "enum": [
1019
+ "text",
1020
+ "integer",
1021
+ "boolean",
1022
+ "date"
1023
+ ]
1024
+ }
1025
+ },
1026
+ "required": ["kind"],
1027
+ "additionalProperties": false
1028
+ }
1029
+ ]
1030
+ },
1031
+ "value": {
1032
+ "anyOf": [
1033
+ {
1034
+ "type": "string",
1035
+ "maxLength": 2048
1036
+ },
1037
+ {
1038
+ "type": "integer",
1039
+ "minimum": -9007199254740991,
1040
+ "maximum": 9007199254740991
1041
+ },
1042
+ {
1043
+ "type": "boolean"
1044
+ }
1045
+ ]
1046
+ }
1047
+ },
1048
+ "required": ["id", "op", "type", "value"],
1049
+ "additionalProperties": false
1050
+ },
1051
+ {
1052
+ "type": "object",
1053
+ "properties": {
1054
+ "id": {
1055
+ "type": "string",
1056
+ "maxLength": 80,
1057
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1058
+ },
1059
+ "op": {
1060
+ "type": "string",
1061
+ "const": "parameter"
1062
+ },
1063
+ "name": {
1064
+ "type": "string",
1065
+ "enum": [
1066
+ "periodStart",
1067
+ "periodEnd",
1068
+ "observationAt"
1069
+ ]
1070
+ }
1071
+ },
1072
+ "required": ["id", "op", "name"],
1073
+ "additionalProperties": false
1074
+ },
1075
+ {
1076
+ "type": "object",
1077
+ "properties": {
1078
+ "id": {
1079
+ "type": "string",
1080
+ "maxLength": 80,
1081
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1082
+ },
1083
+ "op": {
1084
+ "type": "string",
1085
+ "enum": [
1086
+ "sum",
1087
+ "subtract",
1088
+ "minimum",
1089
+ "maximum",
1090
+ "equal",
1091
+ "less",
1092
+ "atMost",
1093
+ "and",
1094
+ "or",
1095
+ "daysBetween"
1096
+ ]
1097
+ },
1098
+ "left": {
1099
+ "type": "string",
1100
+ "maxLength": 80,
1101
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1102
+ },
1103
+ "right": {
1104
+ "type": "string",
1105
+ "maxLength": 80,
1106
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1107
+ }
1108
+ },
1109
+ "required": ["id", "op", "left", "right"],
1110
+ "additionalProperties": false
1111
+ },
1112
+ {
1113
+ "type": "object",
1114
+ "properties": {
1115
+ "id": {
1116
+ "type": "string",
1117
+ "maxLength": 80,
1118
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1119
+ },
1120
+ "op": {
1121
+ "type": "string",
1122
+ "const": "not"
1123
+ },
1124
+ "value": {
1125
+ "type": "string",
1126
+ "maxLength": 80,
1127
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1128
+ }
1129
+ },
1130
+ "required": ["id", "op", "value"],
1131
+ "additionalProperties": false
1132
+ },
1133
+ {
1134
+ "type": "object",
1135
+ "properties": {
1136
+ "id": {
1137
+ "type": "string",
1138
+ "maxLength": 80,
1139
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1140
+ },
1141
+ "op": {
1142
+ "type": "string",
1143
+ "const": "choose"
1144
+ },
1145
+ "condition": {
1146
+ "type": "string",
1147
+ "maxLength": 80,
1148
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1149
+ },
1150
+ "yes": {
1151
+ "type": "string",
1152
+ "maxLength": 80,
1153
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1154
+ },
1155
+ "no": {
1156
+ "type": "string",
1157
+ "maxLength": 80,
1158
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1159
+ }
1160
+ },
1161
+ "required": ["id", "op", "condition", "yes", "no"],
1162
+ "additionalProperties": false
1163
+ },
1164
+ {
1165
+ "type": "object",
1166
+ "properties": {
1167
+ "id": {
1168
+ "type": "string",
1169
+ "maxLength": 80,
1170
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1171
+ },
1172
+ "op": {
1173
+ "type": "string",
1174
+ "const": "bucket"
1175
+ },
1176
+ "value": {
1177
+ "type": "string",
1178
+ "maxLength": 80,
1179
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1180
+ },
1181
+ "unit": {
1182
+ "type": "string",
1183
+ "enum": ["month", "quarter"]
1184
+ }
1185
+ },
1186
+ "required": ["id", "op", "value", "unit"],
1187
+ "additionalProperties": false
1188
+ },
1189
+ {
1190
+ "type": "object",
1191
+ "properties": {
1192
+ "id": {
1193
+ "type": "string",
1194
+ "maxLength": 80,
1195
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1196
+ },
1197
+ "op": {
1198
+ "type": "string",
1199
+ "const": "ratio"
1200
+ },
1201
+ "numerator": {
1202
+ "type": "string",
1203
+ "maxLength": 80,
1204
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1205
+ },
1206
+ "denominator": {
1207
+ "type": "string",
1208
+ "maxLength": 80,
1209
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1210
+ },
1211
+ "scale": {
1212
+ "type": "integer",
1213
+ "minimum": 1,
1214
+ "maximum": 1000000
1215
+ },
1216
+ "rounding": {
1217
+ "type": "string",
1218
+ "enum": ["floor", "halfUp"]
1219
+ },
1220
+ "zero": {
1221
+ "type": "string",
1222
+ "enum": ["refuse", "null"]
1223
+ }
1224
+ },
1225
+ "required": [
1226
+ "id",
1227
+ "op",
1228
+ "numerator",
1229
+ "denominator",
1230
+ "scale",
1231
+ "rounding",
1232
+ "zero"
1233
+ ],
1234
+ "additionalProperties": false
1235
+ }
1236
+ ]
1237
+ }
1238
+ }
1239
+ },
1240
+ "required": [
1241
+ "joins",
1242
+ "expressions",
1243
+ "groupBy",
1244
+ "aggregates",
1245
+ "resultExpressions"
1246
+ ],
1247
+ "additionalProperties": false
1248
+ },
1249
+ "validation": {
1250
+ "type": "object",
1251
+ "properties": {
1252
+ "empty": {
1253
+ "type": "string",
1254
+ "enum": ["refuse", "noEligibleFacilities"]
1255
+ },
1256
+ "required": {
1257
+ "maxItems": 64,
1258
+ "type": "array",
1259
+ "items": {
1260
+ "type": "string",
1261
+ "maxLength": 80,
1262
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1263
+ }
1264
+ },
1265
+ "rowReconcile": {
1266
+ "maxItems": 16,
1267
+ "type": "array",
1268
+ "items": {
1269
+ "type": "object",
1270
+ "properties": {
1271
+ "left": {
1272
+ "type": "string",
1273
+ "maxLength": 80,
1274
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1275
+ },
1276
+ "right": {
1277
+ "type": "string",
1278
+ "maxLength": 80,
1279
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1280
+ }
1281
+ },
1282
+ "required": ["left", "right"],
1283
+ "additionalProperties": false
1284
+ }
1285
+ },
1286
+ "reconcile": {
1287
+ "maxItems": 16,
1288
+ "type": "array",
1289
+ "items": {
1290
+ "type": "object",
1291
+ "properties": {
1292
+ "left": {
1293
+ "type": "string",
1294
+ "maxLength": 80,
1295
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1296
+ },
1297
+ "right": {
1298
+ "type": "string",
1299
+ "maxLength": 80,
1300
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1301
+ }
1302
+ },
1303
+ "required": ["left", "right"],
1304
+ "additionalProperties": false
1305
+ }
1306
+ },
1307
+ "unavailableFacts": {
1308
+ "maxItems": 32,
1309
+ "type": "array",
1310
+ "items": {
1311
+ "type": "string",
1312
+ "minLength": 1,
1313
+ "maxLength": 240
1314
+ }
1315
+ },
1316
+ "lockTimeoutMs": {
1317
+ "type": "integer",
1318
+ "minimum": 1,
1319
+ "maximum": 2000
1320
+ },
1321
+ "captureTimeoutMs": {
1322
+ "type": "integer",
1323
+ "minimum": 1,
1324
+ "maximum": 10000
1325
+ },
1326
+ "maxRows": {
1327
+ "type": "integer",
1328
+ "minimum": 1,
1329
+ "maximum": 100000
1330
+ },
1331
+ "maxJoinRows": {
1332
+ "type": "integer",
1333
+ "minimum": 1,
1334
+ "maximum": 1000000
1335
+ },
1336
+ "maxBytes": {
1337
+ "type": "integer",
1338
+ "minimum": 1024,
1339
+ "maximum": 16777216
1340
+ }
1341
+ },
1342
+ "required": [
1343
+ "empty",
1344
+ "required",
1345
+ "rowReconcile",
1346
+ "reconcile",
1347
+ "unavailableFacts",
1348
+ "lockTimeoutMs",
1349
+ "captureTimeoutMs",
1350
+ "maxRows",
1351
+ "maxJoinRows",
1352
+ "maxBytes"
1353
+ ],
1354
+ "additionalProperties": false
1355
+ },
1356
+ "output": {
1357
+ "type": "object",
1358
+ "properties": {
1359
+ "profile": {
1360
+ "type": "string",
1361
+ "const": "internal.v1"
1362
+ },
1363
+ "formats": {
1364
+ "minItems": 1,
1365
+ "maxItems": 2,
1366
+ "type": "array",
1367
+ "items": {
1368
+ "type": "string",
1369
+ "enum": ["json", "csv"]
1370
+ }
1371
+ },
1372
+ "columns": {
1373
+ "minItems": 1,
1374
+ "maxItems": 64,
1375
+ "type": "array",
1376
+ "items": {
1377
+ "type": "object",
1378
+ "properties": {
1379
+ "name": {
1380
+ "type": "string",
1381
+ "maxLength": 80,
1382
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1383
+ },
1384
+ "label": {
1385
+ "type": "string",
1386
+ "minLength": 1,
1387
+ "maxLength": 120
1388
+ },
1389
+ "type": {
1390
+ "oneOf": [
1391
+ {
1392
+ "type": "object",
1393
+ "properties": {
1394
+ "kind": {
1395
+ "type": "string",
1396
+ "const": "money"
1397
+ },
1398
+ "currency": {
1399
+ "type": "string",
1400
+ "pattern": "^[A-Z]{3}$"
1401
+ }
1402
+ },
1403
+ "required": ["kind", "currency"],
1404
+ "additionalProperties": false
1405
+ },
1406
+ {
1407
+ "type": "object",
1408
+ "properties": {
1409
+ "kind": {
1410
+ "type": "string",
1411
+ "enum": [
1412
+ "text",
1413
+ "integer",
1414
+ "boolean",
1415
+ "date"
1416
+ ]
1417
+ }
1418
+ },
1419
+ "required": ["kind"],
1420
+ "additionalProperties": false
1421
+ }
1422
+ ]
1423
+ }
1424
+ },
1425
+ "required": ["name", "label", "type"],
1426
+ "additionalProperties": false
1427
+ }
1428
+ },
1429
+ "sort": {
1430
+ "minItems": 1,
1431
+ "maxItems": 8,
1432
+ "type": "array",
1433
+ "items": {
1434
+ "type": "string",
1435
+ "maxLength": 80,
1436
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1437
+ }
1438
+ }
1439
+ },
1440
+ "required": ["profile", "formats", "columns", "sort"],
1441
+ "additionalProperties": false
1442
+ },
1443
+ "authority": {
1444
+ "type": "object",
1445
+ "properties": {
1446
+ "request": {
1447
+ "minItems": 1,
1448
+ "maxItems": 64,
1449
+ "type": "array",
1450
+ "items": {
1451
+ "type": "string",
1452
+ "maxLength": 80,
1453
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1454
+ }
1455
+ },
1456
+ "read": {
1457
+ "minItems": 1,
1458
+ "maxItems": 64,
1459
+ "type": "array",
1460
+ "items": {
1461
+ "type": "string",
1462
+ "maxLength": 80,
1463
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1464
+ }
1465
+ },
1466
+ "release": {
1467
+ "maxItems": 64,
1468
+ "type": "array",
1469
+ "items": {
1470
+ "type": "string",
1471
+ "maxLength": 80,
1472
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1473
+ }
1474
+ },
1475
+ "independentApproval": {
1476
+ "type": "boolean",
1477
+ "const": true
1478
+ },
1479
+ "retention": {
1480
+ "type": "object",
1481
+ "properties": {
1482
+ "policy": {
1483
+ "type": "string",
1484
+ "maxLength": 80,
1485
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
1486
+ },
1487
+ "years": {
1488
+ "type": "integer",
1489
+ "minimum": 1,
1490
+ "maximum": 100
1491
+ }
1492
+ },
1493
+ "required": ["policy", "years"],
1494
+ "additionalProperties": false
1495
+ }
1496
+ },
1497
+ "required": [
1498
+ "request",
1499
+ "read",
1500
+ "release",
1501
+ "independentApproval",
1502
+ "retention"
1503
+ ],
1504
+ "additionalProperties": false
1505
+ }
1506
+ },
1507
+ "required": [
1508
+ "identity",
1509
+ "scope",
1510
+ "datasets",
1511
+ "time",
1512
+ "selection",
1513
+ "calculation",
1514
+ "validation",
1515
+ "output",
1516
+ "authority"
1517
+ ],
1518
+ "additionalProperties": false
1519
+ }
1520
+ },
1521
+ "revisioned": {
1522
+ "type": "boolean",
1523
+ "const": true
1524
+ },
62
1525
  "id": {
63
1526
  "type": "string",
64
1527
  "maxLength": 80,
@@ -297,10 +1760,19 @@
297
1760
  "minLength": 1,
298
1761
  "maxLength": 2048
299
1762
  },
1763
+ "minLength": {
1764
+ "type": "integer",
1765
+ "exclusiveMinimum": 0,
1766
+ "maximum": 2048
1767
+ },
300
1768
  "maxLength": {
301
1769
  "type": "integer",
302
1770
  "exclusiveMinimum": 0,
303
1771
  "maximum": 2048
1772
+ },
1773
+ "pattern": {
1774
+ "type": "string",
1775
+ "pattern": "^\\^\\[[A-Za-z0-9-]+\\]\\{[1-9][0-9]{0,3}\\}\\$$"
304
1776
  }
305
1777
  },
306
1778
  "required": ["name", "type"],
@@ -1537,6 +3009,86 @@
1537
3009
  "maxLength": 80,
1538
3010
  "pattern": "^[a-z][a-zA-Z0-9_]*$"
1539
3011
  },
3012
+ "expansionLimit": {
3013
+ "type": "number",
3014
+ "const": 8192
3015
+ },
3016
+ "humanApproval": {
3017
+ "type": "string",
3018
+ "const": "distinct_member"
3019
+ },
3020
+ "reminder": {
3021
+ "type": "object",
3022
+ "properties": {
3023
+ "installment": {
3024
+ "type": "string",
3025
+ "maxLength": 240,
3026
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
3027
+ },
3028
+ "recipient": {
3029
+ "type": "string",
3030
+ "maxLength": 240,
3031
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
3032
+ },
3033
+ "dueAt": {
3034
+ "type": "string",
3035
+ "maxLength": 240,
3036
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
3037
+ },
3038
+ "channel": {
3039
+ "type": "string",
3040
+ "const": "email"
3041
+ },
3042
+ "template": {
3043
+ "type": "string",
3044
+ "const": "payment_reminder"
3045
+ },
3046
+ "beforeDays": {
3047
+ "type": "integer",
3048
+ "minimum": 0,
3049
+ "maximum": 366
3050
+ },
3051
+ "overdueDays": {
3052
+ "type": "integer",
3053
+ "minimum": 1,
3054
+ "maximum": 366
3055
+ },
3056
+ "maxPerDay": {
3057
+ "type": "integer",
3058
+ "minimum": 1,
3059
+ "maximum": 10
3060
+ },
3061
+ "startHour": {
3062
+ "type": "integer",
3063
+ "minimum": 0,
3064
+ "maximum": 23
3065
+ },
3066
+ "endHour": {
3067
+ "type": "integer",
3068
+ "minimum": 1,
3069
+ "maximum": 24
3070
+ },
3071
+ "timezone": {
3072
+ "type": "string",
3073
+ "minLength": 1,
3074
+ "maxLength": 2048
3075
+ }
3076
+ },
3077
+ "required": [
3078
+ "installment",
3079
+ "recipient",
3080
+ "dueAt",
3081
+ "channel",
3082
+ "template",
3083
+ "beforeDays",
3084
+ "overdueDays",
3085
+ "maxPerDay",
3086
+ "startHour",
3087
+ "endHour",
3088
+ "timezone"
3089
+ ],
3090
+ "additionalProperties": false
3091
+ },
1540
3092
  "event": {
1541
3093
  "type": "string",
1542
3094
  "minLength": 1,
@@ -1568,10 +3120,25 @@
1568
3120
  "type": "object",
1569
3121
  "properties": {
1570
3122
  "parent": {
1571
- "type": "string",
1572
- "maxLength": 80,
1573
- "pattern": "^[a-z][a-zA-Z0-9_]*$",
1574
- "x-udl-reference": "instrument"
3123
+ "anyOf": [
3124
+ {
3125
+ "type": "string",
3126
+ "maxLength": 80,
3127
+ "pattern": "^[a-z][a-zA-Z0-9_]*$",
3128
+ "x-udl-reference": "instrument"
3129
+ },
3130
+ {
3131
+ "minItems": 1,
3132
+ "maxItems": 16,
3133
+ "type": "array",
3134
+ "items": {
3135
+ "type": "string",
3136
+ "maxLength": 80,
3137
+ "pattern": "^[a-z][a-zA-Z0-9_]*$",
3138
+ "x-udl-reference": "instrument"
3139
+ }
3140
+ }
3141
+ ]
1575
3142
  }
1576
3143
  },
1577
3144
  "required": ["parent"],
@@ -1801,10 +3368,19 @@
1801
3368
  "minLength": 1,
1802
3369
  "maxLength": 2048
1803
3370
  },
3371
+ "minLength": {
3372
+ "type": "integer",
3373
+ "exclusiveMinimum": 0,
3374
+ "maximum": 2048
3375
+ },
1804
3376
  "maxLength": {
1805
3377
  "type": "integer",
1806
3378
  "exclusiveMinimum": 0,
1807
3379
  "maximum": 2048
3380
+ },
3381
+ "pattern": {
3382
+ "type": "string",
3383
+ "pattern": "^\\^\\[[A-Za-z0-9-]+\\]\\{[1-9][0-9]{0,3}\\}\\$$"
1808
3384
  }
1809
3385
  },
1810
3386
  "required": ["name", "type"],
@@ -2471,6 +4047,32 @@
2471
4047
  "type": "integer",
2472
4048
  "minimum": -9007199254740991,
2473
4049
  "maximum": 9007199254740991
4050
+ },
4051
+ "localDay": {
4052
+ "type": "object",
4053
+ "properties": {
4054
+ "days": {
4055
+ "type": "integer",
4056
+ "minimum": 0,
4057
+ "maximum": 366
4058
+ },
4059
+ "direction": {
4060
+ "type": "string",
4061
+ "enum": ["before", "after"]
4062
+ },
4063
+ "hour": {
4064
+ "type": "integer",
4065
+ "minimum": 0,
4066
+ "maximum": 23
4067
+ },
4068
+ "timezone": {
4069
+ "type": "string",
4070
+ "minLength": 1,
4071
+ "maxLength": 2048
4072
+ }
4073
+ },
4074
+ "required": ["days", "direction", "hour", "timezone"],
4075
+ "additionalProperties": false
2474
4076
  }
2475
4077
  },
2476
4078
  "required": ["at"],
@@ -2488,6 +4090,32 @@
2488
4090
  "type": "integer",
2489
4091
  "minimum": -9007199254740991,
2490
4092
  "maximum": 9007199254740991
4093
+ },
4094
+ "localDay": {
4095
+ "type": "object",
4096
+ "properties": {
4097
+ "days": {
4098
+ "type": "integer",
4099
+ "minimum": 0,
4100
+ "maximum": 366
4101
+ },
4102
+ "direction": {
4103
+ "type": "string",
4104
+ "enum": ["before", "after"]
4105
+ },
4106
+ "hour": {
4107
+ "type": "integer",
4108
+ "minimum": 0,
4109
+ "maximum": 23
4110
+ },
4111
+ "timezone": {
4112
+ "type": "string",
4113
+ "minLength": 1,
4114
+ "maxLength": 2048
4115
+ }
4116
+ },
4117
+ "required": ["days", "direction", "hour", "timezone"],
4118
+ "additionalProperties": false
2491
4119
  }
2492
4120
  },
2493
4121
  "required": ["at"],
@@ -3797,6 +5425,152 @@
3797
5425
  }
3798
5426
  ]
3799
5427
  }
5428
+ },
5429
+ "guard": {
5430
+ "type": "object",
5431
+ "properties": {
5432
+ "kind": {
5433
+ "type": "string",
5434
+ "const": "compare"
5435
+ },
5436
+ "left": {
5437
+ "anyOf": [
5438
+ {
5439
+ "type": "object",
5440
+ "properties": {
5441
+ "literal": {
5442
+ "anyOf": [
5443
+ {
5444
+ "type": "string"
5445
+ },
5446
+ {
5447
+ "type": "integer",
5448
+ "minimum": -9007199254740991,
5449
+ "maximum": 9007199254740991
5450
+ },
5451
+ {
5452
+ "type": "boolean"
5453
+ }
5454
+ ]
5455
+ }
5456
+ },
5457
+ "required": ["literal"],
5458
+ "additionalProperties": false
5459
+ },
5460
+ {
5461
+ "type": "object",
5462
+ "properties": {
5463
+ "field": {
5464
+ "type": "string",
5465
+ "maxLength": 240,
5466
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
5467
+ }
5468
+ },
5469
+ "required": ["field"],
5470
+ "additionalProperties": false
5471
+ }
5472
+ ]
5473
+ },
5474
+ "operator": {
5475
+ "type": "string",
5476
+ "enum": ["==", "!=", "<", "<=", ">", ">="]
5477
+ },
5478
+ "right": {
5479
+ "anyOf": [
5480
+ {
5481
+ "type": "object",
5482
+ "properties": {
5483
+ "literal": {
5484
+ "anyOf": [
5485
+ {
5486
+ "type": "string"
5487
+ },
5488
+ {
5489
+ "type": "integer",
5490
+ "minimum": -9007199254740991,
5491
+ "maximum": 9007199254740991
5492
+ },
5493
+ {
5494
+ "type": "boolean"
5495
+ }
5496
+ ]
5497
+ }
5498
+ },
5499
+ "required": ["literal"],
5500
+ "additionalProperties": false
5501
+ },
5502
+ {
5503
+ "type": "object",
5504
+ "properties": {
5505
+ "field": {
5506
+ "type": "string",
5507
+ "maxLength": 240,
5508
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
5509
+ }
5510
+ },
5511
+ "required": ["field"],
5512
+ "additionalProperties": false
5513
+ }
5514
+ ]
5515
+ }
5516
+ },
5517
+ "required": ["kind", "left", "operator", "right"],
5518
+ "additionalProperties": false
5519
+ },
5520
+ "range": {
5521
+ "type": "object",
5522
+ "properties": {
5523
+ "count": {
5524
+ "anyOf": [
5525
+ {
5526
+ "type": "object",
5527
+ "properties": {
5528
+ "literal": {
5529
+ "anyOf": [
5530
+ {
5531
+ "type": "string"
5532
+ },
5533
+ {
5534
+ "type": "integer",
5535
+ "minimum": -9007199254740991,
5536
+ "maximum": 9007199254740991
5537
+ },
5538
+ {
5539
+ "type": "boolean"
5540
+ }
5541
+ ]
5542
+ }
5543
+ },
5544
+ "required": ["literal"],
5545
+ "additionalProperties": false
5546
+ },
5547
+ {
5548
+ "type": "object",
5549
+ "properties": {
5550
+ "field": {
5551
+ "type": "string",
5552
+ "maxLength": 240,
5553
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
5554
+ }
5555
+ },
5556
+ "required": ["field"],
5557
+ "additionalProperties": false
5558
+ }
5559
+ ]
5560
+ },
5561
+ "maximum": {
5562
+ "type": "integer",
5563
+ "minimum": 1,
5564
+ "maximum": 366
5565
+ },
5566
+ "bind": {
5567
+ "type": "string",
5568
+ "maxLength": 80,
5569
+ "pattern": "^[a-z][a-zA-Z0-9_]*$"
5570
+ }
5571
+ },
5572
+ "required": ["count", "maximum", "bind"],
5573
+ "additionalProperties": false
3800
5574
  }
3801
5575
  },
3802
5576
  "required": ["instrument", "action", "input"],
@@ -3860,6 +5634,97 @@
3860
5634
  }
3861
5635
  ]
3862
5636
  }
5637
+ },
5638
+ "guard": {
5639
+ "type": "object",
5640
+ "properties": {
5641
+ "kind": {
5642
+ "type": "string",
5643
+ "const": "compare"
5644
+ },
5645
+ "left": {
5646
+ "anyOf": [
5647
+ {
5648
+ "type": "object",
5649
+ "properties": {
5650
+ "literal": {
5651
+ "anyOf": [
5652
+ {
5653
+ "type": "string"
5654
+ },
5655
+ {
5656
+ "type": "integer",
5657
+ "minimum": -9007199254740991,
5658
+ "maximum": 9007199254740991
5659
+ },
5660
+ {
5661
+ "type": "boolean"
5662
+ }
5663
+ ]
5664
+ }
5665
+ },
5666
+ "required": ["literal"],
5667
+ "additionalProperties": false
5668
+ },
5669
+ {
5670
+ "type": "object",
5671
+ "properties": {
5672
+ "field": {
5673
+ "type": "string",
5674
+ "maxLength": 240,
5675
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
5676
+ }
5677
+ },
5678
+ "required": ["field"],
5679
+ "additionalProperties": false
5680
+ }
5681
+ ]
5682
+ },
5683
+ "operator": {
5684
+ "type": "string",
5685
+ "enum": ["==", "!=", "<", "<=", ">", ">="]
5686
+ },
5687
+ "right": {
5688
+ "anyOf": [
5689
+ {
5690
+ "type": "object",
5691
+ "properties": {
5692
+ "literal": {
5693
+ "anyOf": [
5694
+ {
5695
+ "type": "string"
5696
+ },
5697
+ {
5698
+ "type": "integer",
5699
+ "minimum": -9007199254740991,
5700
+ "maximum": 9007199254740991
5701
+ },
5702
+ {
5703
+ "type": "boolean"
5704
+ }
5705
+ ]
5706
+ }
5707
+ },
5708
+ "required": ["literal"],
5709
+ "additionalProperties": false
5710
+ },
5711
+ {
5712
+ "type": "object",
5713
+ "properties": {
5714
+ "field": {
5715
+ "type": "string",
5716
+ "maxLength": 240,
5717
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
5718
+ }
5719
+ },
5720
+ "required": ["field"],
5721
+ "additionalProperties": false
5722
+ }
5723
+ ]
5724
+ }
5725
+ },
5726
+ "required": ["kind", "left", "operator", "right"],
5727
+ "additionalProperties": false
3863
5728
  }
3864
5729
  },
3865
5730
  "required": ["reference", "action", "input"],
@@ -4051,6 +5916,97 @@
4051
5916
  }
4052
5917
  ]
4053
5918
  }
5919
+ },
5920
+ "guard": {
5921
+ "type": "object",
5922
+ "properties": {
5923
+ "kind": {
5924
+ "type": "string",
5925
+ "const": "compare"
5926
+ },
5927
+ "left": {
5928
+ "anyOf": [
5929
+ {
5930
+ "type": "object",
5931
+ "properties": {
5932
+ "literal": {
5933
+ "anyOf": [
5934
+ {
5935
+ "type": "string"
5936
+ },
5937
+ {
5938
+ "type": "integer",
5939
+ "minimum": -9007199254740991,
5940
+ "maximum": 9007199254740991
5941
+ },
5942
+ {
5943
+ "type": "boolean"
5944
+ }
5945
+ ]
5946
+ }
5947
+ },
5948
+ "required": ["literal"],
5949
+ "additionalProperties": false
5950
+ },
5951
+ {
5952
+ "type": "object",
5953
+ "properties": {
5954
+ "field": {
5955
+ "type": "string",
5956
+ "maxLength": 240,
5957
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
5958
+ }
5959
+ },
5960
+ "required": ["field"],
5961
+ "additionalProperties": false
5962
+ }
5963
+ ]
5964
+ },
5965
+ "operator": {
5966
+ "type": "string",
5967
+ "enum": ["==", "!=", "<", "<=", ">", ">="]
5968
+ },
5969
+ "right": {
5970
+ "anyOf": [
5971
+ {
5972
+ "type": "object",
5973
+ "properties": {
5974
+ "literal": {
5975
+ "anyOf": [
5976
+ {
5977
+ "type": "string"
5978
+ },
5979
+ {
5980
+ "type": "integer",
5981
+ "minimum": -9007199254740991,
5982
+ "maximum": 9007199254740991
5983
+ },
5984
+ {
5985
+ "type": "boolean"
5986
+ }
5987
+ ]
5988
+ }
5989
+ },
5990
+ "required": ["literal"],
5991
+ "additionalProperties": false
5992
+ },
5993
+ {
5994
+ "type": "object",
5995
+ "properties": {
5996
+ "field": {
5997
+ "type": "string",
5998
+ "maxLength": 240,
5999
+ "pattern": "^[a-z][a-zA-Z0-9_]*(?:\\.[a-z][a-zA-Z0-9_]*)*$"
6000
+ }
6001
+ },
6002
+ "required": ["field"],
6003
+ "additionalProperties": false
6004
+ }
6005
+ ]
6006
+ }
6007
+ },
6008
+ "required": ["kind", "left", "operator", "right"],
6009
+ "additionalProperties": false
4054
6010
  }
4055
6011
  },
4056
6012
  "required": ["selection", "action", "input"],