@toolproof-core/schema 1.0.8 → 1.0.10

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 (49) hide show
  1. package/dist/generated/artifacts/constants.d.ts +120 -0
  2. package/dist/generated/artifacts/constants.js +120 -0
  3. package/dist/generated/artifacts/mappings.d.ts +23 -0
  4. package/dist/generated/artifacts/mappings.js +23 -0
  5. package/dist/generated/normalized/Genesis.json +67 -53
  6. package/dist/generated/resources/Genesis.json +424 -236
  7. package/dist/generated/schemas/Genesis.json +56 -42
  8. package/dist/generated/schemas/standalone/Job.json +2 -0
  9. package/dist/generated/schemas/standalone/RawStrategy.json +86 -110
  10. package/dist/generated/schemas/standalone/RunnableStrategy.json +108 -132
  11. package/dist/generated/schemas/standalone/StrategyRun.json +86 -110
  12. package/dist/generated/types/types.d.ts +34 -34
  13. package/dist/index.d.ts +6 -3
  14. package/dist/index.js +5 -2
  15. package/dist/scripts/_lib/config.d.ts +3 -5
  16. package/dist/scripts/_lib/config.js +8 -14
  17. package/dist/scripts/generateConstantsAndMappings.d.ts +31 -0
  18. package/dist/scripts/generateConstantsAndMappings.js +243 -0
  19. package/dist/scripts/generateDependencies.js +1 -1
  20. package/dist/scripts/generateTerminals.js +2 -2
  21. package/dist/scripts/generateTypes.js +47 -2
  22. package/dist/scripts/wrapResourceTypesWithResourceShells.js +7 -3
  23. package/package.json +3 -3
  24. package/src/Genesis.json +71 -57
  25. package/src/generated/artifacts/constants.ts +121 -0
  26. package/src/generated/{dependencies → artifacts}/dependencyMap.json +16 -18
  27. package/src/generated/artifacts/mappings.ts +24 -0
  28. package/src/generated/{dependencies → artifacts}/terminals.json +1 -0
  29. package/src/generated/normalized/Genesis.json +1760 -1746
  30. package/src/generated/resources/Genesis.json +2796 -2608
  31. package/src/generated/schemas/Genesis.json +1329 -1315
  32. package/src/generated/schemas/standalone/Job.json +2 -0
  33. package/src/generated/schemas/standalone/RawStrategy.json +580 -604
  34. package/src/generated/schemas/standalone/RunnableStrategy.json +645 -669
  35. package/src/generated/schemas/standalone/StrategyRun.json +913 -937
  36. package/src/generated/types/types.d.ts +709 -709
  37. package/src/index.ts +8 -2
  38. package/src/scripts/_lib/config.ts +9 -17
  39. package/src/scripts/generateConstantsAndMappings.ts +309 -0
  40. package/src/scripts/generateDependencies.ts +1 -1
  41. package/src/scripts/generateTerminals.ts +2 -2
  42. package/src/scripts/generateTypes.ts +58 -2
  43. package/src/scripts/wrapResourceTypesWithResourceShells.ts +7 -3
  44. package/dist/generated/constants/constants.d.ts +0 -60
  45. package/dist/generated/constants/constants.js +0 -60
  46. package/dist/scripts/generateConstants.d.ts +0 -12
  47. package/dist/scripts/generateConstants.js +0 -179
  48. package/src/generated/constants/constants.ts +0 -61
  49. package/src/scripts/generateConstants.ts +0 -217
