umf-codegen 0.10.8__py3-none-any.whl

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.
@@ -0,0 +1,1908 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "urn:umf:core:0.10.0",
4
+ "title": "UMF for UMF",
5
+ "description": "A Document groups Modules and declares the vocabularies used by its extension content. Its identifier names the complete metadata envelope.",
6
+ "type": "object",
7
+ "required": [
8
+ "umf",
9
+ "id",
10
+ "vocabularies",
11
+ "modules"
12
+ ],
13
+ "properties": {
14
+ "umf": {
15
+ "const": "0.10.0"
16
+ },
17
+ "id": {
18
+ "$ref": "#/$defs/id"
19
+ },
20
+ "vocabularies": {
21
+ "type": "object",
22
+ "additionalProperties": {
23
+ "type": "object",
24
+ "required": [
25
+ "version"
26
+ ],
27
+ "properties": {
28
+ "version": {
29
+ "$ref": "#/$defs/version"
30
+ }
31
+ }
32
+ },
33
+ "propertyNames": {
34
+ "$ref": "#/$defs/id"
35
+ }
36
+ },
37
+ "modules": {
38
+ "type": "array",
39
+ "items": {
40
+ "$ref": "#/$defs/module"
41
+ }
42
+ },
43
+ "extensions": {
44
+ "$ref": "#/$defs/extensions"
45
+ },
46
+ "title": {
47
+ "type": "string"
48
+ },
49
+ "aliases": {
50
+ "type": "array",
51
+ "items": {
52
+ "type": "string",
53
+ "minLength": 1
54
+ },
55
+ "uniqueItems": true
56
+ }
57
+ },
58
+ "$defs": {
59
+ "id": {
60
+ "description": "UMF language id",
61
+ "type": "string",
62
+ "minLength": 1
63
+ },
64
+ "version": {
65
+ "description": "UMF language version",
66
+ "type": "string",
67
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
68
+ },
69
+ "knownScalarType": {
70
+ "description": "Value families; bits128 and uuid have intrinsic16-byte domains under umf-128/1. Native refinements remain attached.",
71
+ "enum": [
72
+ "boolean",
73
+ "integer",
74
+ "decimal",
75
+ "float",
76
+ "string",
77
+ "binary",
78
+ "date",
79
+ "time",
80
+ "timestamp",
81
+ "bits128",
82
+ "uuid"
83
+ ]
84
+ },
85
+ "scalarType": {
86
+ "description": "UMF language scalarType",
87
+ "anyOf": [
88
+ {
89
+ "$ref": "#/$defs/knownScalarType"
90
+ },
91
+ {
92
+ "description": "Unknown family retained with incomplete semantic validation.",
93
+ "allOf": [
94
+ {
95
+ "type": "string",
96
+ "minLength": 1
97
+ },
98
+ {
99
+ "not": {
100
+ "$ref": "#/$defs/knownScalarType"
101
+ }
102
+ }
103
+ ]
104
+ }
105
+ ]
106
+ },
107
+ "extensions": {
108
+ "description": "UMF language extensions",
109
+ "type": "object",
110
+ "properties": {},
111
+ "additionalProperties": true,
112
+ "propertyNames": {
113
+ "$ref": "#/$defs/id"
114
+ }
115
+ },
116
+ "reference": {
117
+ "description": "UMF language reference",
118
+ "type": "object",
119
+ "required": [
120
+ "role",
121
+ "module",
122
+ "element"
123
+ ],
124
+ "properties": {
125
+ "role": {
126
+ "$ref": "#/$defs/id"
127
+ },
128
+ "module": {
129
+ "$ref": "#/$defs/id"
130
+ },
131
+ "element": {
132
+ "$ref": "#/$defs/id"
133
+ }
134
+ }
135
+ },
136
+ "element": {
137
+ "description": "An Element describes a Field, Record or Group within a Module. References connect Elements without assuming a particular storage or compute implementation.",
138
+ "type": "object",
139
+ "required": [
140
+ "id",
141
+ "extensions"
142
+ ],
143
+ "properties": {
144
+ "id": {
145
+ "$ref": "#/$defs/id"
146
+ },
147
+ "name": {
148
+ "type": "string"
149
+ },
150
+ "description": {
151
+ "type": "string"
152
+ },
153
+ "scalarType": {
154
+ "description": "The Field's intrinsic value family. Native representations and external term meanings remain separate.",
155
+ "$ref": "#/$defs/scalarType"
156
+ },
157
+ "extensions": {
158
+ "$ref": "#/$defs/extensions"
159
+ },
160
+ "references": {
161
+ "type": "array",
162
+ "items": {
163
+ "$ref": "#/$defs/reference"
164
+ }
165
+ },
166
+ "kind": {
167
+ "description": "UMF role; unknown labels remain uninterpreted. Missing is unspecified, never inferred from scalarType.",
168
+ "type": "string",
169
+ "minLength": 1
170
+ },
171
+ "nullability": {
172
+ "description": "Ideal value availability. Unknown labels remain uninterpreted. Missing and unspecified assert no availability constraint. Native absence carriers require explicit bindings.",
173
+ "type": "string",
174
+ "minLength": 1
175
+ },
176
+ "cardinality": {
177
+ "description": "One ideal value, finite ordered sequence with duplicates allowed, finite exact string-key mapping with unique keys, or no assertion. Unknown labels remain uninterpreted.",
178
+ "type": "string",
179
+ "minLength": 1
180
+ },
181
+ "itemType": {
182
+ "description": "Identifies the Field that describes each array item or map value, using explicit Module and Element identifiers.",
183
+ "$ref": "#/$defs/itemType"
184
+ },
185
+ "facets": {
186
+ "description": "Constrains the values of a Field, including length, numeric width, precision, scale and range.",
187
+ "$ref": "#/$defs/facets"
188
+ },
189
+ "members": {
190
+ "description": "Lists the Elements explicitly contained by a Record or Group.",
191
+ "type": "array",
192
+ "items": {
193
+ "$ref": "#/$defs/keyFieldReference"
194
+ },
195
+ "uniqueItems": true
196
+ },
197
+ "keys": {
198
+ "description": "Declares named ordered Field tuples that identify values of a Record.",
199
+ "type": "array",
200
+ "items": {
201
+ "$ref": "#/$defs/key"
202
+ },
203
+ "minItems": 1
204
+ },
205
+ "title": {
206
+ "type": "string"
207
+ },
208
+ "aliases": {
209
+ "type": "array",
210
+ "items": {
211
+ "type": "string",
212
+ "minLength": 1
213
+ },
214
+ "uniqueItems": true
215
+ },
216
+ "examples": {
217
+ "type": "array",
218
+ "items": {
219
+ "$ref": "#/$defs/literal"
220
+ }
221
+ },
222
+ "allowedValues": {
223
+ "type": "array",
224
+ "items": {
225
+ "$ref": "#/$defs/literal"
226
+ },
227
+ "minItems": 1
228
+ },
229
+ "default": {
230
+ "type": "object",
231
+ "required": [
232
+ "value",
233
+ "on"
234
+ ],
235
+ "properties": {
236
+ "value": {
237
+ "$ref": "#/$defs/literal"
238
+ },
239
+ "on": {
240
+ "enum": [
241
+ "missing",
242
+ "null",
243
+ "missing-or-null"
244
+ ]
245
+ }
246
+ },
247
+ "additionalProperties": true
248
+ },
249
+ "semanticTypes": {
250
+ "type": "array",
251
+ "items": {
252
+ "$ref": "urn:umf:core:semantic-type-reference:1.0.0"
253
+ },
254
+ "minItems": 1
255
+ }
256
+ },
257
+ "allOf": [
258
+ {
259
+ "if": {
260
+ "type": "object",
261
+ "required": [
262
+ "kind"
263
+ ],
264
+ "properties": {
265
+ "kind": {
266
+ "enum": [
267
+ "record",
268
+ "group"
269
+ ]
270
+ }
271
+ }
272
+ },
273
+ "then": {
274
+ "type": "object",
275
+ "properties": {
276
+ "scalarType": false
277
+ }
278
+ }
279
+ },
280
+ {
281
+ "if": {
282
+ "type": "object",
283
+ "required": [
284
+ "nullability"
285
+ ],
286
+ "properties": {
287
+ "nullability": {}
288
+ }
289
+ },
290
+ "then": {
291
+ "type": "object",
292
+ "required": [
293
+ "kind"
294
+ ],
295
+ "properties": {
296
+ "kind": {
297
+ "const": "field"
298
+ }
299
+ }
300
+ }
301
+ },
302
+ {
303
+ "if": {
304
+ "type": "object",
305
+ "required": [
306
+ "cardinality"
307
+ ],
308
+ "properties": {
309
+ "cardinality": {}
310
+ }
311
+ },
312
+ "then": {
313
+ "type": "object",
314
+ "required": [
315
+ "kind"
316
+ ],
317
+ "properties": {
318
+ "kind": {
319
+ "const": "field"
320
+ }
321
+ }
322
+ }
323
+ },
324
+ {
325
+ "if": {
326
+ "type": "object",
327
+ "required": [
328
+ "cardinality"
329
+ ],
330
+ "properties": {
331
+ "cardinality": {
332
+ "enum": [
333
+ "array",
334
+ "map"
335
+ ]
336
+ }
337
+ }
338
+ },
339
+ "then": {
340
+ "not": {
341
+ "type": "object",
342
+ "required": [
343
+ "scalarType"
344
+ ]
345
+ }
346
+ }
347
+ },
348
+ {
349
+ "if": {
350
+ "type": "object",
351
+ "required": [
352
+ "itemType"
353
+ ],
354
+ "properties": {
355
+ "itemType": {}
356
+ }
357
+ },
358
+ "then": {
359
+ "type": "object",
360
+ "required": [
361
+ "kind",
362
+ "cardinality"
363
+ ],
364
+ "properties": {
365
+ "kind": {
366
+ "const": "field"
367
+ },
368
+ "cardinality": {
369
+ "enum": [
370
+ "array",
371
+ "map"
372
+ ]
373
+ }
374
+ }
375
+ }
376
+ },
377
+ {
378
+ "if": {
379
+ "type": "object",
380
+ "required": [
381
+ "facets"
382
+ ],
383
+ "properties": {
384
+ "facets": {}
385
+ }
386
+ },
387
+ "then": {
388
+ "type": "object",
389
+ "required": [
390
+ "kind"
391
+ ],
392
+ "properties": {
393
+ "kind": {
394
+ "const": "field"
395
+ },
396
+ "references": {
397
+ "allOf": [
398
+ {
399
+ "type": "array"
400
+ },
401
+ {
402
+ "not": {}
403
+ }
404
+ ]
405
+ }
406
+ }
407
+ }
408
+ },
409
+ {
410
+ "if": {
411
+ "type": "object",
412
+ "required": [
413
+ "facets"
414
+ ],
415
+ "properties": {
416
+ "facets": {
417
+ "type": "object",
418
+ "required": [
419
+ "length"
420
+ ],
421
+ "properties": {
422
+ "length": {}
423
+ }
424
+ }
425
+ }
426
+ },
427
+ "then": {
428
+ "type": "object",
429
+ "required": [
430
+ "scalarType"
431
+ ],
432
+ "properties": {
433
+ "scalarType": {
434
+ "enum": [
435
+ "string",
436
+ "binary"
437
+ ]
438
+ }
439
+ }
440
+ }
441
+ },
442
+ {
443
+ "if": {
444
+ "type": "object",
445
+ "required": [
446
+ "facets"
447
+ ],
448
+ "properties": {
449
+ "facets": {
450
+ "type": "object",
451
+ "required": [
452
+ "length"
453
+ ],
454
+ "properties": {
455
+ "length": {
456
+ "type": "object",
457
+ "required": [
458
+ "unit"
459
+ ],
460
+ "properties": {
461
+ "unit": {
462
+ "const": "unicode-scalar"
463
+ }
464
+ }
465
+ }
466
+ }
467
+ }
468
+ }
469
+ },
470
+ "then": {
471
+ "type": "object",
472
+ "required": [
473
+ "scalarType"
474
+ ],
475
+ "properties": {
476
+ "scalarType": {
477
+ "const": "string"
478
+ }
479
+ }
480
+ }
481
+ },
482
+ {
483
+ "if": {
484
+ "type": "object",
485
+ "required": [
486
+ "facets"
487
+ ],
488
+ "properties": {
489
+ "facets": {
490
+ "type": "object",
491
+ "required": [
492
+ "length"
493
+ ],
494
+ "properties": {
495
+ "length": {
496
+ "type": "object",
497
+ "required": [
498
+ "unit"
499
+ ],
500
+ "properties": {
501
+ "unit": {
502
+ "const": "byte"
503
+ }
504
+ }
505
+ }
506
+ }
507
+ }
508
+ }
509
+ },
510
+ "then": {
511
+ "type": "object",
512
+ "required": [
513
+ "scalarType"
514
+ ],
515
+ "properties": {
516
+ "scalarType": {
517
+ "const": "binary"
518
+ }
519
+ }
520
+ }
521
+ },
522
+ {
523
+ "if": {
524
+ "type": "object",
525
+ "required": [
526
+ "facets"
527
+ ],
528
+ "properties": {
529
+ "facets": {
530
+ "type": "object",
531
+ "required": [
532
+ "precision"
533
+ ],
534
+ "properties": {
535
+ "precision": {}
536
+ }
537
+ }
538
+ }
539
+ },
540
+ "then": {
541
+ "type": "object",
542
+ "required": [
543
+ "scalarType"
544
+ ],
545
+ "properties": {
546
+ "scalarType": {
547
+ "const": "decimal"
548
+ }
549
+ }
550
+ }
551
+ },
552
+ {
553
+ "if": {
554
+ "type": "object",
555
+ "required": [
556
+ "facets"
557
+ ],
558
+ "properties": {
559
+ "facets": {
560
+ "type": "object",
561
+ "required": [
562
+ "integerWidth"
563
+ ],
564
+ "properties": {
565
+ "integerWidth": {}
566
+ }
567
+ }
568
+ }
569
+ },
570
+ "then": {
571
+ "type": "object",
572
+ "required": [
573
+ "scalarType"
574
+ ],
575
+ "properties": {
576
+ "scalarType": {
577
+ "const": "integer"
578
+ }
579
+ }
580
+ }
581
+ },
582
+ {
583
+ "if": {
584
+ "type": "object",
585
+ "required": [
586
+ "members"
587
+ ],
588
+ "properties": {
589
+ "members": {}
590
+ }
591
+ },
592
+ "then": {
593
+ "type": "object",
594
+ "required": [
595
+ "kind"
596
+ ],
597
+ "properties": {
598
+ "kind": {
599
+ "const": "record"
600
+ }
601
+ }
602
+ }
603
+ },
604
+ {
605
+ "if": {
606
+ "type": "object",
607
+ "required": [
608
+ "keys"
609
+ ],
610
+ "properties": {
611
+ "keys": {}
612
+ }
613
+ },
614
+ "then": {
615
+ "type": "object",
616
+ "required": [
617
+ "kind",
618
+ "members"
619
+ ],
620
+ "properties": {
621
+ "kind": {
622
+ "const": "record"
623
+ },
624
+ "members": {}
625
+ }
626
+ }
627
+ },
628
+ {
629
+ "if": {
630
+ "type": "object",
631
+ "required": [
632
+ "examples"
633
+ ],
634
+ "properties": {
635
+ "examples": {}
636
+ }
637
+ },
638
+ "then": {
639
+ "type": "object",
640
+ "required": [
641
+ "kind"
642
+ ],
643
+ "properties": {
644
+ "kind": {
645
+ "const": "field"
646
+ }
647
+ }
648
+ }
649
+ },
650
+ {
651
+ "if": {
652
+ "type": "object",
653
+ "required": [
654
+ "allowedValues"
655
+ ],
656
+ "properties": {
657
+ "allowedValues": {}
658
+ }
659
+ },
660
+ "then": {
661
+ "type": "object",
662
+ "required": [
663
+ "kind"
664
+ ],
665
+ "properties": {
666
+ "kind": {
667
+ "const": "field"
668
+ }
669
+ }
670
+ }
671
+ },
672
+ {
673
+ "if": {
674
+ "type": "object",
675
+ "required": [
676
+ "default"
677
+ ],
678
+ "properties": {
679
+ "default": {}
680
+ }
681
+ },
682
+ "then": {
683
+ "type": "object",
684
+ "required": [
685
+ "kind"
686
+ ],
687
+ "properties": {
688
+ "kind": {
689
+ "const": "field"
690
+ }
691
+ }
692
+ }
693
+ }
694
+ ]
695
+ },
696
+ "module": {
697
+ "description": "A Module gives Elements and Relationships a namespace within a Document.",
698
+ "type": "object",
699
+ "required": [
700
+ "id",
701
+ "namespace",
702
+ "elements"
703
+ ],
704
+ "properties": {
705
+ "id": {
706
+ "$ref": "#/$defs/id"
707
+ },
708
+ "namespace": {
709
+ "type": "string"
710
+ },
711
+ "elements": {
712
+ "type": "array",
713
+ "items": {
714
+ "$ref": "#/$defs/element"
715
+ }
716
+ },
717
+ "extensions": {
718
+ "$ref": "#/$defs/extensions"
719
+ },
720
+ "relationships": {
721
+ "type": "array",
722
+ "items": {
723
+ "$ref": "#/$defs/relationship"
724
+ }
725
+ },
726
+ "title": {
727
+ "type": "string"
728
+ },
729
+ "aliases": {
730
+ "type": "array",
731
+ "items": {
732
+ "type": "string",
733
+ "minLength": 1
734
+ },
735
+ "uniqueItems": true
736
+ }
737
+ }
738
+ },
739
+ "knownElementKind": {
740
+ "description": "UMF language knownElementKind",
741
+ "enum": [
742
+ "field",
743
+ "record",
744
+ "group"
745
+ ]
746
+ },
747
+ "knownNullability": {
748
+ "description": "UMF language knownNullability",
749
+ "enum": [
750
+ "required",
751
+ "absent-allowed",
752
+ "unspecified"
753
+ ]
754
+ },
755
+ "knownCardinality": {
756
+ "description": "UMF language knownCardinality",
757
+ "enum": [
758
+ "one",
759
+ "array",
760
+ "map",
761
+ "unspecified"
762
+ ]
763
+ },
764
+ "itemType": {
765
+ "description": "UMF language itemType",
766
+ "type": "object",
767
+ "required": [
768
+ "module",
769
+ "element"
770
+ ],
771
+ "properties": {
772
+ "module": {
773
+ "$ref": "#/$defs/id"
774
+ },
775
+ "element": {
776
+ "$ref": "#/$defs/id"
777
+ }
778
+ }
779
+ },
780
+ "facets": {
781
+ "description": "Missing members impose no bound. Unknown members and qualifiers are retained without interpretation.",
782
+ "type": "object",
783
+ "properties": {
784
+ "length": {
785
+ "type": "object",
786
+ "required": [
787
+ "unit"
788
+ ],
789
+ "properties": {
790
+ "min": {
791
+ "type": "integer",
792
+ "minimum": 0,
793
+ "maximum": 9007199254740991
794
+ },
795
+ "max": {
796
+ "type": "integer",
797
+ "minimum": 0,
798
+ "maximum": 9007199254740991
799
+ },
800
+ "unit": {
801
+ "type": "string",
802
+ "minLength": 1
803
+ }
804
+ },
805
+ "additionalProperties": true,
806
+ "allOf": [
807
+ {
808
+ "anyOf": [
809
+ {
810
+ "type": "object",
811
+ "required": [
812
+ "min"
813
+ ],
814
+ "properties": {
815
+ "min": {}
816
+ }
817
+ },
818
+ {
819
+ "type": "object",
820
+ "required": [
821
+ "max"
822
+ ],
823
+ "properties": {
824
+ "max": {}
825
+ }
826
+ }
827
+ ]
828
+ }
829
+ ]
830
+ },
831
+ "precision": {
832
+ "description": "Decimal coefficient digit bound; requires scale. Absolute coefficient is less than 10^precision. No implicit rounding.",
833
+ "type": "integer",
834
+ "minimum": 1,
835
+ "maximum": 9007199254740991
836
+ },
837
+ "scale": {
838
+ "description": "Fixed fractional digit count; requires precision. Semantic validation requires scale <= precision. Value equals integer coefficient times 10^-scale.",
839
+ "type": "integer",
840
+ "minimum": 0,
841
+ "maximum": 9007199254740991
842
+ },
843
+ "integerWidth": {
844
+ "description": "Signed [-2^(bits-1),2^(bits-1)-1] or unsigned [0,2^bits-1]; mathematical domain, not a physical storage-width assertion.",
845
+ "type": "object",
846
+ "required": [
847
+ "bits",
848
+ "signed"
849
+ ],
850
+ "properties": {
851
+ "bits": {
852
+ "type": "integer",
853
+ "minimum": 1,
854
+ "maximum": 9007199254740991
855
+ },
856
+ "signed": {
857
+ "type": "boolean"
858
+ }
859
+ }
860
+ },
861
+ "collectionSize": {
862
+ "type": "object",
863
+ "properties": {
864
+ "min": {
865
+ "type": "integer",
866
+ "minimum": 0,
867
+ "maximum": 9007199254740991
868
+ },
869
+ "max": {
870
+ "type": "integer",
871
+ "minimum": 0,
872
+ "maximum": 9007199254740991
873
+ }
874
+ },
875
+ "additionalProperties": true,
876
+ "allOf": [
877
+ {
878
+ "anyOf": [
879
+ {
880
+ "type": "object",
881
+ "required": [
882
+ "min"
883
+ ],
884
+ "properties": {
885
+ "min": {}
886
+ }
887
+ },
888
+ {
889
+ "type": "object",
890
+ "required": [
891
+ "max"
892
+ ],
893
+ "properties": {
894
+ "max": {}
895
+ }
896
+ }
897
+ ]
898
+ }
899
+ ]
900
+ },
901
+ "range": {
902
+ "type": "object",
903
+ "properties": {
904
+ "min": {
905
+ "$ref": "#/$defs/literal"
906
+ },
907
+ "max": {
908
+ "$ref": "#/$defs/literal"
909
+ },
910
+ "minInclusive": {
911
+ "type": "boolean"
912
+ },
913
+ "maxInclusive": {
914
+ "type": "boolean"
915
+ }
916
+ },
917
+ "additionalProperties": true,
918
+ "allOf": [
919
+ {
920
+ "anyOf": [
921
+ {
922
+ "type": "object",
923
+ "required": [
924
+ "min"
925
+ ],
926
+ "properties": {
927
+ "min": {}
928
+ }
929
+ },
930
+ {
931
+ "type": "object",
932
+ "required": [
933
+ "max"
934
+ ],
935
+ "properties": {
936
+ "max": {}
937
+ }
938
+ }
939
+ ]
940
+ }
941
+ ]
942
+ }
943
+ },
944
+ "dependentRequired": {
945
+ "precision": [
946
+ "scale"
947
+ ],
948
+ "scale": [
949
+ "precision"
950
+ ]
951
+ }
952
+ },
953
+ "keyFieldReference": {
954
+ "description": "UMF language keyFieldReference",
955
+ "type": "object",
956
+ "required": [
957
+ "module",
958
+ "element"
959
+ ],
960
+ "properties": {
961
+ "module": {
962
+ "$ref": "#/$defs/id"
963
+ },
964
+ "element": {
965
+ "$ref": "#/$defs/id"
966
+ }
967
+ },
968
+ "additionalProperties": true
969
+ },
970
+ "key": {
971
+ "description": "UMF language key",
972
+ "type": "object",
973
+ "required": [
974
+ "id",
975
+ "name",
976
+ "fields"
977
+ ],
978
+ "properties": {
979
+ "id": {
980
+ "$ref": "#/$defs/id"
981
+ },
982
+ "name": {
983
+ "$ref": "#/$defs/id"
984
+ },
985
+ "fields": {
986
+ "type": "array",
987
+ "items": {
988
+ "$ref": "#/$defs/keyFieldReference"
989
+ },
990
+ "minItems": 1,
991
+ "uniqueItems": true
992
+ },
993
+ "primary": {
994
+ "type": "boolean"
995
+ }
996
+ },
997
+ "additionalProperties": true
998
+ },
999
+ "relationshipEndpoint": {
1000
+ "description": "UMF language relationshipEndpoint",
1001
+ "type": "object",
1002
+ "required": [
1003
+ "module",
1004
+ "element"
1005
+ ],
1006
+ "properties": {
1007
+ "module": {
1008
+ "$ref": "#/$defs/id"
1009
+ },
1010
+ "element": {
1011
+ "$ref": "#/$defs/id"
1012
+ }
1013
+ },
1014
+ "additionalProperties": true
1015
+ },
1016
+ "relationshipTarget": {
1017
+ "description": "UMF language relationshipTarget",
1018
+ "type": "object",
1019
+ "required": [
1020
+ "module",
1021
+ "element",
1022
+ "key"
1023
+ ],
1024
+ "properties": {
1025
+ "module": {
1026
+ "$ref": "#/$defs/id"
1027
+ },
1028
+ "element": {
1029
+ "$ref": "#/$defs/id"
1030
+ },
1031
+ "key": {
1032
+ "$ref": "#/$defs/id"
1033
+ }
1034
+ },
1035
+ "additionalProperties": true
1036
+ },
1037
+ "relationshipMultiplicity": {
1038
+ "description": "UMF language relationshipMultiplicity",
1039
+ "type": "object",
1040
+ "required": [
1041
+ "min",
1042
+ "max"
1043
+ ],
1044
+ "properties": {
1045
+ "min": {
1046
+ "type": "integer",
1047
+ "minimum": 0,
1048
+ "maximum": 9007199254740991
1049
+ },
1050
+ "max": {
1051
+ "anyOf": [
1052
+ {
1053
+ "type": "integer",
1054
+ "minimum": 1,
1055
+ "maximum": 9007199254740991
1056
+ },
1057
+ {
1058
+ "const": "*"
1059
+ }
1060
+ ]
1061
+ }
1062
+ },
1063
+ "additionalProperties": true
1064
+ },
1065
+ "relationship": {
1066
+ "description": "UMF language relationship",
1067
+ "type": "object",
1068
+ "required": [
1069
+ "id",
1070
+ "name",
1071
+ "source",
1072
+ "target",
1073
+ "sourceMultiplicity",
1074
+ "targetMultiplicity",
1075
+ "targetLifecycle",
1076
+ "directed"
1077
+ ],
1078
+ "properties": {
1079
+ "id": {
1080
+ "$ref": "#/$defs/id"
1081
+ },
1082
+ "name": {
1083
+ "$ref": "#/$defs/id"
1084
+ },
1085
+ "source": {
1086
+ "type": "array",
1087
+ "items": {
1088
+ "$ref": "#/$defs/relationshipEndpoint"
1089
+ },
1090
+ "minItems": 1
1091
+ },
1092
+ "target": {
1093
+ "type": "array",
1094
+ "items": {
1095
+ "$ref": "#/$defs/relationshipTarget"
1096
+ },
1097
+ "minItems": 1
1098
+ },
1099
+ "sourceMultiplicity": {
1100
+ "$ref": "#/$defs/relationshipMultiplicity"
1101
+ },
1102
+ "targetMultiplicity": {
1103
+ "$ref": "#/$defs/relationshipMultiplicity"
1104
+ },
1105
+ "targetLifecycle": {
1106
+ "type": "string",
1107
+ "minLength": 1
1108
+ },
1109
+ "directed": {
1110
+ "type": "boolean"
1111
+ },
1112
+ "inverse": {
1113
+ "$ref": "#/$defs/id"
1114
+ },
1115
+ "associationRecord": {
1116
+ "$ref": "#/$defs/relationshipEndpoint"
1117
+ }
1118
+ },
1119
+ "additionalProperties": true
1120
+ },
1121
+ "literal": {
1122
+ "description": "UMF language literal",
1123
+ "oneOf": [
1124
+ {
1125
+ "type": "null"
1126
+ },
1127
+ {
1128
+ "type": "object",
1129
+ "required": [
1130
+ "boolean"
1131
+ ],
1132
+ "properties": {
1133
+ "boolean": {
1134
+ "type": "boolean"
1135
+ }
1136
+ },
1137
+ "additionalProperties": false
1138
+ },
1139
+ {
1140
+ "type": "object",
1141
+ "required": [
1142
+ "integerToken"
1143
+ ],
1144
+ "properties": {
1145
+ "integerToken": {
1146
+ "type": "string",
1147
+ "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?([eE][+-]?[0-9]+)?$(?![\\s\\S])"
1148
+ }
1149
+ },
1150
+ "additionalProperties": false
1151
+ },
1152
+ {
1153
+ "type": "object",
1154
+ "required": [
1155
+ "decimalToken"
1156
+ ],
1157
+ "properties": {
1158
+ "decimalToken": {
1159
+ "type": "string",
1160
+ "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?([eE][+-]?[0-9]+)?$(?![\\s\\S])"
1161
+ }
1162
+ },
1163
+ "additionalProperties": false
1164
+ },
1165
+ {
1166
+ "type": "object",
1167
+ "required": [
1168
+ "string"
1169
+ ],
1170
+ "properties": {
1171
+ "string": {
1172
+ "type": "string"
1173
+ }
1174
+ },
1175
+ "additionalProperties": false
1176
+ },
1177
+ {
1178
+ "type": "object",
1179
+ "required": [
1180
+ "binaryHex"
1181
+ ],
1182
+ "properties": {
1183
+ "binaryHex": {
1184
+ "type": "string",
1185
+ "pattern": "^([0-9a-fA-F]{2})*$(?![\\s\\S])"
1186
+ }
1187
+ },
1188
+ "additionalProperties": false
1189
+ },
1190
+ {
1191
+ "type": "object",
1192
+ "required": [
1193
+ "floatToken"
1194
+ ],
1195
+ "properties": {
1196
+ "floatToken": {
1197
+ "type": "string",
1198
+ "pattern": "^-?(0|[1-9][0-9]*)(\\.[0-9]+)?([eE][+-]?[0-9]+)?$(?![\\s\\S])"
1199
+ }
1200
+ },
1201
+ "additionalProperties": false
1202
+ },
1203
+ {
1204
+ "type": "object",
1205
+ "required": [
1206
+ "date"
1207
+ ],
1208
+ "properties": {
1209
+ "date": {
1210
+ "type": "string"
1211
+ }
1212
+ },
1213
+ "additionalProperties": false
1214
+ },
1215
+ {
1216
+ "type": "object",
1217
+ "required": [
1218
+ "time"
1219
+ ],
1220
+ "properties": {
1221
+ "time": {
1222
+ "type": "string"
1223
+ }
1224
+ },
1225
+ "additionalProperties": false
1226
+ },
1227
+ {
1228
+ "type": "object",
1229
+ "required": [
1230
+ "timestamp"
1231
+ ],
1232
+ "properties": {
1233
+ "timestamp": {
1234
+ "type": "string"
1235
+ }
1236
+ },
1237
+ "additionalProperties": false
1238
+ },
1239
+ {
1240
+ "type": "object",
1241
+ "required": [
1242
+ "array"
1243
+ ],
1244
+ "properties": {
1245
+ "array": {
1246
+ "type": "array",
1247
+ "items": {
1248
+ "$ref": "#/$defs/literal"
1249
+ }
1250
+ }
1251
+ },
1252
+ "additionalProperties": false
1253
+ },
1254
+ {
1255
+ "type": "object",
1256
+ "required": [
1257
+ "map"
1258
+ ],
1259
+ "properties": {
1260
+ "map": {
1261
+ "type": "object",
1262
+ "additionalProperties": {
1263
+ "$ref": "#/$defs/literal"
1264
+ }
1265
+ }
1266
+ },
1267
+ "additionalProperties": false
1268
+ },
1269
+ {
1270
+ "type": "object",
1271
+ "required": [
1272
+ "bits128Hex"
1273
+ ],
1274
+ "properties": {
1275
+ "bits128Hex": {
1276
+ "type": "string",
1277
+ "minLength": 32,
1278
+ "maxLength": 32,
1279
+ "pattern": "^[0-9a-fA-F]{32}$(?![\\s\\S])"
1280
+ }
1281
+ },
1282
+ "additionalProperties": false
1283
+ },
1284
+ {
1285
+ "type": "object",
1286
+ "required": [
1287
+ "uuid"
1288
+ ],
1289
+ "properties": {
1290
+ "uuid": {
1291
+ "type": "string",
1292
+ "minLength": 36,
1293
+ "maxLength": 36,
1294
+ "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$(?![\\s\\S])"
1295
+ }
1296
+ },
1297
+ "additionalProperties": false
1298
+ }
1299
+ ]
1300
+ },
1301
+ "semanticType": {
1302
+ "description": "UMF language semanticType",
1303
+ "type": "object",
1304
+ "required": [
1305
+ "vocabulary",
1306
+ "version",
1307
+ "term"
1308
+ ],
1309
+ "properties": {
1310
+ "vocabulary": {
1311
+ "type": "string",
1312
+ "minLength": 1
1313
+ },
1314
+ "version": {
1315
+ "type": "string",
1316
+ "minLength": 1
1317
+ },
1318
+ "term": {
1319
+ "type": "string",
1320
+ "minLength": 1
1321
+ }
1322
+ }
1323
+ },
1324
+ "extensionPackage": {
1325
+ "description": "UMF language extensionPackage",
1326
+ "type": "object",
1327
+ "required": [
1328
+ "id",
1329
+ "version",
1330
+ "coreVersion",
1331
+ "description",
1332
+ "schema",
1333
+ "semantics",
1334
+ "scopes",
1335
+ "capabilities"
1336
+ ],
1337
+ "properties": {
1338
+ "id": {
1339
+ "type": "string",
1340
+ "minLength": 1
1341
+ },
1342
+ "version": {
1343
+ "type": "string",
1344
+ "pattern": "^(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)\\.(0|[1-9][0-9]*)$"
1345
+ },
1346
+ "coreVersion": {
1347
+ "const": "0.10.0"
1348
+ },
1349
+ "description": {
1350
+ "type": "string",
1351
+ "minLength": 1
1352
+ },
1353
+ "schema": {
1354
+ "anyOf": [
1355
+ {
1356
+ "type": "object"
1357
+ },
1358
+ {
1359
+ "type": "boolean"
1360
+ }
1361
+ ]
1362
+ },
1363
+ "semantics": {
1364
+ "type": "string",
1365
+ "minLength": 1
1366
+ },
1367
+ "scopes": {
1368
+ "type": "array",
1369
+ "items": {
1370
+ "enum": [
1371
+ "document",
1372
+ "module",
1373
+ "element"
1374
+ ]
1375
+ },
1376
+ "minItems": 1,
1377
+ "uniqueItems": true
1378
+ },
1379
+ "capabilities": {
1380
+ "type": "object",
1381
+ "required": [
1382
+ "validation",
1383
+ "directions",
1384
+ "evidence"
1385
+ ],
1386
+ "properties": {
1387
+ "validation": {
1388
+ "enum": [
1389
+ "structural",
1390
+ "semantic"
1391
+ ]
1392
+ },
1393
+ "directions": {
1394
+ "type": "array",
1395
+ "items": {
1396
+ "enum": [
1397
+ "import",
1398
+ "export"
1399
+ ]
1400
+ },
1401
+ "uniqueItems": true
1402
+ },
1403
+ "evidence": {
1404
+ "type": "array",
1405
+ "items": {
1406
+ "type": "string",
1407
+ "minLength": 1
1408
+ }
1409
+ },
1410
+ "native": {
1411
+ "type": "object",
1412
+ "required": [
1413
+ "system",
1414
+ "version",
1415
+ "subset"
1416
+ ],
1417
+ "properties": {
1418
+ "system": {
1419
+ "type": "string",
1420
+ "minLength": 1
1421
+ },
1422
+ "version": {
1423
+ "type": "string",
1424
+ "minLength": 1
1425
+ },
1426
+ "subset": {
1427
+ "type": "string",
1428
+ "minLength": 1
1429
+ }
1430
+ }
1431
+ }
1432
+ },
1433
+ "allOf": [
1434
+ {
1435
+ "if": {
1436
+ "type": "object",
1437
+ "properties": {
1438
+ "directions": {
1439
+ "type": "array",
1440
+ "minItems": 1
1441
+ }
1442
+ }
1443
+ },
1444
+ "then": {
1445
+ "type": "object",
1446
+ "required": [
1447
+ "native"
1448
+ ],
1449
+ "properties": {
1450
+ "native": true
1451
+ }
1452
+ }
1453
+ }
1454
+ ]
1455
+ },
1456
+ "kindCatalog": {}
1457
+ }
1458
+ },
1459
+ "extensionKindDefinition": {
1460
+ "description": "UMF extension kind extensionKindDefinition",
1461
+ "type": "object",
1462
+ "required": [
1463
+ "title",
1464
+ "description",
1465
+ "scopes"
1466
+ ],
1467
+ "properties": {
1468
+ "title": {
1469
+ "type": "string",
1470
+ "minLength": 1
1471
+ },
1472
+ "description": {
1473
+ "type": "string",
1474
+ "minLength": 1
1475
+ },
1476
+ "scopes": {
1477
+ "type": "array",
1478
+ "items": {
1479
+ "enum": [
1480
+ "document",
1481
+ "module",
1482
+ "element"
1483
+ ]
1484
+ },
1485
+ "minItems": 1,
1486
+ "uniqueItems": true
1487
+ }
1488
+ }
1489
+ },
1490
+ "extensionKindCatalog": {
1491
+ "description": "UMF extension kind extensionKindCatalog",
1492
+ "type": "object",
1493
+ "required": [
1494
+ "profile"
1495
+ ],
1496
+ "properties": {
1497
+ "profile": {
1498
+ "type": "string",
1499
+ "minLength": 1
1500
+ },
1501
+ "definitions": {}
1502
+ },
1503
+ "allOf": [
1504
+ {
1505
+ "if": {
1506
+ "type": "object",
1507
+ "required": [
1508
+ "profile"
1509
+ ],
1510
+ "properties": {
1511
+ "profile": {
1512
+ "const": "1.0.0"
1513
+ }
1514
+ }
1515
+ },
1516
+ "then": {
1517
+ "type": "object",
1518
+ "required": [
1519
+ "definitions"
1520
+ ],
1521
+ "properties": {
1522
+ "definitions": {
1523
+ "type": "object",
1524
+ "additionalProperties": {
1525
+ "$ref": "#/$defs/extensionKindDefinition"
1526
+ },
1527
+ "propertyNames": {
1528
+ "type": "string",
1529
+ "minLength": 1
1530
+ },
1531
+ "allOf": [
1532
+ {
1533
+ "not": {
1534
+ "const": {}
1535
+ }
1536
+ }
1537
+ ]
1538
+ }
1539
+ }
1540
+ }
1541
+ }
1542
+ ]
1543
+ },
1544
+ "extensionKindReference": {
1545
+ "description": "UMF extension kind extensionKindReference",
1546
+ "type": "object",
1547
+ "required": [
1548
+ "extension",
1549
+ "version",
1550
+ "kind"
1551
+ ],
1552
+ "properties": {
1553
+ "extension": {
1554
+ "type": "string",
1555
+ "minLength": 1
1556
+ },
1557
+ "version": {
1558
+ "type": "string",
1559
+ "minLength": 1
1560
+ },
1561
+ "kind": {
1562
+ "type": "string",
1563
+ "minLength": 1
1564
+ }
1565
+ },
1566
+ "additionalProperties": false
1567
+ },
1568
+ "extensionKindDiagnostic": {
1569
+ "description": "UMF extension kind extensionKindDiagnostic",
1570
+ "type": "object",
1571
+ "required": [
1572
+ "code",
1573
+ "path",
1574
+ "message",
1575
+ "severity"
1576
+ ],
1577
+ "properties": {
1578
+ "code": {
1579
+ "type": "string",
1580
+ "minLength": 1
1581
+ },
1582
+ "path": {
1583
+ "type": "string"
1584
+ },
1585
+ "message": {
1586
+ "type": "string"
1587
+ },
1588
+ "severity": {
1589
+ "enum": [
1590
+ "error",
1591
+ "warning"
1592
+ ]
1593
+ }
1594
+ },
1595
+ "additionalProperties": false
1596
+ },
1597
+ "extensionKindValidation": {
1598
+ "description": "UMF extension kind extensionKindValidation",
1599
+ "type": "object",
1600
+ "required": [
1601
+ "valid",
1602
+ "complete",
1603
+ "diagnostics"
1604
+ ],
1605
+ "properties": {
1606
+ "valid": {
1607
+ "type": "boolean"
1608
+ },
1609
+ "complete": {
1610
+ "type": "boolean"
1611
+ },
1612
+ "diagnostics": {
1613
+ "type": "array",
1614
+ "items": {
1615
+ "$ref": "#/$defs/extensionKindDiagnostic"
1616
+ }
1617
+ }
1618
+ },
1619
+ "additionalProperties": false
1620
+ },
1621
+ "extensionKindEntry": {
1622
+ "description": "UMF extension kind extensionKindEntry",
1623
+ "type": "object",
1624
+ "required": [
1625
+ "reference",
1626
+ "owner",
1627
+ "payloadPath",
1628
+ "definition"
1629
+ ],
1630
+ "properties": {
1631
+ "reference": {
1632
+ "$ref": "#/$defs/extensionKindReference"
1633
+ },
1634
+ "owner": {
1635
+ "oneOf": [
1636
+ {
1637
+ "type": "object",
1638
+ "required": [
1639
+ "scope"
1640
+ ],
1641
+ "properties": {
1642
+ "scope": {
1643
+ "const": "document"
1644
+ }
1645
+ },
1646
+ "additionalProperties": false
1647
+ },
1648
+ {
1649
+ "type": "object",
1650
+ "required": [
1651
+ "scope",
1652
+ "module"
1653
+ ],
1654
+ "properties": {
1655
+ "scope": {
1656
+ "const": "module"
1657
+ },
1658
+ "module": {
1659
+ "type": "string",
1660
+ "minLength": 1
1661
+ }
1662
+ },
1663
+ "additionalProperties": false
1664
+ },
1665
+ {
1666
+ "type": "object",
1667
+ "required": [
1668
+ "scope",
1669
+ "module",
1670
+ "element"
1671
+ ],
1672
+ "properties": {
1673
+ "scope": {
1674
+ "const": "element"
1675
+ },
1676
+ "module": {
1677
+ "type": "string",
1678
+ "minLength": 1
1679
+ },
1680
+ "element": {
1681
+ "type": "string",
1682
+ "minLength": 1
1683
+ }
1684
+ },
1685
+ "additionalProperties": false
1686
+ }
1687
+ ]
1688
+ },
1689
+ "payloadPath": {
1690
+ "type": "string",
1691
+ "minLength": 1
1692
+ },
1693
+ "definition": {
1694
+ "$ref": "#/$defs/extensionKindDefinition"
1695
+ }
1696
+ },
1697
+ "additionalProperties": false
1698
+ },
1699
+ "extensionKindCoverage": {
1700
+ "description": "UMF extension kind extensionKindCoverage",
1701
+ "type": "object",
1702
+ "required": [
1703
+ "owner",
1704
+ "extension",
1705
+ "version",
1706
+ "payloadPath",
1707
+ "status",
1708
+ "diagnostics"
1709
+ ],
1710
+ "properties": {
1711
+ "owner": {
1712
+ "oneOf": [
1713
+ {
1714
+ "type": "object",
1715
+ "required": [
1716
+ "scope"
1717
+ ],
1718
+ "properties": {
1719
+ "scope": {
1720
+ "const": "document"
1721
+ }
1722
+ },
1723
+ "additionalProperties": false
1724
+ },
1725
+ {
1726
+ "type": "object",
1727
+ "required": [
1728
+ "scope",
1729
+ "module"
1730
+ ],
1731
+ "properties": {
1732
+ "scope": {
1733
+ "const": "module"
1734
+ },
1735
+ "module": {
1736
+ "type": "string",
1737
+ "minLength": 1
1738
+ }
1739
+ },
1740
+ "additionalProperties": false
1741
+ },
1742
+ {
1743
+ "type": "object",
1744
+ "required": [
1745
+ "scope",
1746
+ "module",
1747
+ "element"
1748
+ ],
1749
+ "properties": {
1750
+ "scope": {
1751
+ "const": "element"
1752
+ },
1753
+ "module": {
1754
+ "type": "string",
1755
+ "minLength": 1
1756
+ },
1757
+ "element": {
1758
+ "type": "string",
1759
+ "minLength": 1
1760
+ }
1761
+ },
1762
+ "additionalProperties": false
1763
+ }
1764
+ ]
1765
+ },
1766
+ "extension": {
1767
+ "type": "string",
1768
+ "minLength": 1
1769
+ },
1770
+ "version": {
1771
+ "anyOf": [
1772
+ {
1773
+ "type": "string",
1774
+ "minLength": 1
1775
+ },
1776
+ {
1777
+ "type": "null"
1778
+ }
1779
+ ]
1780
+ },
1781
+ "payloadPath": {
1782
+ "type": "string",
1783
+ "minLength": 1
1784
+ },
1785
+ "status": {
1786
+ "enum": [
1787
+ "resolved",
1788
+ "absent-catalog",
1789
+ "unavailable",
1790
+ "unsupported-catalog",
1791
+ "invalid"
1792
+ ]
1793
+ },
1794
+ "diagnostics": {
1795
+ "type": "array",
1796
+ "items": {
1797
+ "$ref": "#/$defs/extensionKindDiagnostic"
1798
+ }
1799
+ }
1800
+ },
1801
+ "additionalProperties": false
1802
+ },
1803
+ "extensionKindListResult": {
1804
+ "description": "UMF extension kind extensionKindListResult",
1805
+ "type": "object",
1806
+ "required": [
1807
+ "definitions",
1808
+ "packages",
1809
+ "complete"
1810
+ ],
1811
+ "properties": {
1812
+ "definitions": {
1813
+ "type": "array",
1814
+ "items": {
1815
+ "type": "object",
1816
+ "required": [
1817
+ "reference",
1818
+ "definition"
1819
+ ],
1820
+ "properties": {
1821
+ "reference": {
1822
+ "$ref": "#/$defs/extensionKindReference"
1823
+ },
1824
+ "definition": {
1825
+ "$ref": "#/$defs/extensionKindDefinition"
1826
+ }
1827
+ },
1828
+ "additionalProperties": false
1829
+ }
1830
+ },
1831
+ "packages": {
1832
+ "type": "array",
1833
+ "items": {
1834
+ "type": "object",
1835
+ "required": [
1836
+ "extension",
1837
+ "version",
1838
+ "catalog",
1839
+ "diagnostics"
1840
+ ],
1841
+ "properties": {
1842
+ "extension": {
1843
+ "type": "string",
1844
+ "minLength": 1
1845
+ },
1846
+ "version": {
1847
+ "type": "string",
1848
+ "minLength": 1
1849
+ },
1850
+ "catalog": {
1851
+ "enum": [
1852
+ "available",
1853
+ "absent",
1854
+ "unsupported"
1855
+ ]
1856
+ },
1857
+ "diagnostics": {
1858
+ "type": "array",
1859
+ "items": {
1860
+ "$ref": "#/$defs/extensionKindDiagnostic"
1861
+ }
1862
+ }
1863
+ },
1864
+ "additionalProperties": false
1865
+ }
1866
+ },
1867
+ "complete": {
1868
+ "type": "boolean"
1869
+ }
1870
+ },
1871
+ "additionalProperties": false
1872
+ },
1873
+ "extensionKindInspection": {
1874
+ "description": "UMF extension kind extensionKindInspection",
1875
+ "type": "object",
1876
+ "required": [
1877
+ "source",
1878
+ "sourceValidation",
1879
+ "entries",
1880
+ "coverage",
1881
+ "complete"
1882
+ ],
1883
+ "properties": {
1884
+ "source": {},
1885
+ "sourceValidation": {
1886
+ "$ref": "#/$defs/extensionKindValidation"
1887
+ },
1888
+ "entries": {
1889
+ "type": "array",
1890
+ "items": {
1891
+ "$ref": "#/$defs/extensionKindEntry"
1892
+ }
1893
+ },
1894
+ "coverage": {
1895
+ "type": "array",
1896
+ "items": {
1897
+ "$ref": "#/$defs/extensionKindCoverage"
1898
+ }
1899
+ },
1900
+ "complete": {
1901
+ "type": "boolean"
1902
+ }
1903
+ },
1904
+ "additionalProperties": false
1905
+ }
1906
+ },
1907
+ "$comment": "Generated from spec/metamodel/umf.yaml; model fe838a63f66d5f959468ad0ed0e1ea202be1a89536bfc91bcb4a6c2d54ab383f; compiler f4bf9751145f3be097eef0f8373e65da356f519b54d153c0227af5882e1c545c"
1908
+ }