@dynamicalsystems/idl 0.12.0 → 0.13.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.
@@ -0,0 +1,3163 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://github.com/DynamicalSystemsGroup/dsg-idl/schema/dsg-run-execution-binding-v1.json",
4
+ "title": "dsg.run.execution-binding/1",
5
+ "$defs": {
6
+ "executionBinding": {
7
+ "additionalProperties": false,
8
+ "type": "object",
9
+ "required": [
10
+ "profile",
11
+ "schemaVersion",
12
+ "kind",
13
+ "installation",
14
+ "operation",
15
+ "activeSet",
16
+ "admission",
17
+ "organizationRelease",
18
+ "organizationBuild",
19
+ "selection",
20
+ "extensionRelease",
21
+ "workflow",
22
+ "jobClass",
23
+ "workloadArtifact",
24
+ "executableManifestSha256",
25
+ "target",
26
+ "eventCatalog",
27
+ "law",
28
+ "reservation",
29
+ "trustView"
30
+ ],
31
+ "properties": {
32
+ "profile": {
33
+ "const": "dsg.run.execution-binding/1",
34
+ "type": "string"
35
+ },
36
+ "schemaVersion": {
37
+ "const": 1,
38
+ "type": "number"
39
+ },
40
+ "kind": {
41
+ "const": "execution-binding",
42
+ "type": "string"
43
+ },
44
+ "installation": {
45
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
46
+ "type": "string"
47
+ },
48
+ "operation": {
49
+ "additionalProperties": false,
50
+ "type": "object",
51
+ "required": ["orn", "sha256"],
52
+ "properties": {
53
+ "orn": {
54
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
55
+ "type": "string"
56
+ },
57
+ "sha256": {
58
+ "pattern": "^[0-9a-f]{64}$",
59
+ "type": "string"
60
+ }
61
+ }
62
+ },
63
+ "activeSet": {
64
+ "additionalProperties": false,
65
+ "type": "object",
66
+ "required": ["orn", "sha256"],
67
+ "properties": {
68
+ "orn": {
69
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
70
+ "type": "string"
71
+ },
72
+ "sha256": {
73
+ "pattern": "^[0-9a-f]{64}$",
74
+ "type": "string"
75
+ }
76
+ }
77
+ },
78
+ "admission": {
79
+ "additionalProperties": false,
80
+ "type": "object",
81
+ "required": ["orn", "sha256"],
82
+ "properties": {
83
+ "orn": {
84
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
85
+ "type": "string"
86
+ },
87
+ "sha256": {
88
+ "pattern": "^[0-9a-f]{64}$",
89
+ "type": "string"
90
+ }
91
+ }
92
+ },
93
+ "organizationRelease": {
94
+ "additionalProperties": false,
95
+ "type": "object",
96
+ "required": ["orn", "sha256"],
97
+ "properties": {
98
+ "orn": {
99
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
100
+ "type": "string"
101
+ },
102
+ "sha256": {
103
+ "pattern": "^[0-9a-f]{64}$",
104
+ "type": "string"
105
+ }
106
+ }
107
+ },
108
+ "organizationBuild": {
109
+ "additionalProperties": false,
110
+ "type": "object",
111
+ "required": ["orn", "sha256"],
112
+ "properties": {
113
+ "orn": {
114
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
115
+ "type": "string"
116
+ },
117
+ "sha256": {
118
+ "pattern": "^[0-9a-f]{64}$",
119
+ "type": "string"
120
+ }
121
+ }
122
+ },
123
+ "selection": {
124
+ "additionalProperties": false,
125
+ "type": "object",
126
+ "required": ["orn", "sha256"],
127
+ "properties": {
128
+ "orn": {
129
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
130
+ "type": "string"
131
+ },
132
+ "sha256": {
133
+ "pattern": "^[0-9a-f]{64}$",
134
+ "type": "string"
135
+ }
136
+ }
137
+ },
138
+ "extensionRelease": {
139
+ "additionalProperties": false,
140
+ "type": "object",
141
+ "required": ["orn", "sha256"],
142
+ "properties": {
143
+ "orn": {
144
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
145
+ "type": "string"
146
+ },
147
+ "sha256": {
148
+ "pattern": "^[0-9a-f]{64}$",
149
+ "type": "string"
150
+ }
151
+ }
152
+ },
153
+ "workflow": {
154
+ "additionalProperties": false,
155
+ "type": "object",
156
+ "required": ["orn", "sha256"],
157
+ "properties": {
158
+ "orn": {
159
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
160
+ "type": "string"
161
+ },
162
+ "sha256": {
163
+ "pattern": "^[0-9a-f]{64}$",
164
+ "type": "string"
165
+ }
166
+ }
167
+ },
168
+ "jobClass": {
169
+ "additionalProperties": false,
170
+ "type": "object",
171
+ "required": ["orn", "sha256"],
172
+ "properties": {
173
+ "orn": {
174
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
175
+ "type": "string"
176
+ },
177
+ "sha256": {
178
+ "pattern": "^[0-9a-f]{64}$",
179
+ "type": "string"
180
+ }
181
+ }
182
+ },
183
+ "workloadArtifact": {
184
+ "additionalProperties": false,
185
+ "type": "object",
186
+ "required": ["orn", "sha256"],
187
+ "properties": {
188
+ "orn": {
189
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
190
+ "type": "string"
191
+ },
192
+ "sha256": {
193
+ "pattern": "^[0-9a-f]{64}$",
194
+ "type": "string"
195
+ }
196
+ }
197
+ },
198
+ "executableManifestSha256": {
199
+ "pattern": "^[0-9a-f]{64}$",
200
+ "type": "string"
201
+ },
202
+ "target": {
203
+ "additionalProperties": false,
204
+ "type": "object",
205
+ "required": ["orn", "sha256"],
206
+ "properties": {
207
+ "orn": {
208
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
209
+ "type": "string"
210
+ },
211
+ "sha256": {
212
+ "pattern": "^[0-9a-f]{64}$",
213
+ "type": "string"
214
+ }
215
+ }
216
+ },
217
+ "eventCatalog": {
218
+ "additionalProperties": false,
219
+ "type": "object",
220
+ "required": ["orn", "sha256"],
221
+ "properties": {
222
+ "orn": {
223
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
224
+ "type": "string"
225
+ },
226
+ "sha256": {
227
+ "pattern": "^[0-9a-f]{64}$",
228
+ "type": "string"
229
+ }
230
+ }
231
+ },
232
+ "law": {
233
+ "additionalProperties": false,
234
+ "type": "object",
235
+ "required": ["orn", "sha256"],
236
+ "properties": {
237
+ "orn": {
238
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
239
+ "type": "string"
240
+ },
241
+ "sha256": {
242
+ "pattern": "^[0-9a-f]{64}$",
243
+ "type": "string"
244
+ }
245
+ }
246
+ },
247
+ "reservation": {
248
+ "additionalProperties": false,
249
+ "type": "object",
250
+ "required": ["orn", "sha256"],
251
+ "properties": {
252
+ "orn": {
253
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
254
+ "type": "string"
255
+ },
256
+ "sha256": {
257
+ "pattern": "^[0-9a-f]{64}$",
258
+ "type": "string"
259
+ }
260
+ }
261
+ },
262
+ "trustView": {
263
+ "additionalProperties": false,
264
+ "type": "object",
265
+ "required": ["orn", "sha256"],
266
+ "properties": {
267
+ "orn": {
268
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
269
+ "type": "string"
270
+ },
271
+ "sha256": {
272
+ "pattern": "^[0-9a-f]{64}$",
273
+ "type": "string"
274
+ }
275
+ }
276
+ }
277
+ }
278
+ },
279
+ "executionRequestEnvelope": {
280
+ "additionalProperties": false,
281
+ "type": "object",
282
+ "required": [
283
+ "profile",
284
+ "schemaVersion",
285
+ "kind",
286
+ "operation",
287
+ "binding",
288
+ "jobClass",
289
+ "workloadArtifact",
290
+ "workloadArtifactProvenance",
291
+ "admission",
292
+ "activeSet",
293
+ "selection",
294
+ "catalogEntry",
295
+ "releaseEligibility"
296
+ ],
297
+ "properties": {
298
+ "profile": {
299
+ "const": "dsg.run.execution-binding/1",
300
+ "type": "string"
301
+ },
302
+ "schemaVersion": {
303
+ "const": 1,
304
+ "type": "number"
305
+ },
306
+ "kind": {
307
+ "const": "execution-request-envelope",
308
+ "type": "string"
309
+ },
310
+ "operation": {
311
+ "additionalProperties": false,
312
+ "type": "object",
313
+ "required": [
314
+ "profile",
315
+ "operationId",
316
+ "case",
317
+ "workspace",
318
+ "expectedGeneration",
319
+ "before",
320
+ "planDigest",
321
+ "document",
322
+ "authority",
323
+ "reservation"
324
+ ],
325
+ "properties": {
326
+ "profile": {
327
+ "const": "dsg.run.operation/1",
328
+ "type": "string"
329
+ },
330
+ "operationId": {
331
+ "minLength": 1,
332
+ "type": "string"
333
+ },
334
+ "case": {
335
+ "additionalProperties": false,
336
+ "type": "object",
337
+ "required": ["orn", "sha256"],
338
+ "properties": {
339
+ "orn": {
340
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
341
+ "type": "string"
342
+ },
343
+ "sha256": {
344
+ "pattern": "^[0-9a-f]{64}$",
345
+ "type": "string"
346
+ }
347
+ }
348
+ },
349
+ "workspace": {
350
+ "minLength": 1,
351
+ "type": "string"
352
+ },
353
+ "expectedGeneration": {
354
+ "minimum": 0,
355
+ "maximum": 9007199254740991,
356
+ "type": "integer"
357
+ },
358
+ "before": {
359
+ "additionalProperties": false,
360
+ "type": "object",
361
+ "required": ["operationId", "planDigest"],
362
+ "properties": {
363
+ "operationId": {
364
+ "anyOf": [
365
+ {
366
+ "minLength": 1,
367
+ "type": "string"
368
+ },
369
+ {
370
+ "type": "null"
371
+ }
372
+ ]
373
+ },
374
+ "planDigest": {
375
+ "anyOf": [
376
+ {
377
+ "pattern": "^[0-9a-f]{64}$",
378
+ "type": "string"
379
+ },
380
+ {
381
+ "type": "null"
382
+ }
383
+ ]
384
+ }
385
+ }
386
+ },
387
+ "planDigest": {
388
+ "pattern": "^[0-9a-f]{64}$",
389
+ "type": "string"
390
+ },
391
+ "document": {
392
+ "additionalProperties": false,
393
+ "type": "object",
394
+ "required": [
395
+ "schemaVersion",
396
+ "classContract",
397
+ "law",
398
+ "workload",
399
+ "inputs",
400
+ "resources",
401
+ "costBound",
402
+ "placement",
403
+ "results",
404
+ "secrets"
405
+ ],
406
+ "properties": {
407
+ "schemaVersion": {
408
+ "const": 1,
409
+ "type": "number"
410
+ },
411
+ "classContract": {
412
+ "additionalProperties": false,
413
+ "type": "object",
414
+ "required": ["orn", "sha256"],
415
+ "properties": {
416
+ "orn": {
417
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
418
+ "type": "string"
419
+ },
420
+ "sha256": {
421
+ "pattern": "^[0-9a-f]{64}$",
422
+ "type": "string"
423
+ }
424
+ }
425
+ },
426
+ "law": {
427
+ "additionalProperties": false,
428
+ "type": "object",
429
+ "required": ["bundle", "registryRelease"],
430
+ "properties": {
431
+ "bundle": {
432
+ "additionalProperties": false,
433
+ "type": "object",
434
+ "required": ["orn", "sha256"],
435
+ "properties": {
436
+ "orn": {
437
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
438
+ "type": "string"
439
+ },
440
+ "sha256": {
441
+ "pattern": "^[0-9a-f]{64}$",
442
+ "type": "string"
443
+ }
444
+ }
445
+ },
446
+ "registryRelease": {
447
+ "additionalProperties": false,
448
+ "type": "object",
449
+ "required": ["orn", "sha256"],
450
+ "properties": {
451
+ "orn": {
452
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
453
+ "type": "string"
454
+ },
455
+ "sha256": {
456
+ "pattern": "^[0-9a-f]{64}$",
457
+ "type": "string"
458
+ }
459
+ }
460
+ }
461
+ }
462
+ },
463
+ "workload": {
464
+ "additionalProperties": false,
465
+ "type": "object",
466
+ "required": ["orn", "sha256"],
467
+ "properties": {
468
+ "orn": {
469
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
470
+ "type": "string"
471
+ },
472
+ "sha256": {
473
+ "pattern": "^[0-9a-f]{64}$",
474
+ "type": "string"
475
+ }
476
+ }
477
+ },
478
+ "inputs": {
479
+ "type": "array",
480
+ "items": {
481
+ "additionalProperties": false,
482
+ "type": "object",
483
+ "required": ["orn", "sha256"],
484
+ "properties": {
485
+ "orn": {
486
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
487
+ "type": "string"
488
+ },
489
+ "sha256": {
490
+ "pattern": "^[0-9a-f]{64}$",
491
+ "type": "string"
492
+ }
493
+ }
494
+ }
495
+ },
496
+ "resources": {
497
+ "additionalProperties": false,
498
+ "type": "object",
499
+ "required": ["maxGpuSeconds", "maxRunSeconds", "maxParallelism"],
500
+ "properties": {
501
+ "maxGpuSeconds": {
502
+ "minimum": 0,
503
+ "maximum": 9007199254740991,
504
+ "type": "integer"
505
+ },
506
+ "maxRunSeconds": {
507
+ "minimum": 0,
508
+ "maximum": 9007199254740991,
509
+ "type": "integer"
510
+ },
511
+ "maxParallelism": {
512
+ "minimum": 0,
513
+ "maximum": 9007199254740991,
514
+ "type": "integer"
515
+ }
516
+ }
517
+ },
518
+ "costBound": {
519
+ "additionalProperties": false,
520
+ "type": "object",
521
+ "required": ["orn", "sha256"],
522
+ "properties": {
523
+ "orn": {
524
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
525
+ "type": "string"
526
+ },
527
+ "sha256": {
528
+ "pattern": "^[0-9a-f]{64}$",
529
+ "type": "string"
530
+ }
531
+ }
532
+ },
533
+ "placement": {
534
+ "additionalProperties": false,
535
+ "type": "object",
536
+ "required": ["orn", "sha256"],
537
+ "properties": {
538
+ "orn": {
539
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
540
+ "type": "string"
541
+ },
542
+ "sha256": {
543
+ "pattern": "^[0-9a-f]{64}$",
544
+ "type": "string"
545
+ }
546
+ }
547
+ },
548
+ "results": {
549
+ "additionalProperties": false,
550
+ "type": "object",
551
+ "required": ["orn", "sha256"],
552
+ "properties": {
553
+ "orn": {
554
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
555
+ "type": "string"
556
+ },
557
+ "sha256": {
558
+ "pattern": "^[0-9a-f]{64}$",
559
+ "type": "string"
560
+ }
561
+ }
562
+ },
563
+ "secrets": {
564
+ "type": "array",
565
+ "items": {
566
+ "additionalProperties": false,
567
+ "type": "object",
568
+ "required": ["orn", "sha256"],
569
+ "properties": {
570
+ "orn": {
571
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
572
+ "type": "string"
573
+ },
574
+ "sha256": {
575
+ "pattern": "^[0-9a-f]{64}$",
576
+ "type": "string"
577
+ }
578
+ }
579
+ }
580
+ }
581
+ }
582
+ },
583
+ "authority": {
584
+ "additionalProperties": false,
585
+ "type": "object",
586
+ "required": ["orn", "sha256"],
587
+ "properties": {
588
+ "orn": {
589
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
590
+ "type": "string"
591
+ },
592
+ "sha256": {
593
+ "pattern": "^[0-9a-f]{64}$",
594
+ "type": "string"
595
+ }
596
+ }
597
+ },
598
+ "reservation": {
599
+ "additionalProperties": false,
600
+ "type": "object",
601
+ "required": ["orn", "sha256"],
602
+ "properties": {
603
+ "orn": {
604
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
605
+ "type": "string"
606
+ },
607
+ "sha256": {
608
+ "pattern": "^[0-9a-f]{64}$",
609
+ "type": "string"
610
+ }
611
+ }
612
+ }
613
+ }
614
+ },
615
+ "binding": {
616
+ "additionalProperties": false,
617
+ "type": "object",
618
+ "required": [
619
+ "profile",
620
+ "schemaVersion",
621
+ "kind",
622
+ "installation",
623
+ "operation",
624
+ "activeSet",
625
+ "admission",
626
+ "organizationRelease",
627
+ "organizationBuild",
628
+ "selection",
629
+ "extensionRelease",
630
+ "workflow",
631
+ "jobClass",
632
+ "workloadArtifact",
633
+ "executableManifestSha256",
634
+ "target",
635
+ "eventCatalog",
636
+ "law",
637
+ "reservation",
638
+ "trustView"
639
+ ],
640
+ "properties": {
641
+ "profile": {
642
+ "const": "dsg.run.execution-binding/1",
643
+ "type": "string"
644
+ },
645
+ "schemaVersion": {
646
+ "const": 1,
647
+ "type": "number"
648
+ },
649
+ "kind": {
650
+ "const": "execution-binding",
651
+ "type": "string"
652
+ },
653
+ "installation": {
654
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
655
+ "type": "string"
656
+ },
657
+ "operation": {
658
+ "additionalProperties": false,
659
+ "type": "object",
660
+ "required": ["orn", "sha256"],
661
+ "properties": {
662
+ "orn": {
663
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
664
+ "type": "string"
665
+ },
666
+ "sha256": {
667
+ "pattern": "^[0-9a-f]{64}$",
668
+ "type": "string"
669
+ }
670
+ }
671
+ },
672
+ "activeSet": {
673
+ "additionalProperties": false,
674
+ "type": "object",
675
+ "required": ["orn", "sha256"],
676
+ "properties": {
677
+ "orn": {
678
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
679
+ "type": "string"
680
+ },
681
+ "sha256": {
682
+ "pattern": "^[0-9a-f]{64}$",
683
+ "type": "string"
684
+ }
685
+ }
686
+ },
687
+ "admission": {
688
+ "additionalProperties": false,
689
+ "type": "object",
690
+ "required": ["orn", "sha256"],
691
+ "properties": {
692
+ "orn": {
693
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
694
+ "type": "string"
695
+ },
696
+ "sha256": {
697
+ "pattern": "^[0-9a-f]{64}$",
698
+ "type": "string"
699
+ }
700
+ }
701
+ },
702
+ "organizationRelease": {
703
+ "additionalProperties": false,
704
+ "type": "object",
705
+ "required": ["orn", "sha256"],
706
+ "properties": {
707
+ "orn": {
708
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
709
+ "type": "string"
710
+ },
711
+ "sha256": {
712
+ "pattern": "^[0-9a-f]{64}$",
713
+ "type": "string"
714
+ }
715
+ }
716
+ },
717
+ "organizationBuild": {
718
+ "additionalProperties": false,
719
+ "type": "object",
720
+ "required": ["orn", "sha256"],
721
+ "properties": {
722
+ "orn": {
723
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
724
+ "type": "string"
725
+ },
726
+ "sha256": {
727
+ "pattern": "^[0-9a-f]{64}$",
728
+ "type": "string"
729
+ }
730
+ }
731
+ },
732
+ "selection": {
733
+ "additionalProperties": false,
734
+ "type": "object",
735
+ "required": ["orn", "sha256"],
736
+ "properties": {
737
+ "orn": {
738
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
739
+ "type": "string"
740
+ },
741
+ "sha256": {
742
+ "pattern": "^[0-9a-f]{64}$",
743
+ "type": "string"
744
+ }
745
+ }
746
+ },
747
+ "extensionRelease": {
748
+ "additionalProperties": false,
749
+ "type": "object",
750
+ "required": ["orn", "sha256"],
751
+ "properties": {
752
+ "orn": {
753
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
754
+ "type": "string"
755
+ },
756
+ "sha256": {
757
+ "pattern": "^[0-9a-f]{64}$",
758
+ "type": "string"
759
+ }
760
+ }
761
+ },
762
+ "workflow": {
763
+ "additionalProperties": false,
764
+ "type": "object",
765
+ "required": ["orn", "sha256"],
766
+ "properties": {
767
+ "orn": {
768
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
769
+ "type": "string"
770
+ },
771
+ "sha256": {
772
+ "pattern": "^[0-9a-f]{64}$",
773
+ "type": "string"
774
+ }
775
+ }
776
+ },
777
+ "jobClass": {
778
+ "additionalProperties": false,
779
+ "type": "object",
780
+ "required": ["orn", "sha256"],
781
+ "properties": {
782
+ "orn": {
783
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
784
+ "type": "string"
785
+ },
786
+ "sha256": {
787
+ "pattern": "^[0-9a-f]{64}$",
788
+ "type": "string"
789
+ }
790
+ }
791
+ },
792
+ "workloadArtifact": {
793
+ "additionalProperties": false,
794
+ "type": "object",
795
+ "required": ["orn", "sha256"],
796
+ "properties": {
797
+ "orn": {
798
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
799
+ "type": "string"
800
+ },
801
+ "sha256": {
802
+ "pattern": "^[0-9a-f]{64}$",
803
+ "type": "string"
804
+ }
805
+ }
806
+ },
807
+ "executableManifestSha256": {
808
+ "pattern": "^[0-9a-f]{64}$",
809
+ "type": "string"
810
+ },
811
+ "target": {
812
+ "additionalProperties": false,
813
+ "type": "object",
814
+ "required": ["orn", "sha256"],
815
+ "properties": {
816
+ "orn": {
817
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
818
+ "type": "string"
819
+ },
820
+ "sha256": {
821
+ "pattern": "^[0-9a-f]{64}$",
822
+ "type": "string"
823
+ }
824
+ }
825
+ },
826
+ "eventCatalog": {
827
+ "additionalProperties": false,
828
+ "type": "object",
829
+ "required": ["orn", "sha256"],
830
+ "properties": {
831
+ "orn": {
832
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
833
+ "type": "string"
834
+ },
835
+ "sha256": {
836
+ "pattern": "^[0-9a-f]{64}$",
837
+ "type": "string"
838
+ }
839
+ }
840
+ },
841
+ "law": {
842
+ "additionalProperties": false,
843
+ "type": "object",
844
+ "required": ["orn", "sha256"],
845
+ "properties": {
846
+ "orn": {
847
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
848
+ "type": "string"
849
+ },
850
+ "sha256": {
851
+ "pattern": "^[0-9a-f]{64}$",
852
+ "type": "string"
853
+ }
854
+ }
855
+ },
856
+ "reservation": {
857
+ "additionalProperties": false,
858
+ "type": "object",
859
+ "required": ["orn", "sha256"],
860
+ "properties": {
861
+ "orn": {
862
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
863
+ "type": "string"
864
+ },
865
+ "sha256": {
866
+ "pattern": "^[0-9a-f]{64}$",
867
+ "type": "string"
868
+ }
869
+ }
870
+ },
871
+ "trustView": {
872
+ "additionalProperties": false,
873
+ "type": "object",
874
+ "required": ["orn", "sha256"],
875
+ "properties": {
876
+ "orn": {
877
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
878
+ "type": "string"
879
+ },
880
+ "sha256": {
881
+ "pattern": "^[0-9a-f]{64}$",
882
+ "type": "string"
883
+ }
884
+ }
885
+ }
886
+ }
887
+ },
888
+ "jobClass": {
889
+ "additionalProperties": false,
890
+ "type": "object",
891
+ "required": [
892
+ "profile",
893
+ "schemaVersion",
894
+ "kind",
895
+ "id",
896
+ "executor",
897
+ "mode",
898
+ "modeEnvironmentVariable",
899
+ "workloadArtifact",
900
+ "platforms",
901
+ "isolation",
902
+ "inputContracts",
903
+ "outputContracts",
904
+ "eventCatalog",
905
+ "decisionRequirements",
906
+ "bounds",
907
+ "handling",
908
+ "retention",
909
+ "completion",
910
+ "teardown",
911
+ "evidence",
912
+ "replay"
913
+ ],
914
+ "properties": {
915
+ "profile": {
916
+ "const": "dsg.run.job-class/1",
917
+ "type": "string"
918
+ },
919
+ "schemaVersion": {
920
+ "const": 1,
921
+ "type": "number"
922
+ },
923
+ "kind": {
924
+ "const": "job-class",
925
+ "type": "string"
926
+ },
927
+ "id": {
928
+ "minLength": 1,
929
+ "type": "string"
930
+ },
931
+ "executor": {
932
+ "minLength": 1,
933
+ "type": "string"
934
+ },
935
+ "mode": {
936
+ "minLength": 1,
937
+ "type": "string"
938
+ },
939
+ "modeEnvironmentVariable": {
940
+ "minLength": 1,
941
+ "type": "string"
942
+ },
943
+ "workloadArtifact": {
944
+ "additionalProperties": false,
945
+ "type": "object",
946
+ "required": ["orn", "sha256"],
947
+ "properties": {
948
+ "orn": {
949
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
950
+ "type": "string"
951
+ },
952
+ "sha256": {
953
+ "pattern": "^[0-9a-f]{64}$",
954
+ "type": "string"
955
+ }
956
+ }
957
+ },
958
+ "platforms": {
959
+ "minItems": 1,
960
+ "uniqueItems": true,
961
+ "type": "array",
962
+ "items": {
963
+ "minLength": 1,
964
+ "type": "string"
965
+ }
966
+ },
967
+ "isolation": {
968
+ "anyOf": [
969
+ {
970
+ "const": "ephemeral",
971
+ "type": "string"
972
+ },
973
+ {
974
+ "const": "dedicated",
975
+ "type": "string"
976
+ }
977
+ ]
978
+ },
979
+ "inputContracts": {
980
+ "minItems": 1,
981
+ "uniqueItems": true,
982
+ "type": "array",
983
+ "items": {
984
+ "additionalProperties": false,
985
+ "type": "object",
986
+ "required": ["orn", "sha256"],
987
+ "properties": {
988
+ "orn": {
989
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
990
+ "type": "string"
991
+ },
992
+ "sha256": {
993
+ "pattern": "^[0-9a-f]{64}$",
994
+ "type": "string"
995
+ }
996
+ }
997
+ }
998
+ },
999
+ "outputContracts": {
1000
+ "minItems": 1,
1001
+ "uniqueItems": true,
1002
+ "type": "array",
1003
+ "items": {
1004
+ "additionalProperties": false,
1005
+ "type": "object",
1006
+ "required": ["orn", "sha256"],
1007
+ "properties": {
1008
+ "orn": {
1009
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1010
+ "type": "string"
1011
+ },
1012
+ "sha256": {
1013
+ "pattern": "^[0-9a-f]{64}$",
1014
+ "type": "string"
1015
+ }
1016
+ }
1017
+ }
1018
+ },
1019
+ "eventCatalog": {
1020
+ "additionalProperties": false,
1021
+ "type": "object",
1022
+ "required": ["orn", "sha256"],
1023
+ "properties": {
1024
+ "orn": {
1025
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1026
+ "type": "string"
1027
+ },
1028
+ "sha256": {
1029
+ "pattern": "^[0-9a-f]{64}$",
1030
+ "type": "string"
1031
+ }
1032
+ }
1033
+ },
1034
+ "decisionRequirements": {
1035
+ "minItems": 1,
1036
+ "uniqueItems": true,
1037
+ "type": "array",
1038
+ "items": {
1039
+ "additionalProperties": false,
1040
+ "type": "object",
1041
+ "required": ["orn", "sha256"],
1042
+ "properties": {
1043
+ "orn": {
1044
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1045
+ "type": "string"
1046
+ },
1047
+ "sha256": {
1048
+ "pattern": "^[0-9a-f]{64}$",
1049
+ "type": "string"
1050
+ }
1051
+ }
1052
+ }
1053
+ },
1054
+ "bounds": {
1055
+ "additionalProperties": false,
1056
+ "type": "object",
1057
+ "required": ["maxRunSeconds", "maxGpuSeconds", "maxParallelism", "maxUsdMicroUnits"],
1058
+ "properties": {
1059
+ "maxRunSeconds": {
1060
+ "minimum": 0,
1061
+ "maximum": 9007199254740991,
1062
+ "type": "integer"
1063
+ },
1064
+ "maxGpuSeconds": {
1065
+ "minimum": 0,
1066
+ "maximum": 9007199254740991,
1067
+ "type": "integer"
1068
+ },
1069
+ "maxParallelism": {
1070
+ "minimum": 0,
1071
+ "maximum": 9007199254740991,
1072
+ "type": "integer"
1073
+ },
1074
+ "maxUsdMicroUnits": {
1075
+ "minimum": 0,
1076
+ "maximum": 9007199254740991,
1077
+ "type": "integer"
1078
+ }
1079
+ }
1080
+ },
1081
+ "handling": {
1082
+ "anyOf": [
1083
+ {
1084
+ "const": "public",
1085
+ "type": "string"
1086
+ },
1087
+ {
1088
+ "const": "restricted",
1089
+ "type": "string"
1090
+ },
1091
+ {
1092
+ "const": "confidential",
1093
+ "type": "string"
1094
+ }
1095
+ ]
1096
+ },
1097
+ "retention": {
1098
+ "anyOf": [
1099
+ {
1100
+ "const": "ephemeral",
1101
+ "type": "string"
1102
+ },
1103
+ {
1104
+ "const": "bounded",
1105
+ "type": "string"
1106
+ },
1107
+ {
1108
+ "const": "durable",
1109
+ "type": "string"
1110
+ }
1111
+ ]
1112
+ },
1113
+ "completion": {
1114
+ "additionalProperties": false,
1115
+ "type": "object",
1116
+ "required": ["orn", "sha256"],
1117
+ "properties": {
1118
+ "orn": {
1119
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1120
+ "type": "string"
1121
+ },
1122
+ "sha256": {
1123
+ "pattern": "^[0-9a-f]{64}$",
1124
+ "type": "string"
1125
+ }
1126
+ }
1127
+ },
1128
+ "teardown": {
1129
+ "additionalProperties": false,
1130
+ "type": "object",
1131
+ "required": ["orn", "sha256"],
1132
+ "properties": {
1133
+ "orn": {
1134
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1135
+ "type": "string"
1136
+ },
1137
+ "sha256": {
1138
+ "pattern": "^[0-9a-f]{64}$",
1139
+ "type": "string"
1140
+ }
1141
+ }
1142
+ },
1143
+ "evidence": {
1144
+ "additionalProperties": false,
1145
+ "type": "object",
1146
+ "required": ["orn", "sha256"],
1147
+ "properties": {
1148
+ "orn": {
1149
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1150
+ "type": "string"
1151
+ },
1152
+ "sha256": {
1153
+ "pattern": "^[0-9a-f]{64}$",
1154
+ "type": "string"
1155
+ }
1156
+ }
1157
+ },
1158
+ "replay": {
1159
+ "additionalProperties": false,
1160
+ "type": "object",
1161
+ "required": ["orn", "sha256"],
1162
+ "properties": {
1163
+ "orn": {
1164
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1165
+ "type": "string"
1166
+ },
1167
+ "sha256": {
1168
+ "pattern": "^[0-9a-f]{64}$",
1169
+ "type": "string"
1170
+ }
1171
+ }
1172
+ }
1173
+ }
1174
+ },
1175
+ "workloadArtifact": {
1176
+ "additionalProperties": false,
1177
+ "type": "object",
1178
+ "required": [
1179
+ "profile",
1180
+ "schemaVersion",
1181
+ "kind",
1182
+ "id",
1183
+ "format",
1184
+ "source",
1185
+ "index",
1186
+ "executable",
1187
+ "entrypoint"
1188
+ ],
1189
+ "properties": {
1190
+ "profile": {
1191
+ "const": "dsg.run.workload-artifact/1",
1192
+ "type": "string"
1193
+ },
1194
+ "schemaVersion": {
1195
+ "const": 1,
1196
+ "type": "number"
1197
+ },
1198
+ "kind": {
1199
+ "const": "workload-artifact",
1200
+ "type": "string"
1201
+ },
1202
+ "id": {
1203
+ "minLength": 1,
1204
+ "type": "string"
1205
+ },
1206
+ "format": {
1207
+ "const": "oci-image",
1208
+ "type": "string"
1209
+ },
1210
+ "source": {
1211
+ "additionalProperties": false,
1212
+ "type": "object",
1213
+ "required": ["repository", "revision", "sourceDigest"],
1214
+ "properties": {
1215
+ "repository": {
1216
+ "minLength": 1,
1217
+ "type": "string"
1218
+ },
1219
+ "revision": {
1220
+ "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
1221
+ "type": "string"
1222
+ },
1223
+ "sourceDigest": {
1224
+ "pattern": "^[0-9a-f]{64}$",
1225
+ "type": "string"
1226
+ }
1227
+ }
1228
+ },
1229
+ "index": {
1230
+ "anyOf": [
1231
+ {
1232
+ "type": "null"
1233
+ },
1234
+ {
1235
+ "additionalProperties": false,
1236
+ "type": "object",
1237
+ "required": ["sha256", "mediaType"],
1238
+ "properties": {
1239
+ "sha256": {
1240
+ "pattern": "^[0-9a-f]{64}$",
1241
+ "type": "string"
1242
+ },
1243
+ "mediaType": {
1244
+ "anyOf": [
1245
+ {
1246
+ "const": "application/vnd.oci.image.index.v1+json",
1247
+ "type": "string"
1248
+ },
1249
+ {
1250
+ "const": "application/vnd.docker.distribution.manifest.list.v2+json",
1251
+ "type": "string"
1252
+ }
1253
+ ]
1254
+ }
1255
+ }
1256
+ }
1257
+ ]
1258
+ },
1259
+ "executable": {
1260
+ "additionalProperties": false,
1261
+ "type": "object",
1262
+ "required": ["repository", "platform", "manifest", "config"],
1263
+ "properties": {
1264
+ "repository": {
1265
+ "pattern": "^(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)*[a-z0-9](?:[a-z0-9-]*[a-z0-9])?(?::[1-9][0-9]{0,4})?/[a-z0-9]+(?:[._-][a-z0-9]+)*(?:/[a-z0-9]+(?:[._-][a-z0-9]+)*)*$",
1266
+ "type": "string"
1267
+ },
1268
+ "platform": {
1269
+ "additionalProperties": false,
1270
+ "type": "object",
1271
+ "required": ["os", "architecture"],
1272
+ "properties": {
1273
+ "os": {
1274
+ "minLength": 1,
1275
+ "type": "string"
1276
+ },
1277
+ "architecture": {
1278
+ "minLength": 1,
1279
+ "type": "string"
1280
+ },
1281
+ "variant": {
1282
+ "minLength": 1,
1283
+ "type": "string"
1284
+ }
1285
+ }
1286
+ },
1287
+ "manifest": {
1288
+ "additionalProperties": false,
1289
+ "type": "object",
1290
+ "required": ["sha256", "mediaType"],
1291
+ "properties": {
1292
+ "sha256": {
1293
+ "pattern": "^[0-9a-f]{64}$",
1294
+ "type": "string"
1295
+ },
1296
+ "mediaType": {
1297
+ "anyOf": [
1298
+ {
1299
+ "const": "application/vnd.oci.image.manifest.v1+json",
1300
+ "type": "string"
1301
+ },
1302
+ {
1303
+ "const": "application/vnd.docker.distribution.manifest.v2+json",
1304
+ "type": "string"
1305
+ }
1306
+ ]
1307
+ }
1308
+ }
1309
+ },
1310
+ "config": {
1311
+ "additionalProperties": false,
1312
+ "type": "object",
1313
+ "required": ["sha256", "mediaType"],
1314
+ "properties": {
1315
+ "sha256": {
1316
+ "pattern": "^[0-9a-f]{64}$",
1317
+ "type": "string"
1318
+ },
1319
+ "mediaType": {
1320
+ "anyOf": [
1321
+ {
1322
+ "const": "application/vnd.oci.image.config.v1+json",
1323
+ "type": "string"
1324
+ },
1325
+ {
1326
+ "const": "application/vnd.docker.container.image.v1+json",
1327
+ "type": "string"
1328
+ }
1329
+ ]
1330
+ }
1331
+ }
1332
+ }
1333
+ }
1334
+ },
1335
+ "entrypoint": {
1336
+ "minItems": 1,
1337
+ "type": "array",
1338
+ "items": {
1339
+ "minLength": 1,
1340
+ "type": "string"
1341
+ }
1342
+ }
1343
+ }
1344
+ },
1345
+ "workloadArtifactProvenance": {
1346
+ "additionalProperties": false,
1347
+ "type": "object",
1348
+ "required": [
1349
+ "profile",
1350
+ "schemaVersion",
1351
+ "kind",
1352
+ "artifact",
1353
+ "source",
1354
+ "build",
1355
+ "transportArchiveSha256",
1356
+ "observedAt",
1357
+ "evidence"
1358
+ ],
1359
+ "properties": {
1360
+ "profile": {
1361
+ "const": "dsg.run.workload-artifact/1",
1362
+ "type": "string"
1363
+ },
1364
+ "schemaVersion": {
1365
+ "const": 1,
1366
+ "type": "number"
1367
+ },
1368
+ "kind": {
1369
+ "const": "workload-artifact-provenance",
1370
+ "type": "string"
1371
+ },
1372
+ "artifact": {
1373
+ "additionalProperties": false,
1374
+ "type": "object",
1375
+ "required": ["orn", "sha256"],
1376
+ "properties": {
1377
+ "orn": {
1378
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1379
+ "type": "string"
1380
+ },
1381
+ "sha256": {
1382
+ "pattern": "^[0-9a-f]{64}$",
1383
+ "type": "string"
1384
+ }
1385
+ }
1386
+ },
1387
+ "source": {
1388
+ "additionalProperties": false,
1389
+ "type": "object",
1390
+ "required": ["repository", "revision", "sourceDigest"],
1391
+ "properties": {
1392
+ "repository": {
1393
+ "minLength": 1,
1394
+ "type": "string"
1395
+ },
1396
+ "revision": {
1397
+ "pattern": "^(?:[0-9a-f]{40}|[0-9a-f]{64})$",
1398
+ "type": "string"
1399
+ },
1400
+ "sourceDigest": {
1401
+ "pattern": "^[0-9a-f]{64}$",
1402
+ "type": "string"
1403
+ }
1404
+ }
1405
+ },
1406
+ "build": {
1407
+ "additionalProperties": false,
1408
+ "type": "object",
1409
+ "required": ["orn", "sha256"],
1410
+ "properties": {
1411
+ "orn": {
1412
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1413
+ "type": "string"
1414
+ },
1415
+ "sha256": {
1416
+ "pattern": "^[0-9a-f]{64}$",
1417
+ "type": "string"
1418
+ }
1419
+ }
1420
+ },
1421
+ "transportArchiveSha256": {
1422
+ "pattern": "^[0-9a-f]{64}$",
1423
+ "type": "string"
1424
+ },
1425
+ "observedAt": {
1426
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
1427
+ "type": "string"
1428
+ },
1429
+ "evidence": {
1430
+ "minItems": 1,
1431
+ "uniqueItems": true,
1432
+ "type": "array",
1433
+ "items": {
1434
+ "additionalProperties": false,
1435
+ "type": "object",
1436
+ "required": ["orn", "sha256"],
1437
+ "properties": {
1438
+ "orn": {
1439
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1440
+ "type": "string"
1441
+ },
1442
+ "sha256": {
1443
+ "pattern": "^[0-9a-f]{64}$",
1444
+ "type": "string"
1445
+ }
1446
+ }
1447
+ }
1448
+ }
1449
+ }
1450
+ },
1451
+ "admission": {
1452
+ "anyOf": [
1453
+ {
1454
+ "additionalProperties": false,
1455
+ "type": "object",
1456
+ "required": [
1457
+ "profile",
1458
+ "schemaVersion",
1459
+ "kind",
1460
+ "id",
1461
+ "installation",
1462
+ "organization",
1463
+ "build",
1464
+ "release",
1465
+ "selectionId",
1466
+ "extensionRelease",
1467
+ "evaluatingCase",
1468
+ "decision",
1469
+ "authority",
1470
+ "fence",
1471
+ "revision",
1472
+ "decidedAt",
1473
+ "status",
1474
+ "components",
1475
+ "approvedUses",
1476
+ "bindings",
1477
+ "evidence"
1478
+ ],
1479
+ "properties": {
1480
+ "profile": {
1481
+ "const": "dsg.organization.release/1",
1482
+ "type": "string"
1483
+ },
1484
+ "schemaVersion": {
1485
+ "const": 1,
1486
+ "type": "number"
1487
+ },
1488
+ "kind": {
1489
+ "const": "admission-record",
1490
+ "type": "string"
1491
+ },
1492
+ "id": {
1493
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
1494
+ "type": "string"
1495
+ },
1496
+ "installation": {
1497
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1498
+ "type": "string"
1499
+ },
1500
+ "organization": {
1501
+ "minLength": 1,
1502
+ "type": "string"
1503
+ },
1504
+ "build": {
1505
+ "additionalProperties": false,
1506
+ "type": "object",
1507
+ "required": ["orn", "sha256"],
1508
+ "properties": {
1509
+ "orn": {
1510
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1511
+ "type": "string"
1512
+ },
1513
+ "sha256": {
1514
+ "pattern": "^[0-9a-f]{64}$",
1515
+ "type": "string"
1516
+ }
1517
+ }
1518
+ },
1519
+ "release": {
1520
+ "additionalProperties": false,
1521
+ "type": "object",
1522
+ "required": ["orn", "sha256"],
1523
+ "properties": {
1524
+ "orn": {
1525
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1526
+ "type": "string"
1527
+ },
1528
+ "sha256": {
1529
+ "pattern": "^[0-9a-f]{64}$",
1530
+ "type": "string"
1531
+ }
1532
+ }
1533
+ },
1534
+ "selectionId": {
1535
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
1536
+ "type": "string"
1537
+ },
1538
+ "extensionRelease": {
1539
+ "additionalProperties": false,
1540
+ "type": "object",
1541
+ "required": ["orn", "sha256"],
1542
+ "properties": {
1543
+ "orn": {
1544
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1545
+ "type": "string"
1546
+ },
1547
+ "sha256": {
1548
+ "pattern": "^[0-9a-f]{64}$",
1549
+ "type": "string"
1550
+ }
1551
+ }
1552
+ },
1553
+ "evaluatingCase": {
1554
+ "additionalProperties": false,
1555
+ "type": "object",
1556
+ "required": ["orn", "sha256"],
1557
+ "properties": {
1558
+ "orn": {
1559
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1560
+ "type": "string"
1561
+ },
1562
+ "sha256": {
1563
+ "pattern": "^[0-9a-f]{64}$",
1564
+ "type": "string"
1565
+ }
1566
+ }
1567
+ },
1568
+ "decision": {
1569
+ "additionalProperties": false,
1570
+ "type": "object",
1571
+ "required": ["orn", "sha256"],
1572
+ "properties": {
1573
+ "orn": {
1574
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1575
+ "type": "string"
1576
+ },
1577
+ "sha256": {
1578
+ "pattern": "^[0-9a-f]{64}$",
1579
+ "type": "string"
1580
+ }
1581
+ }
1582
+ },
1583
+ "authority": {
1584
+ "additionalProperties": false,
1585
+ "type": "object",
1586
+ "required": ["orn", "sha256"],
1587
+ "properties": {
1588
+ "orn": {
1589
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1590
+ "type": "string"
1591
+ },
1592
+ "sha256": {
1593
+ "pattern": "^[0-9a-f]{64}$",
1594
+ "type": "string"
1595
+ }
1596
+ }
1597
+ },
1598
+ "fence": {
1599
+ "additionalProperties": false,
1600
+ "type": "object",
1601
+ "required": ["orn", "sha256"],
1602
+ "properties": {
1603
+ "orn": {
1604
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1605
+ "type": "string"
1606
+ },
1607
+ "sha256": {
1608
+ "pattern": "^[0-9a-f]{64}$",
1609
+ "type": "string"
1610
+ }
1611
+ }
1612
+ },
1613
+ "revision": {
1614
+ "minimum": 0,
1615
+ "maximum": 9007199254740991,
1616
+ "type": "integer"
1617
+ },
1618
+ "decidedAt": {
1619
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
1620
+ "type": "string"
1621
+ },
1622
+ "status": {
1623
+ "const": "admitted",
1624
+ "type": "string"
1625
+ },
1626
+ "components": {
1627
+ "minItems": 1,
1628
+ "uniqueItems": true,
1629
+ "type": "array",
1630
+ "items": {
1631
+ "additionalProperties": false,
1632
+ "type": "object",
1633
+ "required": ["id", "kind", "reference"],
1634
+ "properties": {
1635
+ "id": {
1636
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
1637
+ "type": "string"
1638
+ },
1639
+ "kind": {
1640
+ "anyOf": [
1641
+ {
1642
+ "const": "workflow",
1643
+ "type": "string"
1644
+ },
1645
+ {
1646
+ "const": "example",
1647
+ "type": "string"
1648
+ },
1649
+ {
1650
+ "const": "contract",
1651
+ "type": "string"
1652
+ },
1653
+ {
1654
+ "const": "job-class",
1655
+ "type": "string"
1656
+ },
1657
+ {
1658
+ "const": "workload-artifact",
1659
+ "type": "string"
1660
+ },
1661
+ {
1662
+ "const": "event-catalog",
1663
+ "type": "string"
1664
+ },
1665
+ {
1666
+ "const": "connector",
1667
+ "type": "string"
1668
+ },
1669
+ {
1670
+ "const": "module",
1671
+ "type": "string"
1672
+ },
1673
+ {
1674
+ "const": "check",
1675
+ "type": "string"
1676
+ },
1677
+ {
1678
+ "const": "vocabulary",
1679
+ "type": "string"
1680
+ },
1681
+ {
1682
+ "const": "assurance",
1683
+ "type": "string"
1684
+ },
1685
+ {
1686
+ "const": "documentation",
1687
+ "type": "string"
1688
+ }
1689
+ ]
1690
+ },
1691
+ "reference": {
1692
+ "additionalProperties": false,
1693
+ "type": "object",
1694
+ "required": ["orn", "sha256"],
1695
+ "properties": {
1696
+ "orn": {
1697
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1698
+ "type": "string"
1699
+ },
1700
+ "sha256": {
1701
+ "pattern": "^[0-9a-f]{64}$",
1702
+ "type": "string"
1703
+ }
1704
+ }
1705
+ }
1706
+ }
1707
+ }
1708
+ },
1709
+ "approvedUses": {
1710
+ "minItems": 1,
1711
+ "uniqueItems": true,
1712
+ "type": "array",
1713
+ "items": {
1714
+ "additionalProperties": false,
1715
+ "type": "object",
1716
+ "required": ["use", "binding"],
1717
+ "properties": {
1718
+ "use": {
1719
+ "minLength": 1,
1720
+ "type": "string"
1721
+ },
1722
+ "binding": {
1723
+ "additionalProperties": false,
1724
+ "type": "object",
1725
+ "required": ["orn", "sha256"],
1726
+ "properties": {
1727
+ "orn": {
1728
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1729
+ "type": "string"
1730
+ },
1731
+ "sha256": {
1732
+ "pattern": "^[0-9a-f]{64}$",
1733
+ "type": "string"
1734
+ }
1735
+ }
1736
+ }
1737
+ }
1738
+ }
1739
+ },
1740
+ "bindings": {
1741
+ "minItems": 1,
1742
+ "uniqueItems": true,
1743
+ "type": "array",
1744
+ "items": {
1745
+ "additionalProperties": false,
1746
+ "type": "object",
1747
+ "required": ["orn", "sha256"],
1748
+ "properties": {
1749
+ "orn": {
1750
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1751
+ "type": "string"
1752
+ },
1753
+ "sha256": {
1754
+ "pattern": "^[0-9a-f]{64}$",
1755
+ "type": "string"
1756
+ }
1757
+ }
1758
+ }
1759
+ },
1760
+ "evidence": {
1761
+ "minItems": 1,
1762
+ "uniqueItems": true,
1763
+ "type": "array",
1764
+ "items": {
1765
+ "additionalProperties": false,
1766
+ "type": "object",
1767
+ "required": ["orn", "sha256"],
1768
+ "properties": {
1769
+ "orn": {
1770
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1771
+ "type": "string"
1772
+ },
1773
+ "sha256": {
1774
+ "pattern": "^[0-9a-f]{64}$",
1775
+ "type": "string"
1776
+ }
1777
+ }
1778
+ }
1779
+ }
1780
+ }
1781
+ },
1782
+ {
1783
+ "additionalProperties": false,
1784
+ "type": "object",
1785
+ "required": [
1786
+ "profile",
1787
+ "schemaVersion",
1788
+ "kind",
1789
+ "id",
1790
+ "installation",
1791
+ "organization",
1792
+ "build",
1793
+ "release",
1794
+ "selectionId",
1795
+ "extensionRelease",
1796
+ "evaluatingCase",
1797
+ "decision",
1798
+ "authority",
1799
+ "fence",
1800
+ "revision",
1801
+ "decidedAt",
1802
+ "status",
1803
+ "components",
1804
+ "reason",
1805
+ "evidence"
1806
+ ],
1807
+ "properties": {
1808
+ "profile": {
1809
+ "const": "dsg.organization.release/1",
1810
+ "type": "string"
1811
+ },
1812
+ "schemaVersion": {
1813
+ "const": 1,
1814
+ "type": "number"
1815
+ },
1816
+ "kind": {
1817
+ "const": "admission-record",
1818
+ "type": "string"
1819
+ },
1820
+ "id": {
1821
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
1822
+ "type": "string"
1823
+ },
1824
+ "installation": {
1825
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1826
+ "type": "string"
1827
+ },
1828
+ "organization": {
1829
+ "minLength": 1,
1830
+ "type": "string"
1831
+ },
1832
+ "build": {
1833
+ "additionalProperties": false,
1834
+ "type": "object",
1835
+ "required": ["orn", "sha256"],
1836
+ "properties": {
1837
+ "orn": {
1838
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1839
+ "type": "string"
1840
+ },
1841
+ "sha256": {
1842
+ "pattern": "^[0-9a-f]{64}$",
1843
+ "type": "string"
1844
+ }
1845
+ }
1846
+ },
1847
+ "release": {
1848
+ "additionalProperties": false,
1849
+ "type": "object",
1850
+ "required": ["orn", "sha256"],
1851
+ "properties": {
1852
+ "orn": {
1853
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1854
+ "type": "string"
1855
+ },
1856
+ "sha256": {
1857
+ "pattern": "^[0-9a-f]{64}$",
1858
+ "type": "string"
1859
+ }
1860
+ }
1861
+ },
1862
+ "selectionId": {
1863
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
1864
+ "type": "string"
1865
+ },
1866
+ "extensionRelease": {
1867
+ "additionalProperties": false,
1868
+ "type": "object",
1869
+ "required": ["orn", "sha256"],
1870
+ "properties": {
1871
+ "orn": {
1872
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1873
+ "type": "string"
1874
+ },
1875
+ "sha256": {
1876
+ "pattern": "^[0-9a-f]{64}$",
1877
+ "type": "string"
1878
+ }
1879
+ }
1880
+ },
1881
+ "evaluatingCase": {
1882
+ "additionalProperties": false,
1883
+ "type": "object",
1884
+ "required": ["orn", "sha256"],
1885
+ "properties": {
1886
+ "orn": {
1887
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1888
+ "type": "string"
1889
+ },
1890
+ "sha256": {
1891
+ "pattern": "^[0-9a-f]{64}$",
1892
+ "type": "string"
1893
+ }
1894
+ }
1895
+ },
1896
+ "decision": {
1897
+ "additionalProperties": false,
1898
+ "type": "object",
1899
+ "required": ["orn", "sha256"],
1900
+ "properties": {
1901
+ "orn": {
1902
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1903
+ "type": "string"
1904
+ },
1905
+ "sha256": {
1906
+ "pattern": "^[0-9a-f]{64}$",
1907
+ "type": "string"
1908
+ }
1909
+ }
1910
+ },
1911
+ "authority": {
1912
+ "additionalProperties": false,
1913
+ "type": "object",
1914
+ "required": ["orn", "sha256"],
1915
+ "properties": {
1916
+ "orn": {
1917
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1918
+ "type": "string"
1919
+ },
1920
+ "sha256": {
1921
+ "pattern": "^[0-9a-f]{64}$",
1922
+ "type": "string"
1923
+ }
1924
+ }
1925
+ },
1926
+ "fence": {
1927
+ "additionalProperties": false,
1928
+ "type": "object",
1929
+ "required": ["orn", "sha256"],
1930
+ "properties": {
1931
+ "orn": {
1932
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
1933
+ "type": "string"
1934
+ },
1935
+ "sha256": {
1936
+ "pattern": "^[0-9a-f]{64}$",
1937
+ "type": "string"
1938
+ }
1939
+ }
1940
+ },
1941
+ "revision": {
1942
+ "minimum": 0,
1943
+ "maximum": 9007199254740991,
1944
+ "type": "integer"
1945
+ },
1946
+ "decidedAt": {
1947
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
1948
+ "type": "string"
1949
+ },
1950
+ "status": {
1951
+ "const": "refused",
1952
+ "type": "string"
1953
+ },
1954
+ "components": {
1955
+ "uniqueItems": true,
1956
+ "type": "array",
1957
+ "items": {
1958
+ "additionalProperties": false,
1959
+ "type": "object",
1960
+ "required": ["id", "kind", "reference"],
1961
+ "properties": {
1962
+ "id": {
1963
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
1964
+ "type": "string"
1965
+ },
1966
+ "kind": {
1967
+ "anyOf": [
1968
+ {
1969
+ "const": "workflow",
1970
+ "type": "string"
1971
+ },
1972
+ {
1973
+ "const": "example",
1974
+ "type": "string"
1975
+ },
1976
+ {
1977
+ "const": "contract",
1978
+ "type": "string"
1979
+ },
1980
+ {
1981
+ "const": "job-class",
1982
+ "type": "string"
1983
+ },
1984
+ {
1985
+ "const": "workload-artifact",
1986
+ "type": "string"
1987
+ },
1988
+ {
1989
+ "const": "event-catalog",
1990
+ "type": "string"
1991
+ },
1992
+ {
1993
+ "const": "connector",
1994
+ "type": "string"
1995
+ },
1996
+ {
1997
+ "const": "module",
1998
+ "type": "string"
1999
+ },
2000
+ {
2001
+ "const": "check",
2002
+ "type": "string"
2003
+ },
2004
+ {
2005
+ "const": "vocabulary",
2006
+ "type": "string"
2007
+ },
2008
+ {
2009
+ "const": "assurance",
2010
+ "type": "string"
2011
+ },
2012
+ {
2013
+ "const": "documentation",
2014
+ "type": "string"
2015
+ }
2016
+ ]
2017
+ },
2018
+ "reference": {
2019
+ "additionalProperties": false,
2020
+ "type": "object",
2021
+ "required": ["orn", "sha256"],
2022
+ "properties": {
2023
+ "orn": {
2024
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2025
+ "type": "string"
2026
+ },
2027
+ "sha256": {
2028
+ "pattern": "^[0-9a-f]{64}$",
2029
+ "type": "string"
2030
+ }
2031
+ }
2032
+ }
2033
+ }
2034
+ }
2035
+ },
2036
+ "reason": {
2037
+ "minLength": 1,
2038
+ "type": "string"
2039
+ },
2040
+ "evidence": {
2041
+ "minItems": 1,
2042
+ "uniqueItems": true,
2043
+ "type": "array",
2044
+ "items": {
2045
+ "additionalProperties": false,
2046
+ "type": "object",
2047
+ "required": ["orn", "sha256"],
2048
+ "properties": {
2049
+ "orn": {
2050
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2051
+ "type": "string"
2052
+ },
2053
+ "sha256": {
2054
+ "pattern": "^[0-9a-f]{64}$",
2055
+ "type": "string"
2056
+ }
2057
+ }
2058
+ }
2059
+ }
2060
+ }
2061
+ }
2062
+ ]
2063
+ },
2064
+ "activeSet": {
2065
+ "additionalProperties": false,
2066
+ "type": "object",
2067
+ "required": [
2068
+ "profile",
2069
+ "schemaVersion",
2070
+ "kind",
2071
+ "installation",
2072
+ "organization",
2073
+ "release",
2074
+ "build",
2075
+ "predecessor",
2076
+ "members",
2077
+ "memberObservations",
2078
+ "policies",
2079
+ "configuration",
2080
+ "activatingCase",
2081
+ "authority",
2082
+ "activatingDecision",
2083
+ "fence",
2084
+ "revision",
2085
+ "activatedAt"
2086
+ ],
2087
+ "properties": {
2088
+ "profile": {
2089
+ "const": "dsg.organization.release/1",
2090
+ "type": "string"
2091
+ },
2092
+ "schemaVersion": {
2093
+ "const": 1,
2094
+ "type": "number"
2095
+ },
2096
+ "kind": {
2097
+ "const": "active-set",
2098
+ "type": "string"
2099
+ },
2100
+ "installation": {
2101
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2102
+ "type": "string"
2103
+ },
2104
+ "organization": {
2105
+ "minLength": 1,
2106
+ "type": "string"
2107
+ },
2108
+ "release": {
2109
+ "additionalProperties": false,
2110
+ "type": "object",
2111
+ "required": ["orn", "sha256"],
2112
+ "properties": {
2113
+ "orn": {
2114
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2115
+ "type": "string"
2116
+ },
2117
+ "sha256": {
2118
+ "pattern": "^[0-9a-f]{64}$",
2119
+ "type": "string"
2120
+ }
2121
+ }
2122
+ },
2123
+ "build": {
2124
+ "additionalProperties": false,
2125
+ "type": "object",
2126
+ "required": ["orn", "sha256"],
2127
+ "properties": {
2128
+ "orn": {
2129
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2130
+ "type": "string"
2131
+ },
2132
+ "sha256": {
2133
+ "pattern": "^[0-9a-f]{64}$",
2134
+ "type": "string"
2135
+ }
2136
+ }
2137
+ },
2138
+ "predecessor": {
2139
+ "anyOf": [
2140
+ {
2141
+ "additionalProperties": false,
2142
+ "type": "object",
2143
+ "required": ["orn", "sha256"],
2144
+ "properties": {
2145
+ "orn": {
2146
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2147
+ "type": "string"
2148
+ },
2149
+ "sha256": {
2150
+ "pattern": "^[0-9a-f]{64}$",
2151
+ "type": "string"
2152
+ }
2153
+ }
2154
+ },
2155
+ {
2156
+ "type": "null"
2157
+ }
2158
+ ]
2159
+ },
2160
+ "members": {
2161
+ "uniqueItems": true,
2162
+ "type": "array",
2163
+ "items": {
2164
+ "additionalProperties": false,
2165
+ "type": "object",
2166
+ "required": [
2167
+ "selectionId",
2168
+ "memberId",
2169
+ "extensionRelease",
2170
+ "components",
2171
+ "admission"
2172
+ ],
2173
+ "properties": {
2174
+ "selectionId": {
2175
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2176
+ "type": "string"
2177
+ },
2178
+ "memberId": {
2179
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2180
+ "type": "string"
2181
+ },
2182
+ "extensionRelease": {
2183
+ "additionalProperties": false,
2184
+ "type": "object",
2185
+ "required": ["orn", "sha256"],
2186
+ "properties": {
2187
+ "orn": {
2188
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2189
+ "type": "string"
2190
+ },
2191
+ "sha256": {
2192
+ "pattern": "^[0-9a-f]{64}$",
2193
+ "type": "string"
2194
+ }
2195
+ }
2196
+ },
2197
+ "components": {
2198
+ "minItems": 1,
2199
+ "uniqueItems": true,
2200
+ "type": "array",
2201
+ "items": {
2202
+ "additionalProperties": false,
2203
+ "type": "object",
2204
+ "required": ["id", "kind", "reference"],
2205
+ "properties": {
2206
+ "id": {
2207
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2208
+ "type": "string"
2209
+ },
2210
+ "kind": {
2211
+ "anyOf": [
2212
+ {
2213
+ "const": "workflow",
2214
+ "type": "string"
2215
+ },
2216
+ {
2217
+ "const": "example",
2218
+ "type": "string"
2219
+ },
2220
+ {
2221
+ "const": "contract",
2222
+ "type": "string"
2223
+ },
2224
+ {
2225
+ "const": "job-class",
2226
+ "type": "string"
2227
+ },
2228
+ {
2229
+ "const": "workload-artifact",
2230
+ "type": "string"
2231
+ },
2232
+ {
2233
+ "const": "event-catalog",
2234
+ "type": "string"
2235
+ },
2236
+ {
2237
+ "const": "connector",
2238
+ "type": "string"
2239
+ },
2240
+ {
2241
+ "const": "module",
2242
+ "type": "string"
2243
+ },
2244
+ {
2245
+ "const": "check",
2246
+ "type": "string"
2247
+ },
2248
+ {
2249
+ "const": "vocabulary",
2250
+ "type": "string"
2251
+ },
2252
+ {
2253
+ "const": "assurance",
2254
+ "type": "string"
2255
+ },
2256
+ {
2257
+ "const": "documentation",
2258
+ "type": "string"
2259
+ }
2260
+ ]
2261
+ },
2262
+ "reference": {
2263
+ "additionalProperties": false,
2264
+ "type": "object",
2265
+ "required": ["orn", "sha256"],
2266
+ "properties": {
2267
+ "orn": {
2268
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2269
+ "type": "string"
2270
+ },
2271
+ "sha256": {
2272
+ "pattern": "^[0-9a-f]{64}$",
2273
+ "type": "string"
2274
+ }
2275
+ }
2276
+ }
2277
+ }
2278
+ }
2279
+ },
2280
+ "admission": {
2281
+ "additionalProperties": false,
2282
+ "type": "object",
2283
+ "required": ["orn", "sha256"],
2284
+ "properties": {
2285
+ "orn": {
2286
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2287
+ "type": "string"
2288
+ },
2289
+ "sha256": {
2290
+ "pattern": "^[0-9a-f]{64}$",
2291
+ "type": "string"
2292
+ }
2293
+ }
2294
+ }
2295
+ }
2296
+ }
2297
+ },
2298
+ "memberObservations": {
2299
+ "minItems": 1,
2300
+ "uniqueItems": true,
2301
+ "type": "array",
2302
+ "items": {
2303
+ "additionalProperties": false,
2304
+ "type": "object",
2305
+ "required": ["orn", "sha256"],
2306
+ "properties": {
2307
+ "orn": {
2308
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2309
+ "type": "string"
2310
+ },
2311
+ "sha256": {
2312
+ "pattern": "^[0-9a-f]{64}$",
2313
+ "type": "string"
2314
+ }
2315
+ }
2316
+ }
2317
+ },
2318
+ "policies": {
2319
+ "uniqueItems": true,
2320
+ "type": "array",
2321
+ "items": {
2322
+ "additionalProperties": false,
2323
+ "type": "object",
2324
+ "required": ["orn", "sha256"],
2325
+ "properties": {
2326
+ "orn": {
2327
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2328
+ "type": "string"
2329
+ },
2330
+ "sha256": {
2331
+ "pattern": "^[0-9a-f]{64}$",
2332
+ "type": "string"
2333
+ }
2334
+ }
2335
+ }
2336
+ },
2337
+ "configuration": {
2338
+ "uniqueItems": true,
2339
+ "type": "array",
2340
+ "items": {
2341
+ "additionalProperties": false,
2342
+ "type": "object",
2343
+ "required": ["orn", "sha256"],
2344
+ "properties": {
2345
+ "orn": {
2346
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2347
+ "type": "string"
2348
+ },
2349
+ "sha256": {
2350
+ "pattern": "^[0-9a-f]{64}$",
2351
+ "type": "string"
2352
+ }
2353
+ }
2354
+ }
2355
+ },
2356
+ "activatingCase": {
2357
+ "additionalProperties": false,
2358
+ "type": "object",
2359
+ "required": ["orn", "sha256"],
2360
+ "properties": {
2361
+ "orn": {
2362
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2363
+ "type": "string"
2364
+ },
2365
+ "sha256": {
2366
+ "pattern": "^[0-9a-f]{64}$",
2367
+ "type": "string"
2368
+ }
2369
+ }
2370
+ },
2371
+ "authority": {
2372
+ "additionalProperties": false,
2373
+ "type": "object",
2374
+ "required": ["orn", "sha256"],
2375
+ "properties": {
2376
+ "orn": {
2377
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2378
+ "type": "string"
2379
+ },
2380
+ "sha256": {
2381
+ "pattern": "^[0-9a-f]{64}$",
2382
+ "type": "string"
2383
+ }
2384
+ }
2385
+ },
2386
+ "activatingDecision": {
2387
+ "additionalProperties": false,
2388
+ "type": "object",
2389
+ "required": ["orn", "sha256"],
2390
+ "properties": {
2391
+ "orn": {
2392
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2393
+ "type": "string"
2394
+ },
2395
+ "sha256": {
2396
+ "pattern": "^[0-9a-f]{64}$",
2397
+ "type": "string"
2398
+ }
2399
+ }
2400
+ },
2401
+ "fence": {
2402
+ "additionalProperties": false,
2403
+ "type": "object",
2404
+ "required": ["orn", "sha256"],
2405
+ "properties": {
2406
+ "orn": {
2407
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2408
+ "type": "string"
2409
+ },
2410
+ "sha256": {
2411
+ "pattern": "^[0-9a-f]{64}$",
2412
+ "type": "string"
2413
+ }
2414
+ }
2415
+ },
2416
+ "revision": {
2417
+ "minimum": 0,
2418
+ "maximum": 9007199254740991,
2419
+ "type": "integer"
2420
+ },
2421
+ "activatedAt": {
2422
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
2423
+ "type": "string"
2424
+ }
2425
+ }
2426
+ },
2427
+ "selection": {
2428
+ "additionalProperties": false,
2429
+ "type": "object",
2430
+ "required": ["id", "selection", "extensionRelease", "members"],
2431
+ "properties": {
2432
+ "id": {
2433
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2434
+ "type": "string"
2435
+ },
2436
+ "selection": {
2437
+ "additionalProperties": false,
2438
+ "type": "object",
2439
+ "required": ["orn", "sha256"],
2440
+ "properties": {
2441
+ "orn": {
2442
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2443
+ "type": "string"
2444
+ },
2445
+ "sha256": {
2446
+ "pattern": "^[0-9a-f]{64}$",
2447
+ "type": "string"
2448
+ }
2449
+ }
2450
+ },
2451
+ "extensionRelease": {
2452
+ "additionalProperties": false,
2453
+ "type": "object",
2454
+ "required": ["orn", "sha256"],
2455
+ "properties": {
2456
+ "orn": {
2457
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2458
+ "type": "string"
2459
+ },
2460
+ "sha256": {
2461
+ "pattern": "^[0-9a-f]{64}$",
2462
+ "type": "string"
2463
+ }
2464
+ }
2465
+ },
2466
+ "members": {
2467
+ "minItems": 1,
2468
+ "uniqueItems": true,
2469
+ "type": "array",
2470
+ "items": {
2471
+ "additionalProperties": false,
2472
+ "type": "object",
2473
+ "required": ["id", "kind", "reference"],
2474
+ "properties": {
2475
+ "id": {
2476
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2477
+ "type": "string"
2478
+ },
2479
+ "kind": {
2480
+ "anyOf": [
2481
+ {
2482
+ "const": "workflow",
2483
+ "type": "string"
2484
+ },
2485
+ {
2486
+ "const": "example",
2487
+ "type": "string"
2488
+ },
2489
+ {
2490
+ "const": "contract",
2491
+ "type": "string"
2492
+ },
2493
+ {
2494
+ "const": "job-class",
2495
+ "type": "string"
2496
+ },
2497
+ {
2498
+ "const": "workload-artifact",
2499
+ "type": "string"
2500
+ },
2501
+ {
2502
+ "const": "event-catalog",
2503
+ "type": "string"
2504
+ },
2505
+ {
2506
+ "const": "connector",
2507
+ "type": "string"
2508
+ },
2509
+ {
2510
+ "const": "module",
2511
+ "type": "string"
2512
+ },
2513
+ {
2514
+ "const": "check",
2515
+ "type": "string"
2516
+ },
2517
+ {
2518
+ "const": "vocabulary",
2519
+ "type": "string"
2520
+ },
2521
+ {
2522
+ "const": "assurance",
2523
+ "type": "string"
2524
+ },
2525
+ {
2526
+ "const": "documentation",
2527
+ "type": "string"
2528
+ }
2529
+ ]
2530
+ },
2531
+ "reference": {
2532
+ "additionalProperties": false,
2533
+ "type": "object",
2534
+ "required": ["orn", "sha256"],
2535
+ "properties": {
2536
+ "orn": {
2537
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2538
+ "type": "string"
2539
+ },
2540
+ "sha256": {
2541
+ "pattern": "^[0-9a-f]{64}$",
2542
+ "type": "string"
2543
+ }
2544
+ }
2545
+ }
2546
+ }
2547
+ }
2548
+ }
2549
+ }
2550
+ },
2551
+ "catalogEntry": {
2552
+ "anyOf": [
2553
+ {
2554
+ "additionalProperties": false,
2555
+ "type": "object",
2556
+ "required": [
2557
+ "id",
2558
+ "activeSet",
2559
+ "selectionId",
2560
+ "memberId",
2561
+ "extensionRelease",
2562
+ "workflow",
2563
+ "example",
2564
+ "jobClass",
2565
+ "workloadArtifact",
2566
+ "contracts",
2567
+ "availabilityEvidence",
2568
+ "availability"
2569
+ ],
2570
+ "properties": {
2571
+ "id": {
2572
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2573
+ "type": "string"
2574
+ },
2575
+ "activeSet": {
2576
+ "additionalProperties": false,
2577
+ "type": "object",
2578
+ "required": ["orn", "sha256"],
2579
+ "properties": {
2580
+ "orn": {
2581
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2582
+ "type": "string"
2583
+ },
2584
+ "sha256": {
2585
+ "pattern": "^[0-9a-f]{64}$",
2586
+ "type": "string"
2587
+ }
2588
+ }
2589
+ },
2590
+ "selectionId": {
2591
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2592
+ "type": "string"
2593
+ },
2594
+ "memberId": {
2595
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2596
+ "type": "string"
2597
+ },
2598
+ "extensionRelease": {
2599
+ "additionalProperties": false,
2600
+ "type": "object",
2601
+ "required": ["orn", "sha256"],
2602
+ "properties": {
2603
+ "orn": {
2604
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2605
+ "type": "string"
2606
+ },
2607
+ "sha256": {
2608
+ "pattern": "^[0-9a-f]{64}$",
2609
+ "type": "string"
2610
+ }
2611
+ }
2612
+ },
2613
+ "workflow": {
2614
+ "additionalProperties": false,
2615
+ "type": "object",
2616
+ "required": ["orn", "sha256"],
2617
+ "properties": {
2618
+ "orn": {
2619
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2620
+ "type": "string"
2621
+ },
2622
+ "sha256": {
2623
+ "pattern": "^[0-9a-f]{64}$",
2624
+ "type": "string"
2625
+ }
2626
+ }
2627
+ },
2628
+ "example": {
2629
+ "anyOf": [
2630
+ {
2631
+ "additionalProperties": false,
2632
+ "type": "object",
2633
+ "required": ["orn", "sha256"],
2634
+ "properties": {
2635
+ "orn": {
2636
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2637
+ "type": "string"
2638
+ },
2639
+ "sha256": {
2640
+ "pattern": "^[0-9a-f]{64}$",
2641
+ "type": "string"
2642
+ }
2643
+ }
2644
+ },
2645
+ {
2646
+ "type": "null"
2647
+ }
2648
+ ]
2649
+ },
2650
+ "jobClass": {
2651
+ "anyOf": [
2652
+ {
2653
+ "additionalProperties": false,
2654
+ "type": "object",
2655
+ "required": ["orn", "sha256"],
2656
+ "properties": {
2657
+ "orn": {
2658
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2659
+ "type": "string"
2660
+ },
2661
+ "sha256": {
2662
+ "pattern": "^[0-9a-f]{64}$",
2663
+ "type": "string"
2664
+ }
2665
+ }
2666
+ },
2667
+ {
2668
+ "type": "null"
2669
+ }
2670
+ ]
2671
+ },
2672
+ "workloadArtifact": {
2673
+ "anyOf": [
2674
+ {
2675
+ "additionalProperties": false,
2676
+ "type": "object",
2677
+ "required": ["orn", "sha256"],
2678
+ "properties": {
2679
+ "orn": {
2680
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2681
+ "type": "string"
2682
+ },
2683
+ "sha256": {
2684
+ "pattern": "^[0-9a-f]{64}$",
2685
+ "type": "string"
2686
+ }
2687
+ }
2688
+ },
2689
+ {
2690
+ "type": "null"
2691
+ }
2692
+ ]
2693
+ },
2694
+ "contracts": {
2695
+ "uniqueItems": true,
2696
+ "type": "array",
2697
+ "items": {
2698
+ "additionalProperties": false,
2699
+ "type": "object",
2700
+ "required": ["orn", "sha256"],
2701
+ "properties": {
2702
+ "orn": {
2703
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2704
+ "type": "string"
2705
+ },
2706
+ "sha256": {
2707
+ "pattern": "^[0-9a-f]{64}$",
2708
+ "type": "string"
2709
+ }
2710
+ }
2711
+ }
2712
+ },
2713
+ "availabilityEvidence": {
2714
+ "minItems": 1,
2715
+ "uniqueItems": true,
2716
+ "type": "array",
2717
+ "items": {
2718
+ "additionalProperties": false,
2719
+ "type": "object",
2720
+ "required": ["orn", "sha256"],
2721
+ "properties": {
2722
+ "orn": {
2723
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2724
+ "type": "string"
2725
+ },
2726
+ "sha256": {
2727
+ "pattern": "^[0-9a-f]{64}$",
2728
+ "type": "string"
2729
+ }
2730
+ }
2731
+ }
2732
+ },
2733
+ "availability": {
2734
+ "const": "available",
2735
+ "type": "string"
2736
+ }
2737
+ }
2738
+ },
2739
+ {
2740
+ "additionalProperties": false,
2741
+ "type": "object",
2742
+ "required": [
2743
+ "id",
2744
+ "activeSet",
2745
+ "selectionId",
2746
+ "memberId",
2747
+ "extensionRelease",
2748
+ "workflow",
2749
+ "example",
2750
+ "jobClass",
2751
+ "workloadArtifact",
2752
+ "contracts",
2753
+ "availabilityEvidence",
2754
+ "availability",
2755
+ "unavailableReason"
2756
+ ],
2757
+ "properties": {
2758
+ "id": {
2759
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2760
+ "type": "string"
2761
+ },
2762
+ "activeSet": {
2763
+ "additionalProperties": false,
2764
+ "type": "object",
2765
+ "required": ["orn", "sha256"],
2766
+ "properties": {
2767
+ "orn": {
2768
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2769
+ "type": "string"
2770
+ },
2771
+ "sha256": {
2772
+ "pattern": "^[0-9a-f]{64}$",
2773
+ "type": "string"
2774
+ }
2775
+ }
2776
+ },
2777
+ "selectionId": {
2778
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2779
+ "type": "string"
2780
+ },
2781
+ "memberId": {
2782
+ "pattern": "^[a-z][a-z0-9-]*(?:[.-][a-z0-9]+)*$",
2783
+ "type": "string"
2784
+ },
2785
+ "extensionRelease": {
2786
+ "additionalProperties": false,
2787
+ "type": "object",
2788
+ "required": ["orn", "sha256"],
2789
+ "properties": {
2790
+ "orn": {
2791
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2792
+ "type": "string"
2793
+ },
2794
+ "sha256": {
2795
+ "pattern": "^[0-9a-f]{64}$",
2796
+ "type": "string"
2797
+ }
2798
+ }
2799
+ },
2800
+ "workflow": {
2801
+ "additionalProperties": false,
2802
+ "type": "object",
2803
+ "required": ["orn", "sha256"],
2804
+ "properties": {
2805
+ "orn": {
2806
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2807
+ "type": "string"
2808
+ },
2809
+ "sha256": {
2810
+ "pattern": "^[0-9a-f]{64}$",
2811
+ "type": "string"
2812
+ }
2813
+ }
2814
+ },
2815
+ "example": {
2816
+ "anyOf": [
2817
+ {
2818
+ "additionalProperties": false,
2819
+ "type": "object",
2820
+ "required": ["orn", "sha256"],
2821
+ "properties": {
2822
+ "orn": {
2823
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2824
+ "type": "string"
2825
+ },
2826
+ "sha256": {
2827
+ "pattern": "^[0-9a-f]{64}$",
2828
+ "type": "string"
2829
+ }
2830
+ }
2831
+ },
2832
+ {
2833
+ "type": "null"
2834
+ }
2835
+ ]
2836
+ },
2837
+ "jobClass": {
2838
+ "anyOf": [
2839
+ {
2840
+ "additionalProperties": false,
2841
+ "type": "object",
2842
+ "required": ["orn", "sha256"],
2843
+ "properties": {
2844
+ "orn": {
2845
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2846
+ "type": "string"
2847
+ },
2848
+ "sha256": {
2849
+ "pattern": "^[0-9a-f]{64}$",
2850
+ "type": "string"
2851
+ }
2852
+ }
2853
+ },
2854
+ {
2855
+ "type": "null"
2856
+ }
2857
+ ]
2858
+ },
2859
+ "workloadArtifact": {
2860
+ "anyOf": [
2861
+ {
2862
+ "additionalProperties": false,
2863
+ "type": "object",
2864
+ "required": ["orn", "sha256"],
2865
+ "properties": {
2866
+ "orn": {
2867
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2868
+ "type": "string"
2869
+ },
2870
+ "sha256": {
2871
+ "pattern": "^[0-9a-f]{64}$",
2872
+ "type": "string"
2873
+ }
2874
+ }
2875
+ },
2876
+ {
2877
+ "type": "null"
2878
+ }
2879
+ ]
2880
+ },
2881
+ "contracts": {
2882
+ "uniqueItems": true,
2883
+ "type": "array",
2884
+ "items": {
2885
+ "additionalProperties": false,
2886
+ "type": "object",
2887
+ "required": ["orn", "sha256"],
2888
+ "properties": {
2889
+ "orn": {
2890
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2891
+ "type": "string"
2892
+ },
2893
+ "sha256": {
2894
+ "pattern": "^[0-9a-f]{64}$",
2895
+ "type": "string"
2896
+ }
2897
+ }
2898
+ }
2899
+ },
2900
+ "availabilityEvidence": {
2901
+ "minItems": 1,
2902
+ "uniqueItems": true,
2903
+ "type": "array",
2904
+ "items": {
2905
+ "additionalProperties": false,
2906
+ "type": "object",
2907
+ "required": ["orn", "sha256"],
2908
+ "properties": {
2909
+ "orn": {
2910
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2911
+ "type": "string"
2912
+ },
2913
+ "sha256": {
2914
+ "pattern": "^[0-9a-f]{64}$",
2915
+ "type": "string"
2916
+ }
2917
+ }
2918
+ }
2919
+ },
2920
+ "availability": {
2921
+ "const": "unavailable",
2922
+ "type": "string"
2923
+ },
2924
+ "unavailableReason": {
2925
+ "minLength": 1,
2926
+ "type": "string"
2927
+ }
2928
+ }
2929
+ }
2930
+ ]
2931
+ },
2932
+ "releaseEligibility": {
2933
+ "additionalProperties": false,
2934
+ "type": "object",
2935
+ "required": [
2936
+ "profile",
2937
+ "schemaVersion",
2938
+ "kind",
2939
+ "release",
2940
+ "operation",
2941
+ "observation",
2942
+ "trustView",
2943
+ "activeSet"
2944
+ ],
2945
+ "properties": {
2946
+ "profile": {
2947
+ "const": "dsg.organization.release/1",
2948
+ "type": "string"
2949
+ },
2950
+ "schemaVersion": {
2951
+ "const": 1,
2952
+ "type": "number"
2953
+ },
2954
+ "kind": {
2955
+ "const": "release-eligibility",
2956
+ "type": "string"
2957
+ },
2958
+ "release": {
2959
+ "additionalProperties": false,
2960
+ "type": "object",
2961
+ "required": ["orn", "sha256"],
2962
+ "properties": {
2963
+ "orn": {
2964
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
2965
+ "type": "string"
2966
+ },
2967
+ "sha256": {
2968
+ "pattern": "^[0-9a-f]{64}$",
2969
+ "type": "string"
2970
+ }
2971
+ }
2972
+ },
2973
+ "operation": {
2974
+ "anyOf": [
2975
+ {
2976
+ "const": "resolve",
2977
+ "type": "string"
2978
+ },
2979
+ {
2980
+ "const": "select",
2981
+ "type": "string"
2982
+ },
2983
+ {
2984
+ "const": "import",
2985
+ "type": "string"
2986
+ },
2987
+ {
2988
+ "const": "admit",
2989
+ "type": "string"
2990
+ },
2991
+ {
2992
+ "const": "activate",
2993
+ "type": "string"
2994
+ },
2995
+ {
2996
+ "const": "execute",
2997
+ "type": "string"
2998
+ }
2999
+ ]
3000
+ },
3001
+ "observation": {
3002
+ "additionalProperties": false,
3003
+ "type": "object",
3004
+ "required": [
3005
+ "profile",
3006
+ "schemaVersion",
3007
+ "kind",
3008
+ "subject",
3009
+ "registry",
3010
+ "trustView",
3011
+ "status",
3012
+ "effectiveAt",
3013
+ "observedAt",
3014
+ "evidence"
3015
+ ],
3016
+ "properties": {
3017
+ "profile": {
3018
+ "const": "dsg.organization.release/1",
3019
+ "type": "string"
3020
+ },
3021
+ "schemaVersion": {
3022
+ "const": 1,
3023
+ "type": "number"
3024
+ },
3025
+ "kind": {
3026
+ "const": "release-status-observation",
3027
+ "type": "string"
3028
+ },
3029
+ "subject": {
3030
+ "additionalProperties": false,
3031
+ "type": "object",
3032
+ "required": ["orn", "sha256"],
3033
+ "properties": {
3034
+ "orn": {
3035
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
3036
+ "type": "string"
3037
+ },
3038
+ "sha256": {
3039
+ "pattern": "^[0-9a-f]{64}$",
3040
+ "type": "string"
3041
+ }
3042
+ }
3043
+ },
3044
+ "registry": {
3045
+ "additionalProperties": false,
3046
+ "type": "object",
3047
+ "required": ["orn", "sha256"],
3048
+ "properties": {
3049
+ "orn": {
3050
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
3051
+ "type": "string"
3052
+ },
3053
+ "sha256": {
3054
+ "pattern": "^[0-9a-f]{64}$",
3055
+ "type": "string"
3056
+ }
3057
+ }
3058
+ },
3059
+ "trustView": {
3060
+ "additionalProperties": false,
3061
+ "type": "object",
3062
+ "required": ["orn", "sha256"],
3063
+ "properties": {
3064
+ "orn": {
3065
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
3066
+ "type": "string"
3067
+ },
3068
+ "sha256": {
3069
+ "pattern": "^[0-9a-f]{64}$",
3070
+ "type": "string"
3071
+ }
3072
+ }
3073
+ },
3074
+ "status": {
3075
+ "anyOf": [
3076
+ {
3077
+ "const": "active",
3078
+ "type": "string"
3079
+ },
3080
+ {
3081
+ "const": "retired",
3082
+ "type": "string"
3083
+ },
3084
+ {
3085
+ "const": "revoked",
3086
+ "type": "string"
3087
+ }
3088
+ ]
3089
+ },
3090
+ "effectiveAt": {
3091
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
3092
+ "type": "string"
3093
+ },
3094
+ "observedAt": {
3095
+ "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$",
3096
+ "type": "string"
3097
+ },
3098
+ "evidence": {
3099
+ "minItems": 1,
3100
+ "uniqueItems": true,
3101
+ "type": "array",
3102
+ "items": {
3103
+ "additionalProperties": false,
3104
+ "type": "object",
3105
+ "required": ["orn", "sha256"],
3106
+ "properties": {
3107
+ "orn": {
3108
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
3109
+ "type": "string"
3110
+ },
3111
+ "sha256": {
3112
+ "pattern": "^[0-9a-f]{64}$",
3113
+ "type": "string"
3114
+ }
3115
+ }
3116
+ }
3117
+ }
3118
+ }
3119
+ },
3120
+ "trustView": {
3121
+ "additionalProperties": false,
3122
+ "type": "object",
3123
+ "required": ["orn", "sha256"],
3124
+ "properties": {
3125
+ "orn": {
3126
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
3127
+ "type": "string"
3128
+ },
3129
+ "sha256": {
3130
+ "pattern": "^[0-9a-f]{64}$",
3131
+ "type": "string"
3132
+ }
3133
+ }
3134
+ },
3135
+ "activeSet": {
3136
+ "anyOf": [
3137
+ {
3138
+ "additionalProperties": false,
3139
+ "type": "object",
3140
+ "required": ["orn", "sha256"],
3141
+ "properties": {
3142
+ "orn": {
3143
+ "pattern": "^orn:[a-z][a-z0-9-]*(?:\\.[a-z][a-z0-9-]*){3}:(?:[A-Za-z0-9\\-._~:/@]|%[0-9A-Fa-f]{2})+$",
3144
+ "type": "string"
3145
+ },
3146
+ "sha256": {
3147
+ "pattern": "^[0-9a-f]{64}$",
3148
+ "type": "string"
3149
+ }
3150
+ }
3151
+ },
3152
+ {
3153
+ "type": "null"
3154
+ }
3155
+ ]
3156
+ }
3157
+ }
3158
+ }
3159
+ }
3160
+ }
3161
+ },
3162
+ "$ref": "#/$defs/executionBinding"
3163
+ }