@@ -1,604 +1,580 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "type": "object",
4
- "allOf": [
5
- {
6
- "$ref": "#/$defs/StepsFacet"
7
- },
8
- {
9
- "$ref": "#/$defs/StrategyStateFacet"
10
- }
11
- ],
12
- "unevaluatedProperties": false,
13
- "$defs": {
14
- "StepsFacet": {
15
- "$schema": "https://json-schema.org/draft/2020-12/schema",
16
- "type": "object",
17
- "required": [
18
- "steps"
19
- ],
20
- "properties": {
21
- "steps": {
22
- "$ref": "#/$defs/StepArray"
23
- }
24
- }
25
- },
26
- "StrategyStateFacet": {
27
- "$schema": "https://json-schema.org/draft/2020-12/schema",
28
- "type": "object",
29
- "required": [
30
- "strategyState"
31
- ],
32
- "properties": {
33
- "strategyState": {
34
- "$ref": "#/$defs/StrategyState"
35
- }
36
- }
37
- },
38
- "StepArray": {
39
- "$schema": "https://json-schema.org/draft/2020-12/schema",
40
- "type": "array",
41
- "items": {
42
- "$ref": "#/$defs/Step"
43
- },
44
- "uniqueItems": true
45
- },
46
- "StrategyState": {
47
- "$schema": "https://json-schema.org/draft/2020-12/schema",
48
- "type": "object",
49
- "propertyNames": {
50
- "$ref": "#/$defs/JobStepIdentity"
51
- },
52
- "additionalProperties": {
53
- "$ref": "#/$defs/JobStepSocket"
54
- }
55
- },
56
- "Step": {
57
- "$schema": "https://json-schema.org/draft/2020-12/schema",
58
- "type": "object",
59
- "oneOf": [
60
- {
61
- "$ref": "#/$defs/JobStep"
62
- },
63
- {
64
- "$ref": "#/$defs/BranchStep"
65
- },
66
- {
67
- "$ref": "#/$defs/WhileStep"
68
- },
69
- {
70
- "$ref": "#/$defs/ForStep"
71
- }
72
- ],
73
- "unevaluatedProperties": false
74
- },
75
- "JobStepIdentity": {
76
- "$schema": "https://json-schema.org/draft/2020-12/schema",
77
- "type": "string",
78
- "pattern": "^JOB_STEP-.+$"
79
- },
80
- "JobStepSocket": {
81
- "$schema": "https://json-schema.org/draft/2020-12/schema",
82
- "type": "object",
83
- "propertyNames": {
84
- "$ref": "#/$defs/ResourceRoleIdentity"
85
- },
86
- "additionalProperties": {
87
- "$ref": "#/$defs/Resource"
88
- }
89
- },
90
- "JobStep": {
91
- "$schema": "https://json-schema.org/draft/2020-12/schema",
92
- "type": "object",
93
- "required": [
94
- "identity",
95
- "stepKind",
96
- "jobHandle"
97
- ],
98
- "properties": {
99
- "identity": {
100
- "$ref": "#/$defs/JobStepIdentity"
101
- },
102
- "stepKind": {
103
- "const": "job"
104
- },
105
- "jobHandle": {
106
- "$ref": "#/$defs/JobIdentity"
107
- }
108
- },
109
- "allOf": [
110
- {
111
- "$ref": "#/$defs/StepKindFacet"
112
- },
113
- {
114
- "$comment": "This will be overlayed dynamically to specify roleBindings corresponding to the roles of the underlying job.",
115
- "$ref": "#/$defs/RoleBindingsFacet"
116
- }
117
- ]
118
- },
119
- "BranchStep": {
120
- "$schema": "https://json-schema.org/draft/2020-12/schema",
121
- "type": "object",
122
- "required": [
123
- "identity",
124
- "stepKind",
125
- "cases"
126
- ],
127
- "properties": {
128
- "identity": {
129
- "$ref": "#/$defs/BranchStepIdentity"
130
- },
131
- "stepKind": {
132
- "const": "branch"
133
- },
134
- "cases": {
135
- "type": "array",
136
- "items": {
137
- "$ref": "#/$defs/Conditional"
138
- },
139
- "minItems": 1,
140
- "uniqueItems": true
141
- }
142
- },
143
- "allOf": [
144
- {
145
- "$ref": "#/$defs/StepKindFacet"
146
- }
147
- ]
148
- },
149
- "WhileStep": {
150
- "$schema": "https://json-schema.org/draft/2020-12/schema",
151
- "type": "object",
152
- "required": [
153
- "identity",
154
- "stepKind",
155
- "case"
156
- ],
157
- "properties": {
158
- "identity": {
159
- "$ref": "#/$defs/WhileStepIdentity"
160
- },
161
- "stepKind": {
162
- "const": "while"
163
- },
164
- "case": {
165
- "$ref": "#/$defs/Conditional"
166
- }
167
- },
168
- "allOf": [
169
- {
170
- "$ref": "#/$defs/StepKindFacet"
171
- }
172
- ]
173
- },
174
- "ForStep": {
175
- "$schema": "https://json-schema.org/draft/2020-12/schema",
176
- "type": "object",
177
- "required": [
178
- "identity",
179
- "stepKind",
180
- "case"
181
- ],
182
- "properties": {
183
- "identity": {
184
- "$ref": "#/$defs/ForStepIdentity"
185
- },
186
- "stepKind": {
187
- "const": "for"
188
- },
189
- "case": {
190
- "$ref": "#/$defs/Conditional"
191
- }
192
- },
193
- "allOf": [
194
- {
195
- "$ref": "#/$defs/StepKindFacet"
196
- }
197
- ]
198
- },
199
- "ResourceRoleIdentity": {
200
- "$schema": "https://json-schema.org/draft/2020-12/schema",
201
- "type": "string",
202
- "pattern": "^ROLE-.+$"
203
- },
204
- "Resource": {
205
- "$schema": "https://json-schema.org/draft/2020-12/schema",
206
- "type": "object",
207
- "oneOf": [
208
- {
209
- "$ref": "#/$defs/ResourceMissing"
210
- },
211
- {
212
- "$ref": "#/$defs/ResourceInputPotential"
213
- },
214
- {
215
- "$ref": "#/$defs/ResourceOutputPotential"
216
- },
217
- {
218
- "$ref": "#/$defs/ResourceMaterialized"
219
- }
220
- ],
221
- "unevaluatedProperties": false
222
- },
223
- "JobIdentity": {
224
- "$schema": "https://json-schema.org/draft/2020-12/schema",
225
- "type": "string",
226
- "pattern": "^JOB-.+$"
227
- },
228
- "StepKindFacet": {
229
- "$schema": "https://json-schema.org/draft/2020-12/schema",
230
- "type": "object",
231
- "required": [
232
- "stepKind"
233
- ],
234
- "properties": {
235
- "stepKind": {
236
- "$ref": "#/$defs/StepKind"
237
- }
238
- }
239
- },
240
- "RoleBindingsFacet": {
241
- "$schema": "https://json-schema.org/draft/2020-12/schema",
242
- "type": "object",
243
- "required": [
244
- "roleBindings"
245
- ],
246
- "properties": {
247
- "roleBindings": {
248
- "$ref": "#/$defs/RoleBindings"
249
- }
250
- }
251
- },
252
- "BranchStepIdentity": {
253
- "$schema": "https://json-schema.org/draft/2020-12/schema",
254
- "type": "string",
255
- "pattern": "^BRANCH_STEP-.+$"
256
- },
257
- "Conditional": {
258
- "$schema": "https://json-schema.org/draft/2020-12/schema",
259
- "type": "object",
260
- "required": [
261
- "when",
262
- "what"
263
- ],
264
- "properties": {
265
- "when": {
266
- "$ref": "#/$defs/JobStep"
267
- },
268
- "what": {
269
- "$ref": "#/$defs/JobStep"
270
- }
271
- },
272
- "unevaluatedProperties": false
273
- },
274
- "WhileStepIdentity": {
275
- "$schema": "https://json-schema.org/draft/2020-12/schema",
276
- "type": "string",
277
- "pattern": "^WHILE_STEP-.+$"
278
- },
279
- "ForStepIdentity": {
280
- "$schema": "https://json-schema.org/draft/2020-12/schema",
281
- "type": "string",
282
- "pattern": "^FOR_STEP-.+$"
283
- },
284
- "ResourceMissing": {
285
- "$schema": "https://json-schema.org/draft/2020-12/schema",
286
- "type": "object",
287
- "$ref": "#/$defs/ShellMissing",
288
- "unevaluatedProperties": false
289
- },
290
- "ResourceInputPotential": {
291
- "$schema": "https://json-schema.org/draft/2020-12/schema",
292
- "type": "object",
293
- "$ref": "#/$defs/ShellInputPotential",
294
- "unevaluatedProperties": false
295
- },
296
- "ResourceOutputPotential": {
297
- "$schema": "https://json-schema.org/draft/2020-12/schema",
298
- "type": "object",
299
- "$ref": "#/$defs/ShellOutputPotential",
300
- "unevaluatedProperties": false
301
- },
302
- "ResourceMaterialized": {
303
- "$schema": "https://json-schema.org/draft/2020-12/schema",
304
- "type": "object",
305
- "allOf": [
306
- {
307
- "$ref": "#/$defs/ShellMaterializedBase"
308
- },
309
- {
310
- "$comment": "This will be overlayed dynamically to match the data structure of the underlying ResourceType's nucleusSchema.",
311
- "$ref": "#/$defs/NucleusFacet"
312
- }
313
- ],
314
- "unevaluatedProperties": false
315
- },
316
- "StepKind": {
317
- "$schema": "https://json-schema.org/draft/2020-12/schema",
318
- "type": "string",
319
- "enum": [
320
- "job",
321
- "branch",
322
- "while",
323
- "for"
324
- ]
325
- },
326
- "RoleBindings": {
327
- "$schema": "https://json-schema.org/draft/2020-12/schema",
328
- "type": "object",
329
- "required": [
330
- "inputBindings",
331
- "outputBindings"
332
- ],
333
- "properties": {
334
- "inputBindings": {
335
- "$ref": "#/$defs/RoleBindingArray"
336
- },
337
- "outputBindings": {
338
- "$ref": "#/$defs/RoleBindingArray"
339
- }
340
- }
341
- },
342
- "ShellMissing": {
343
- "$schema": "https://json-schema.org/draft/2020-12/schema",
344
- "type": "object",
345
- "properties": {
346
- "resourceKind": {
347
- "const": "missing"
348
- }
349
- },
350
- "allOf": [
351
- {
352
- "$ref": "#/$defs/ResourceShellBase"
353
- },
354
- {
355
- "$ref": "#/$defs/ResourceKindFacet"
356
- }
357
- ],
358
- "unevaluatedProperties": false
359
- },
360
- "ShellInputPotential": {
361
- "$schema": "https://json-schema.org/draft/2020-12/schema",
362
- "type": "object",
363
- "properties": {
364
- "resourceKind": {
365
- "const": "inputPotential"
366
- }
367
- },
368
- "allOf": [
369
- {
370
- "$ref": "#/$defs/ResourceShellBase"
371
- },
372
- {
373
- "$ref": "#/$defs/CreationContextFacet"
374
- },
375
- {
376
- "$ref": "#/$defs/ResourceKindFacet"
377
- }
378
- ],
379
- "unevaluatedProperties": false
380
- },
381
- "ShellOutputPotential": {
382
- "$schema": "https://json-schema.org/draft/2020-12/schema",
383
- "type": "object",
384
- "properties": {
385
- "resourceKind": {
386
- "const": "outputPotential"
387
- }
388
- },
389
- "allOf": [
390
- {
391
- "$ref": "#/$defs/ResourceShellBase"
392
- },
393
- {
394
- "$ref": "#/$defs/CreationContextFacet"
395
- },
396
- {
397
- "$ref": "#/$defs/ResourceKindFacet"
398
- }
399
- ],
400
- "unevaluatedProperties": false
401
- },
402
- "ShellMaterializedBase": {
403
- "$schema": "https://json-schema.org/draft/2020-12/schema",
404
- "type": "object",
405
- "required": [
406
- "version"
407
- ],
408
- "properties": {
409
- "version": {
410
- "const": 1
411
- },
412
- "resourceKind": {
413
- "const": "materialized"
414
- }
415
- },
416
- "allOf": [
417
- {
418
- "$ref": "#/$defs/ResourceShellBase"
419
- },
420
- {
421
- "$ref": "#/$defs/CreationContextFacet"
422
- },
423
- {
424
- "$ref": "#/$defs/ResourceKindFacet"
425
- },
426
- {
427
- "$ref": "#/$defs/TimestampFacet"
428
- },
429
- {
430
- "$ref": "#/$defs/PathFacet"
431
- }
432
- ]
433
- },
434
- "NucleusFacet": {
435
- "$schema": "https://json-schema.org/draft/2020-12/schema",
436
- "type": "object",
437
- "required": [
438
- "nucleus"
439
- ],
440
- "properties": {
441
- "nucleus": {
442
- "$ref": "#/$defs/Nucleus"
443
- }
444
- }
445
- },
446
- "RoleBindingArray": {
447
- "$schema": "https://json-schema.org/draft/2020-12/schema",
448
- "type": "array",
449
- "items": {
450
- "$ref": "#/$defs/ResourceRoleIdentity"
451
- }
452
- },
453
- "ResourceShellBase": {
454
- "$schema": "https://json-schema.org/draft/2020-12/schema",
455
- "type": "object",
456
- "required": [
457
- "identity",
458
- "resourceTypeHandle",
459
- "resourceKind"
460
- ],
461
- "properties": {
462
- "identity": {
463
- "$ref": "#/$defs/ResourceIdentity"
464
- },
465
- "resourceTypeHandle": {
466
- "$ref": "#/$defs/ResourceTypeIdentity"
467
- },
468
- "resourceKind": {
469
- "$ref": "#/$defs/ResourceKind"
470
- }
471
- }
472
- },
473
- "ResourceKindFacet": {
474
- "$schema": "https://json-schema.org/draft/2020-12/schema",
475
- "type": "object",
476
- "required": [
477
- "resourceKind"
478
- ],
479
- "properties": {
480
- "resourceKind": {
481
- "$ref": "#/$defs/ResourceKind"
482
- }
483
- }
484
- },
485
- "CreationContextFacet": {
486
- "$schema": "https://json-schema.org/draft/2020-12/schema",
487
- "type": "object",
488
- "required": [
489
- "creationContext"
490
- ],
491
- "properties": {
492
- "creationContext": {
493
- "$ref": "#/$defs/CreationContext"
494
- }
495
- }
496
- },
497
- "TimestampFacet": {
498
- "$schema": "https://json-schema.org/draft/2020-12/schema",
499
- "type": "object",
500
- "required": [
501
- "timestamp"
502
- ],
503
- "properties": {
504
- "timestamp": {
505
- "$ref": "#/$defs/Timestamp"
506
- }
507
- }
508
- },
509
- "PathFacet": {
510
- "$schema": "https://json-schema.org/draft/2020-12/schema",
511
- "type": "object",
512
- "required": [
513
- "path"
514
- ],
515
- "properties": {
516
- "path": {
517
- "$ref": "#/$defs/Path"
518
- }
519
- }
520
- },
521
- "Nucleus": {
522
- "$schema": "https://json-schema.org/draft/2020-12/schema",
523
- "type": "object",
524
- "additionalProperties": {
525
- "$ref": "#/$defs/JsonData"
526
- }
527
- },
528
- "ResourceIdentity": {
529
- "$schema": "https://json-schema.org/draft/2020-12/schema",
530
- "type": "string",
531
- "pattern": "^RESOURCE-.+$"
532
- },
533
- "ResourceTypeIdentity": {
534
- "$schema": "https://json-schema.org/draft/2020-12/schema",
535
- "type": "string",
536
- "pattern": "^TYPE-.+$"
537
- },
538
- "ResourceKind": {
539
- "$schema": "https://json-schema.org/draft/2020-12/schema",
540
- "type": "string",
541
- "enum": [
542
- "missing",
543
- "inputPotential",
544
- "outputPotential",
545
- "materialized"
546
- ]
547
- },
548
- "CreationContext": {
549
- "$schema": "https://json-schema.org/draft/2020-12/schema",
550
- "type": "object",
551
- "required": [
552
- "resourceRoleHandle",
553
- "jobStepHandle"
554
- ],
555
- "properties": {
556
- "resourceRoleHandle": {
557
- "$ref": "#/$defs/ResourceRoleIdentity"
558
- },
559
- "jobStepHandle": {
560
- "$ref": "#/$defs/JobStepIdentity"
561
- }
562
- }
563
- },
564
- "Timestamp": {
565
- "$schema": "https://json-schema.org/draft/2020-12/schema",
566
- "type": "string",
567
- "format": "date-time"
568
- },
569
- "Path": {
570
- "$schema": "https://json-schema.org/draft/2020-12/schema",
571
- "type": "string",
572
- "format": "uri-reference"
573
- },
574
- "JsonData": {
575
- "$schema": "https://json-schema.org/draft/2020-12/schema",
576
- "oneOf": [
577
- {
578
- "type": "null"
579
- },
580
- {
581
- "type": "boolean"
582
- },
583
- {
584
- "type": "number"
585
- },
586
- {
587
- "type": "string"
588
- },
589
- {
590
- "type": "array",
591
- "items": {
592
- "$ref": "#/$defs/JsonData"
593
- }
594
- },
595
- {
596
- "type": "object",
597
- "additionalProperties": {
598
- "$ref": "#/$defs/JsonData"
599
- }
600
- }
601
- ]
602
- }
603
- }
604
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "allOf": [
5
+ {
6
+ "$ref": "#/$defs/StepsFacet"
7
+ },
8
+ {
9
+ "$ref": "#/$defs/StrategyStateFacet"
10
+ }
11
+ ],
12
+ "unevaluatedProperties": false,
13
+ "$defs": {
14
+ "StepsFacet": {
15
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
16
+ "type": "object",
17
+ "required": [
18
+ "steps"
19
+ ],
20
+ "properties": {
21
+ "steps": {
22
+ "$ref": "#/$defs/StepArray"
23
+ }
24
+ }
25
+ },
26
+ "StrategyStateFacet": {
27
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
28
+ "type": "object",
29
+ "required": [
30
+ "strategyState"
31
+ ],
32
+ "properties": {
33
+ "strategyState": {
34
+ "$ref": "#/$defs/StrategyState"
35
+ }
36
+ }
37
+ },
38
+ "StepArray": {
39
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
40
+ "type": "array",
41
+ "items": {
42
+ "$ref": "#/$defs/Step"
43
+ },
44
+ "uniqueItems": true
45
+ },
46
+ "StrategyState": {
47
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
48
+ "type": "object",
49
+ "propertyNames": {
50
+ "$ref": "#/$defs/JobStepIdentity"
51
+ },
52
+ "additionalProperties": {
53
+ "$ref": "#/$defs/JobStepSocket"
54
+ }
55
+ },
56
+ "Step": {
57
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
58
+ "type": "object",
59
+ "oneOf": [
60
+ {
61
+ "$ref": "#/$defs/JobStep"
62
+ },
63
+ {
64
+ "$ref": "#/$defs/BranchStep"
65
+ },
66
+ {
67
+ "$ref": "#/$defs/WhileStep"
68
+ },
69
+ {
70
+ "$ref": "#/$defs/ForStep"
71
+ }
72
+ ],
73
+ "unevaluatedProperties": false
74
+ },
75
+ "JobStepIdentity": {
76
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
77
+ "type": "string",
78
+ "pattern": "^JOB_STEP-.+$"
79
+ },
80
+ "JobStepSocket": {
81
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
82
+ "type": "object",
83
+ "propertyNames": {
84
+ "$ref": "#/$defs/ResourceRoleIdentity"
85
+ },
86
+ "additionalProperties": {
87
+ "oneOf": [
88
+ {
89
+ "$ref": "#/$defs/ResourcePotential"
90
+ },
91
+ {
92
+ "$ref": "#/$defs/Resource"
93
+ }
94
+ ]
95
+ }
96
+ },
97
+ "JobStep": {
98
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
99
+ "type": "object",
100
+ "required": [
101
+ "identity",
102
+ "stepKind",
103
+ "jobHandle"
104
+ ],
105
+ "properties": {
106
+ "identity": {
107
+ "$ref": "#/$defs/JobStepIdentity"
108
+ },
109
+ "stepKind": {
110
+ "const": "job"
111
+ },
112
+ "jobHandle": {
113
+ "$ref": "#/$defs/JobIdentity"
114
+ }
115
+ },
116
+ "allOf": [
117
+ {
118
+ "$ref": "#/$defs/StepKindFacet"
119
+ },
120
+ {
121
+ "$comment": "This will be overlayed dynamically to specify roleBindings corresponding to the roles of the underlying job.",
122
+ "$ref": "#/$defs/RoleBindingsFacet"
123
+ }
124
+ ]
125
+ },
126
+ "BranchStep": {
127
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
128
+ "type": "object",
129
+ "required": [
130
+ "identity",
131
+ "stepKind",
132
+ "cases"
133
+ ],
134
+ "properties": {
135
+ "identity": {
136
+ "$ref": "#/$defs/BranchStepIdentity"
137
+ },
138
+ "stepKind": {
139
+ "const": "branch"
140
+ },
141
+ "cases": {
142
+ "type": "array",
143
+ "items": {
144
+ "$ref": "#/$defs/Conditional"
145
+ },
146
+ "minItems": 1,
147
+ "uniqueItems": true
148
+ }
149
+ },
150
+ "allOf": [
151
+ {
152
+ "$ref": "#/$defs/StepKindFacet"
153
+ }
154
+ ]
155
+ },
156
+ "WhileStep": {
157
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
158
+ "type": "object",
159
+ "required": [
160
+ "identity",
161
+ "stepKind",
162
+ "case"
163
+ ],
164
+ "properties": {
165
+ "identity": {
166
+ "$ref": "#/$defs/WhileStepIdentity"
167
+ },
168
+ "stepKind": {
169
+ "const": "while"
170
+ },
171
+ "case": {
172
+ "$ref": "#/$defs/Conditional"
173
+ }
174
+ },
175
+ "allOf": [
176
+ {
177
+ "$ref": "#/$defs/StepKindFacet"
178
+ }
179
+ ]
180
+ },
181
+ "ForStep": {
182
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
183
+ "type": "object",
184
+ "required": [
185
+ "identity",
186
+ "stepKind",
187
+ "case"
188
+ ],
189
+ "properties": {
190
+ "identity": {
191
+ "$ref": "#/$defs/ForStepIdentity"
192
+ },
193
+ "stepKind": {
194
+ "const": "for"
195
+ },
196
+ "case": {
197
+ "$ref": "#/$defs/Conditional"
198
+ }
199
+ },
200
+ "allOf": [
201
+ {
202
+ "$ref": "#/$defs/StepKindFacet"
203
+ }
204
+ ]
205
+ },
206
+ "ResourceRoleIdentity": {
207
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
208
+ "type": "string",
209
+ "pattern": "^ROLE-.+$"
210
+ },
211
+ "ResourcePotential": {
212
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
213
+ "type": "object",
214
+ "oneOf": [
215
+ {
216
+ "$ref": "#/$defs/ResourceMissing"
217
+ },
218
+ {
219
+ "$ref": "#/$defs/ResourceInputPotential"
220
+ },
221
+ {
222
+ "$ref": "#/$defs/ResourceOutputPotential"
223
+ }
224
+ ],
225
+ "unevaluatedProperties": false
226
+ },
227
+ "Resource": {
228
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
229
+ "type": "object",
230
+ "allOf": [
231
+ {
232
+ "$ref": "#/$defs/ShellMaterializedBase"
233
+ },
234
+ {
235
+ "$comment": "This will be overlayed dynamically to match the data structure of the underlying ResourceType's nucleusSchema.",
236
+ "$ref": "#/$defs/NucleusFacet"
237
+ }
238
+ ],
239
+ "unevaluatedProperties": false
240
+ },
241
+ "JobIdentity": {
242
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
243
+ "type": "string",
244
+ "pattern": "^JOB-.+$"
245
+ },
246
+ "StepKindFacet": {
247
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
248
+ "type": "object",
249
+ "required": [
250
+ "stepKind"
251
+ ],
252
+ "properties": {
253
+ "stepKind": {
254
+ "$ref": "#/$defs/StepKind"
255
+ }
256
+ }
257
+ },
258
+ "RoleBindingsFacet": {
259
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
260
+ "type": "object",
261
+ "required": [
262
+ "roleBindings"
263
+ ],
264
+ "properties": {
265
+ "roleBindings": {
266
+ "$ref": "#/$defs/RoleBindings"
267
+ }
268
+ }
269
+ },
270
+ "BranchStepIdentity": {
271
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
272
+ "type": "string",
273
+ "pattern": "^BRANCH_STEP-.+$"
274
+ },
275
+ "Conditional": {
276
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
277
+ "type": "object",
278
+ "required": [
279
+ "when",
280
+ "what"
281
+ ],
282
+ "properties": {
283
+ "when": {
284
+ "$ref": "#/$defs/JobStep"
285
+ },
286
+ "what": {
287
+ "$ref": "#/$defs/JobStep"
288
+ }
289
+ },
290
+ "unevaluatedProperties": false
291
+ },
292
+ "WhileStepIdentity": {
293
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
294
+ "type": "string",
295
+ "pattern": "^WHILE_STEP-.+$"
296
+ },
297
+ "ForStepIdentity": {
298
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
299
+ "type": "string",
300
+ "pattern": "^FOR_STEP-.+$"
301
+ },
302
+ "ResourceMissing": {
303
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
304
+ "type": "object",
305
+ "$ref": "#/$defs/ShellMissing",
306
+ "unevaluatedProperties": false
307
+ },
308
+ "ResourceInputPotential": {
309
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
310
+ "type": "object",
311
+ "$ref": "#/$defs/ShellInputPotential",
312
+ "unevaluatedProperties": false
313
+ },
314
+ "ResourceOutputPotential": {
315
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
316
+ "type": "object",
317
+ "$ref": "#/$defs/ShellOutputPotential",
318
+ "unevaluatedProperties": false
319
+ },
320
+ "ShellMaterializedBase": {
321
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
322
+ "type": "object",
323
+ "required": [
324
+ "version",
325
+ "resourceShellKind"
326
+ ],
327
+ "properties": {
328
+ "version": {
329
+ "const": 1
330
+ },
331
+ "resourceShellKind": {
332
+ "const": "materialized"
333
+ }
334
+ },
335
+ "allOf": [
336
+ {
337
+ "$ref": "#/$defs/ResourceShellBase"
338
+ },
339
+ {
340
+ "$ref": "#/$defs/CreationContextFacet"
341
+ },
342
+ {
343
+ "$ref": "#/$defs/ResourceShellKindFacet"
344
+ },
345
+ {
346
+ "$ref": "#/$defs/TimestampFacet"
347
+ },
348
+ {
349
+ "$ref": "#/$defs/PathFacet"
350
+ }
351
+ ]
352
+ },
353
+ "NucleusFacet": {
354
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
355
+ "type": "object",
356
+ "required": [
357
+ "nucleus"
358
+ ],
359
+ "properties": {
360
+ "nucleus": true
361
+ }
362
+ },
363
+ "StepKind": {
364
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
365
+ "type": "string",
366
+ "enum": [
367
+ "job",
368
+ "branch",
369
+ "while",
370
+ "for"
371
+ ]
372
+ },
373
+ "RoleBindings": {
374
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
375
+ "type": "object",
376
+ "required": [
377
+ "inputBindings",
378
+ "outputBindings"
379
+ ],
380
+ "properties": {
381
+ "inputBindings": {
382
+ "$ref": "#/$defs/RoleBindingArray"
383
+ },
384
+ "outputBindings": {
385
+ "$ref": "#/$defs/RoleBindingArray"
386
+ }
387
+ }
388
+ },
389
+ "ShellMissing": {
390
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
391
+ "type": "object",
392
+ "required": [
393
+ "resourceShellKind"
394
+ ],
395
+ "properties": {
396
+ "resourceShellKind": {
397
+ "const": "missing"
398
+ }
399
+ },
400
+ "allOf": [
401
+ {
402
+ "$ref": "#/$defs/ResourceShellBase"
403
+ },
404
+ {
405
+ "$ref": "#/$defs/ResourceShellKindFacet"
406
+ }
407
+ ],
408
+ "unevaluatedProperties": false
409
+ },
410
+ "ShellInputPotential": {
411
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
412
+ "type": "object",
413
+ "required": [
414
+ "resourceShellKind"
415
+ ],
416
+ "properties": {
417
+ "resourceShellKind": {
418
+ "const": "inputPotential"
419
+ }
420
+ },
421
+ "allOf": [
422
+ {
423
+ "$ref": "#/$defs/ResourceShellBase"
424
+ },
425
+ {
426
+ "$ref": "#/$defs/CreationContextFacet"
427
+ },
428
+ {
429
+ "$ref": "#/$defs/ResourceShellKindFacet"
430
+ }
431
+ ],
432
+ "unevaluatedProperties": false
433
+ },
434
+ "ShellOutputPotential": {
435
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
436
+ "type": "object",
437
+ "required": [
438
+ "resourceShellKind"
439
+ ],
440
+ "properties": {
441
+ "resourceShellKind": {
442
+ "const": "outputPotential"
443
+ }
444
+ },
445
+ "allOf": [
446
+ {
447
+ "$ref": "#/$defs/ResourceShellBase"
448
+ },
449
+ {
450
+ "$ref": "#/$defs/CreationContextFacet"
451
+ },
452
+ {
453
+ "$ref": "#/$defs/ResourceShellKindFacet"
454
+ }
455
+ ],
456
+ "unevaluatedProperties": false
457
+ },
458
+ "ResourceShellBase": {
459
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
460
+ "type": "object",
461
+ "required": [
462
+ "identity",
463
+ "resourceTypeHandle",
464
+ "resourceShellKind"
465
+ ],
466
+ "properties": {
467
+ "identity": {
468
+ "$ref": "#/$defs/ResourceIdentity"
469
+ },
470
+ "resourceTypeHandle": {
471
+ "$ref": "#/$defs/ResourceTypeIdentity"
472
+ },
473
+ "resourceShellKind": {
474
+ "$ref": "#/$defs/ResourceShellKind"
475
+ }
476
+ }
477
+ },
478
+ "CreationContextFacet": {
479
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
480
+ "type": "object",
481
+ "required": [
482
+ "creationContext"
483
+ ],
484
+ "properties": {
485
+ "creationContext": {
486
+ "$ref": "#/$defs/CreationContext"
487
+ }
488
+ }
489
+ },
490
+ "ResourceShellKindFacet": {
491
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
492
+ "type": "object",
493
+ "required": [
494
+ "resourceShellKind"
495
+ ],
496
+ "properties": {
497
+ "resourceShellKind": {
498
+ "$ref": "#/$defs/ResourceShellKind"
499
+ }
500
+ }
501
+ },
502
+ "TimestampFacet": {
503
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
504
+ "type": "object",
505
+ "required": [
506
+ "timestamp"
507
+ ],
508
+ "properties": {
509
+ "timestamp": {
510
+ "$ref": "#/$defs/Timestamp"
511
+ }
512
+ }
513
+ },
514
+ "PathFacet": {
515
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
516
+ "type": "object",
517
+ "required": [
518
+ "path"
519
+ ],
520
+ "properties": {
521
+ "path": {
522
+ "$ref": "#/$defs/Path"
523
+ }
524
+ }
525
+ },
526
+ "RoleBindingArray": {
527
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
528
+ "type": "array",
529
+ "items": {
530
+ "$ref": "#/$defs/ResourceRoleIdentity"
531
+ }
532
+ },
533
+ "ResourceIdentity": {
534
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
535
+ "type": "string",
536
+ "pattern": "^RESOURCE-.+$"
537
+ },
538
+ "ResourceTypeIdentity": {
539
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
540
+ "type": "string",
541
+ "pattern": "^TYPE-.+$"
542
+ },
543
+ "ResourceShellKind": {
544
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
545
+ "type": "string",
546
+ "enum": [
547
+ "missing",
548
+ "inputPotential",
549
+ "outputPotential",
550
+ "materialized"
551
+ ]
552
+ },
553
+ "CreationContext": {
554
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
555
+ "type": "object",
556
+ "required": [
557
+ "resourceRoleHandle",
558
+ "jobStepHandle"
559
+ ],
560
+ "properties": {
561
+ "resourceRoleHandle": {
562
+ "$ref": "#/$defs/ResourceRoleIdentity"
563
+ },
564
+ "jobStepHandle": {
565
+ "$ref": "#/$defs/JobStepIdentity"
566
+ }
567
+ }
568
+ },
569
+ "Timestamp": {
570
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
571
+ "type": "string",
572
+ "format": "date-time"
573
+ },
574
+ "Path": {
575
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
576
+ "type": "string",
577
+ "format": "uri-reference"
578
+ }
579
+ }
580
+ }