@toolproof-core/schema 1.0.2 → 1.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/dist/generated/normalized/Genesis.d.ts +2 -0
  2. package/dist/generated/normalized/Genesis.js +2 -0
  3. package/dist/generated/normalized/Genesis.json +2008 -0
  4. package/dist/generated/resources/Genesis.d.ts +2 -0
  5. package/dist/generated/resources/Genesis.js +2 -0
  6. package/dist/generated/resources/Genesis.json +2907 -0
  7. package/dist/generated/schemas/Genesis.d.ts +2 -0
  8. package/dist/generated/schemas/Genesis.js +2 -0
  9. package/dist/generated/schemas/Genesis.json +1466 -0
  10. package/dist/generated/schemas/standalone/Goal.d.ts +2 -0
  11. package/dist/generated/schemas/standalone/Goal.js +2 -0
  12. package/dist/generated/schemas/standalone/Goal.json +86 -0
  13. package/dist/generated/schemas/standalone/Job.d.ts +2 -0
  14. package/dist/generated/schemas/standalone/Job.js +2 -0
  15. package/dist/generated/schemas/standalone/Job.json +236 -0
  16. package/dist/generated/schemas/standalone/RawStrategy.d.ts +2 -0
  17. package/dist/generated/schemas/standalone/RawStrategy.js +2 -0
  18. package/dist/generated/schemas/standalone/RawStrategy.json +650 -0
  19. package/dist/generated/schemas/standalone/ResourceType.d.ts +2 -0
  20. package/dist/generated/schemas/standalone/ResourceType.js +2 -0
  21. package/dist/generated/schemas/standalone/ResourceType.json +140 -0
  22. package/dist/generated/schemas/standalone/RunnableStrategy.d.ts +2 -0
  23. package/dist/generated/schemas/standalone/RunnableStrategy.js +2 -0
  24. package/dist/generated/schemas/standalone/RunnableStrategy.json +720 -0
  25. package/dist/generated/schemas/standalone/StrategyRun.d.ts +2 -0
  26. package/dist/generated/schemas/standalone/StrategyRun.js +2 -0
  27. package/dist/generated/schemas/standalone/StrategyRun.json +1002 -0
  28. package/dist/generated/{types → typesTS}/standalone/Resource_Genesis.d.ts +1 -1
  29. package/{src/generated/types → dist/generated/typesTS}/standalone/Resource_Job.d.ts +1 -1
  30. package/{src/generated/types → dist/generated/typesTS}/standalone/Resource_RawStrategy.d.ts +1 -1
  31. package/{src/generated/types → dist/generated/typesTS}/standalone/Resource_ResourceType.d.ts +1 -1
  32. package/dist/generated/{types → typesTS}/standalone/Resource_RunnableStrategy.d.ts +1 -1
  33. package/dist/generated/typesTS/typesTS.d.ts +745 -0
  34. package/dist/index.d.ts +10 -0
  35. package/dist/index.js +5 -0
  36. package/dist/scripts/_lib/config.d.ts +10 -10
  37. package/dist/scripts/_lib/config.js +23 -23
  38. package/dist/scripts/extractSchemasFromResourceTypeShells.js +109 -103
  39. package/dist/scripts/generateDependencies.js +15 -14
  40. package/dist/scripts/generateSchemaShims.js +76 -84
  41. package/dist/scripts/generateStandaloneSchema.js +47 -37
  42. package/dist/scripts/generateStandaloneTypeTS.js +108 -0
  43. package/dist/scripts/generateTypesTS.js +430 -0
  44. package/dist/scripts/normalizeAnchorsToPointers.js +37 -30
  45. package/dist/scripts/wrapResourceTypesWithResourceShells.js +14 -16
  46. package/package.json +11 -12
  47. package/src/Genesis.json +2007 -1999
  48. package/src/generated/{dependencyMap.json → dependencies/dependencyMap.json} +7 -6
  49. package/src/generated/normalized/Genesis.json +17 -9
  50. package/src/generated/resources/Genesis.json +19 -11
  51. package/src/generated/schemas/Genesis.json +15 -7
  52. package/src/generated/schemas/standalone/RawStrategy.json +15 -7
  53. package/src/generated/schemas/standalone/RunnableStrategy.json +15 -7
  54. package/src/generated/schemas/standalone/StrategyRun.json +15 -7
  55. package/src/generated/{types → typesTS}/standalone/Resource_Genesis.d.ts +1 -1
  56. package/{dist/generated/types → src/generated/typesTS}/standalone/Resource_Job.d.ts +1 -1
  57. package/{dist/generated/types → src/generated/typesTS}/standalone/Resource_RawStrategy.d.ts +1 -1
  58. package/{dist/generated/types → src/generated/typesTS}/standalone/Resource_ResourceType.d.ts +1 -1
  59. package/src/generated/{types → typesTS}/standalone/Resource_RunnableStrategy.d.ts +1 -1
  60. package/src/generated/typesTS/typesTS.d.ts +745 -0
  61. package/src/index.ts +67 -1
  62. package/src/scripts/_lib/config.ts +205 -205
  63. package/src/scripts/extractSchemasFromResourceTypeShells.ts +261 -218
  64. package/src/scripts/generateDependencies.ts +121 -120
  65. package/src/scripts/generateSchemaShims.ts +127 -135
  66. package/src/scripts/generateStandaloneSchema.ts +185 -175
  67. package/src/scripts/generateStandaloneTypeTS.ts +127 -0
  68. package/src/scripts/generateTypesTS.ts +532 -0
  69. package/src/scripts/normalizeAnchorsToPointers.ts +115 -123
  70. package/src/scripts/wrapResourceTypesWithResourceShells.ts +82 -84
  71. package/dist/generated/types/types.d.ts +0 -1723
  72. package/dist/scripts/generateStandaloneType.js +0 -102
  73. package/dist/scripts/generateTypes.js +0 -550
  74. package/src/generated/types/types.d.ts +0 -1723
  75. package/src/scripts/generateStandaloneType.ts +0 -119
  76. package/src/scripts/generateTypes.ts +0 -615
  77. /package/dist/generated/{types → typesTS}/standalone/Resource_Genesis.js +0 -0
  78. /package/dist/generated/{types → typesTS}/standalone/Resource_Job.js +0 -0
  79. /package/dist/generated/{types → typesTS}/standalone/Resource_RawStrategy.js +0 -0
  80. /package/dist/generated/{types → typesTS}/standalone/Resource_ResourceType.js +0 -0
  81. /package/dist/generated/{types → typesTS}/standalone/Resource_RunnableStrategy.js +0 -0
  82. /package/dist/generated/{types/types.js → typesTS/typesTS.js} +0 -0
  83. /package/dist/scripts/{generateStandaloneType.d.ts → generateStandaloneTypeTS.d.ts} +0 -0
  84. /package/dist/scripts/{generateTypes.d.ts → generateTypesTS.d.ts} +0 -0
  85. /package/src/generated/{types → typesTS}/standalone/Resource_Genesis.js +0 -0
  86. /package/src/generated/{types → typesTS}/standalone/Resource_Job.js +0 -0
  87. /package/src/generated/{types → typesTS}/standalone/Resource_RawStrategy.js +0 -0
  88. /package/src/generated/{types → typesTS}/standalone/Resource_ResourceType.js +0 -0
  89. /package/src/generated/{types → typesTS}/standalone/Resource_RunnableStrategy.js +0 -0
  90. /package/src/generated/{types/types.js → typesTS/typesTS.js} +0 -0
@@ -0,0 +1,2008 @@
1
+ {
2
+ "identity": "TYPE-Genesis",
3
+ "name": "Genesis",
4
+ "description": "dummy-description",
5
+ "resourceTypeImplementationKind": "internal-without-identity",
6
+ "nucleusSchema": {
7
+ "$comment": "This file defines all schemas used internally by ToolProof.",
8
+ "$anchor": "Genesis",
9
+ "$id": "https://schemas.toolproof.com/v2/Genesis.json",
10
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
11
+ "$defs": {
12
+ "Name": {
13
+ "identity": "TYPE-Name",
14
+ "name": "Name",
15
+ "description": "dummy-description",
16
+ "resourceTypeImplementationKind": "internal-without-identity",
17
+ "nucleusSchema": {
18
+ "$anchor": "Name",
19
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
20
+ "type": "string",
21
+ "minLength": 1,
22
+ "pattern": "^(?:[A-Z][^0-9]*|[a-z]+/[a-z.+&-]+)$",
23
+ "$comment": "Validation is intercepted by an AI Agent that verifies the name against Toolproof's naming conventions.",
24
+ "semanticValidation": "Ajv custom keyword to verify name."
25
+ }
26
+ },
27
+ "NameFacet": {
28
+ "identity": "TYPE-NameFacet",
29
+ "name": "NameFacet",
30
+ "description": "dummy-description",
31
+ "resourceTypeImplementationKind": "internal-without-identity",
32
+ "nucleusSchema": {
33
+ "$anchor": "NameFacet",
34
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
35
+ "type": "object",
36
+ "required": [
37
+ "name"
38
+ ],
39
+ "properties": {
40
+ "name": {
41
+ "$ref": "#/$defs/Name"
42
+ }
43
+ }
44
+ }
45
+ },
46
+ "Description": {
47
+ "identity": "TYPE-Description",
48
+ "name": "Description",
49
+ "description": "dummy-description",
50
+ "resourceTypeImplementationKind": "internal-without-identity",
51
+ "nucleusSchema": {
52
+ "$anchor": "Description",
53
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
54
+ "type": "string",
55
+ "minLength": 1,
56
+ "$comment": "Validation is intercepted by an AI Agent that verifies the description against Toolproof's documentation standards.",
57
+ "semanticValidation": "Ajv custom keyword to verify description."
58
+ }
59
+ },
60
+ "DescriptionFacet": {
61
+ "identity": "TYPE-DescriptionFacet",
62
+ "name": "DescriptionFacet",
63
+ "description": "dummy-description",
64
+ "resourceTypeImplementationKind": "internal-without-identity",
65
+ "nucleusSchema": {
66
+ "$anchor": "DescriptionFacet",
67
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
68
+ "type": "object",
69
+ "required": [
70
+ "description"
71
+ ],
72
+ "properties": {
73
+ "description": {
74
+ "$ref": "#/$defs/Description"
75
+ }
76
+ }
77
+ }
78
+ },
79
+ "DocumentationFacet": {
80
+ "identity": "TYPE-DocumentationFacet",
81
+ "name": "DocumentationFacet",
82
+ "description": "dummy-description",
83
+ "resourceTypeImplementationKind": "internal-without-identity",
84
+ "nucleusSchema": {
85
+ "$anchor": "DocumentationFacet",
86
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
87
+ "type": "object",
88
+ "allOf": [
89
+ {
90
+ "$ref": "#/$defs/NameFacet"
91
+ },
92
+ {
93
+ "$ref": "#/$defs/DescriptionFacet"
94
+ }
95
+ ]
96
+ }
97
+ },
98
+ "ResourceTypeImplementationKind": {
99
+ "identity": "TYPE-ResourceTypeImplementationKind",
100
+ "name": "ResourceTypeImplementationKind",
101
+ "description": "dummy-description",
102
+ "resourceTypeImplementationKind": "internal-without-identity",
103
+ "nucleusSchema": {
104
+ "$anchor": "ResourceTypeImplementationKind",
105
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
106
+ "type": "string",
107
+ "enum": [
108
+ "internal-without-identity",
109
+ "internal-with-identity",
110
+ "external"
111
+ ]
112
+ }
113
+ },
114
+ "ResourceTypeImplementationKindFacet": {
115
+ "identity": "TYPE-ResourceTypeImplementationKindFacet",
116
+ "name": "ResourceTypeImplementationKindFacet",
117
+ "description": "dummy-description",
118
+ "resourceTypeImplementationKind": "internal-without-identity",
119
+ "nucleusSchema": {
120
+ "$anchor": "ResourceTypeImplementationKindFacet",
121
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
122
+ "type": "object",
123
+ "required": [
124
+ "resourceTypeImplementationKind"
125
+ ],
126
+ "properties": {
127
+ "resourceTypeImplementationKind": {
128
+ "$ref": "#/$defs/ResourceTypeImplementationKind"
129
+ }
130
+ }
131
+ }
132
+ },
133
+ "Uri": {
134
+ "identity": "TYPE-Uri",
135
+ "name": "Uri",
136
+ "description": "dummy-description",
137
+ "resourceTypeImplementationKind": "internal-without-identity",
138
+ "nucleusSchema": {
139
+ "$anchor": "Uri",
140
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
141
+ "type": "string",
142
+ "format": "uri"
143
+ }
144
+ },
145
+ "ResourceTypeIdentity": {
146
+ "identity": "TYPE-ResourceTypeIdentity",
147
+ "name": "ResourceTypeIdentity",
148
+ "description": "dummy-description",
149
+ "resourceTypeImplementationKind": "internal-without-identity",
150
+ "nucleusSchema": {
151
+ "$anchor": "ResourceTypeIdentity",
152
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
153
+ "type": "string",
154
+ "pattern": "^TYPE-.+$"
155
+ }
156
+ },
157
+ "ResourceType": {
158
+ "identity": "TYPE-ResourceType",
159
+ "name": "ResourceType",
160
+ "description": "dummy-description",
161
+ "resourceTypeImplementationKind": "internal-with-identity",
162
+ "nucleusSchema": {
163
+ "$anchor": "ResourceType",
164
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
165
+ "type": "object",
166
+ "required": [
167
+ "identity",
168
+ "nucleusSchema"
169
+ ],
170
+ "properties": {
171
+ "identity": {
172
+ "$ref": "#/$defs/ResourceTypeIdentity"
173
+ },
174
+ "nucleusSchema": true,
175
+ "embeddingUriMap": {
176
+ "type": "object",
177
+ "propertyNames": {
178
+ "type": "string",
179
+ "pattern": "^EMBEDDING-.+$"
180
+ },
181
+ "additionalProperties": {
182
+ "$ref": "#/$defs/Uri"
183
+ },
184
+ "minProperties": 1,
185
+ "$comment": "A ResourceType may specify a set of embedding models that convert the raw data (or one of its alternative representations) into vector embeddings. The build process enforces that the keys of this map are members of a set of predefined embedding models."
186
+ },
187
+ "generatorUriMap": {
188
+ "type": "object",
189
+ "propertyNames": {
190
+ "type": "string",
191
+ "pattern": "^GENERATOR-.+$"
192
+ },
193
+ "additionalProperties": {
194
+ "$ref": "#/$defs/Uri"
195
+ },
196
+ "minProperties": 1,
197
+ "$comment": "A ResourceType may specify a set of generators that generate different representations of its instances from the raw file. A ToolProof Resource is always backed by a raw file. This is also true for the Resources (of type ResourceType) defined in this file! The build process enforces that the keys of this map are members of a set of predefined generators. GENERATOR-Json is an identifier for a generator that generates JSON data from the raw file. If the raw file is a JSON file, GENERATOR-Json is an implicit identity operation (i.e. an operation that does nothing) and must not be present in the map. A ResourceType may also specify other generators, such as GENERATOR-LeanTerm, which generates an instance (or 'term' in Lean jargon) of a corresponding Lean type from the raw file. ResourceTypes that specify GENERATOR-LeanTerm must also specify a corresponding GENERATOR-LeanType. While the term-version runs when data instances enter the ecosystem, the type-version runs when the ResourceType itself enters the ecosystem."
198
+ }
199
+ },
200
+ "allOf": [
201
+ {
202
+ "$ref": "#/$defs/DocumentationFacet"
203
+ },
204
+ {
205
+ "$ref": "#/$defs/ResourceTypeImplementationKindFacet"
206
+ }
207
+ ]
208
+ }
209
+ },
210
+ "ResourceRoleIdentity": {
211
+ "identity": "TYPE-ResourceRoleIdentity",
212
+ "name": "ResourceRoleIdentity",
213
+ "description": "dummy-description",
214
+ "resourceTypeImplementationKind": "internal-without-identity",
215
+ "nucleusSchema": {
216
+ "$anchor": "ResourceRoleIdentity",
217
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
218
+ "type": "string",
219
+ "pattern": "^ROLE-.+$"
220
+ }
221
+ },
222
+ "ResourceRoleValue": {
223
+ "identity": "TYPE-ResourceRoleValue",
224
+ "name": "ResourceRoleValue",
225
+ "description": "dummy-description",
226
+ "resourceTypeImplementationKind": "internal-without-identity",
227
+ "nucleusSchema": {
228
+ "$anchor": "ResourceRoleValue",
229
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
230
+ "type": "object",
231
+ "allOf": [
232
+ {
233
+ "$comment": "A ResourceRole does not have a self-contained identity, as it is always defined in the context of a RoleMap. ResourceRoleValue uses the Value suffix to mean 'the value stored in this map' (RoleMap.additionalProperties).",
234
+ "required": [
235
+ "resourceTypeHandle"
236
+ ],
237
+ "properties": {
238
+ "resourceTypeHandle": {
239
+ "$ref": "#/$defs/ResourceTypeIdentity"
240
+ }
241
+ }
242
+ },
243
+ {
244
+ "$ref": "#/$defs/DocumentationFacet"
245
+ }
246
+ ]
247
+ },
248
+ "unevaluatedProperties": false
249
+ },
250
+ "RoleMap": {
251
+ "identity": "TYPE-RoleMap",
252
+ "name": "RoleMap",
253
+ "description": "dummy-description",
254
+ "resourceTypeImplementationKind": "internal-without-identity",
255
+ "nucleusSchema": {
256
+ "$anchor": "RoleMap",
257
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
258
+ "type": "object",
259
+ "propertyNames": {
260
+ "$ref": "#/$defs/ResourceRoleIdentity"
261
+ },
262
+ "additionalProperties": {
263
+ "$ref": "#/$defs/ResourceRoleValue"
264
+ }
265
+ }
266
+ },
267
+ "Error": {
268
+ "identity": "TYPE-Error",
269
+ "name": "Error",
270
+ "description": "dummy-description",
271
+ "resourceTypeImplementationKind": "internal-without-identity",
272
+ "nucleusSchema": {
273
+ "$anchor": "Error",
274
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
275
+ "type": "object",
276
+ "allOf": [
277
+ {
278
+ "$ref": "#/$defs/DocumentationFacet"
279
+ },
280
+ {
281
+ "properties": {
282
+ "details": {
283
+ "type": "object"
284
+ }
285
+ }
286
+ }
287
+ ],
288
+ "unevaluatedProperties": false
289
+ }
290
+ },
291
+ "Roles": {
292
+ "identity": "TYPE-Roles",
293
+ "name": "Roles",
294
+ "description": "dummy-description",
295
+ "resourceTypeImplementationKind": "internal-without-identity",
296
+ "nucleusSchema": {
297
+ "$anchor": "Roles",
298
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
299
+ "type": "object",
300
+ "required": [
301
+ "inputMap",
302
+ "outputMap"
303
+ ],
304
+ "properties": {
305
+ "inputMap": {
306
+ "$ref": "#/$defs/RoleMap"
307
+ },
308
+ "outputMap": {
309
+ "allOf": [
310
+ {
311
+ "$ref": "#/$defs/RoleMap"
312
+ },
313
+ {
314
+ "required": [
315
+ "ROLE-ErrorOutput"
316
+ ],
317
+ "properties": {
318
+ "ROLE-ErrorOutput": {
319
+ "type": "object",
320
+ "allOf": [
321
+ {
322
+ "$ref": "#/$defs/ResourceRoleValue"
323
+ },
324
+ {
325
+ "required": [
326
+ "resourceTypeHandle",
327
+ "name",
328
+ "description"
329
+ ],
330
+ "properties": {
331
+ "resourceTypeHandle": {
332
+ "const": "TYPE-Error"
333
+ },
334
+ "name": {
335
+ "const": "ErrorOutput"
336
+ },
337
+ "description": {
338
+ "const": "Represents error outputs from job runs."
339
+ }
340
+ }
341
+ }
342
+ ]
343
+ }
344
+ }
345
+ }
346
+ ]
347
+ }
348
+ },
349
+ "unevaluatedProperties": false
350
+ }
351
+ },
352
+ "RolesFacet": {
353
+ "identity": "TYPE-RolesFacet",
354
+ "name": "RolesFacet",
355
+ "description": "dummy-description",
356
+ "resourceTypeImplementationKind": "internal-without-identity",
357
+ "nucleusSchema": {
358
+ "$anchor": "RolesFacet",
359
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
360
+ "type": "object",
361
+ "required": [
362
+ "roles"
363
+ ],
364
+ "properties": {
365
+ "roles": {
366
+ "$ref": "#/$defs/Roles"
367
+ }
368
+ }
369
+ }
370
+ },
371
+ "Domain": {
372
+ "identity": "TYPE-Domain",
373
+ "name": "Domain",
374
+ "description": "dummy-description",
375
+ "resourceTypeImplementationKind": "internal-without-identity",
376
+ "nucleusSchema": {
377
+ "$anchor": "Domain",
378
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
379
+ "type": "string",
380
+ "enum": [
381
+ "internal",
382
+ "numerical",
383
+ "biological",
384
+ "logical",
385
+ "augmental"
386
+ ]
387
+ }
388
+ },
389
+ "DomainFacet": {
390
+ "identity": "TYPE-DomainFacet",
391
+ "name": "DomainFacet",
392
+ "description": "dummy-description",
393
+ "resourceTypeImplementationKind": "internal-without-identity",
394
+ "nucleusSchema": {
395
+ "$anchor": "DomainFacet",
396
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
397
+ "type": "object",
398
+ "required": [
399
+ "domain"
400
+ ],
401
+ "properties": {
402
+ "domain": {
403
+ "$ref": "#/$defs/Domain"
404
+ }
405
+ }
406
+ }
407
+ },
408
+ "JobIdentity": {
409
+ "identity": "TYPE-JobIdentity",
410
+ "name": "JobIdentity",
411
+ "description": "dummy-description",
412
+ "resourceTypeImplementationKind": "internal-without-identity",
413
+ "nucleusSchema": {
414
+ "$anchor": "JobIdentity",
415
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
416
+ "type": "string",
417
+ "pattern": "^JOB-.+$"
418
+ }
419
+ },
420
+ "Job": {
421
+ "identity": "TYPE-Job",
422
+ "name": "Job",
423
+ "description": "dummy-description",
424
+ "resourceTypeImplementationKind": "internal-with-identity",
425
+ "nucleusSchema": {
426
+ "$anchor": "Job",
427
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
428
+ "type": "object",
429
+ "required": [
430
+ "identity",
431
+ "implementationUri"
432
+ ],
433
+ "properties": {
434
+ "identity": {
435
+ "$ref": "#/$defs/JobIdentity"
436
+ },
437
+ "implementationUri": {
438
+ "$ref": "#/$defs/Uri"
439
+ }
440
+ },
441
+ "allOf": [
442
+ {
443
+ "$ref": "#/$defs/DocumentationFacet"
444
+ },
445
+ {
446
+ "$ref": "#/$defs/DomainFacet"
447
+ },
448
+ {
449
+ "$ref": "#/$defs/RolesFacet"
450
+ }
451
+ ],
452
+ "unevaluatedProperties": false
453
+ }
454
+ },
455
+ "RoleBindingArray": {
456
+ "identity": "TYPE-RoleBindingArray",
457
+ "name": "RoleBindingArray",
458
+ "description": "dummy-description",
459
+ "resourceTypeImplementationKind": "internal-without-identity",
460
+ "nucleusSchema": {
461
+ "$anchor": "RoleBindingArray",
462
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
463
+ "type": "array",
464
+ "items": {
465
+ "$ref": "#/$defs/ResourceRoleIdentity"
466
+ }
467
+ }
468
+ },
469
+ "RoleBindings": {
470
+ "identity": "TYPE-RoleBindings",
471
+ "name": "RoleBindings",
472
+ "description": "dummy-description",
473
+ "resourceTypeImplementationKind": "internal-without-identity",
474
+ "nucleusSchema": {
475
+ "$anchor": "RoleBindings",
476
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
477
+ "type": "object",
478
+ "required": [
479
+ "inputBindings",
480
+ "outputBindings"
481
+ ],
482
+ "properties": {
483
+ "inputBindings": {
484
+ "$ref": "#/$defs/RoleBindingArray"
485
+ },
486
+ "outputBindings": {
487
+ "$ref": "#/$defs/RoleBindingArray"
488
+ }
489
+ }
490
+ },
491
+ "unevaluatedProperties": false
492
+ },
493
+ "RoleBindingsFacet": {
494
+ "identity": "TYPE-RoleBindingsFacet",
495
+ "name": "RoleBindingsFacet",
496
+ "description": "dummy-description",
497
+ "resourceTypeImplementationKind": "internal-without-identity",
498
+ "nucleusSchema": {
499
+ "$anchor": "RoleBindingsFacet",
500
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
501
+ "type": "object",
502
+ "required": [
503
+ "roleBindings"
504
+ ],
505
+ "properties": {
506
+ "roleBindings": {
507
+ "$ref": "#/$defs/RoleBindings"
508
+ }
509
+ }
510
+ }
511
+ },
512
+ "StepKind": {
513
+ "identity": "TYPE-StepKind",
514
+ "name": "StepKind",
515
+ "description": "dummy-description",
516
+ "resourceTypeImplementationKind": "internal-without-identity",
517
+ "nucleusSchema": {
518
+ "$anchor": "StepKind",
519
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
520
+ "type": "string",
521
+ "enum": [
522
+ "job",
523
+ "branch",
524
+ "while",
525
+ "for"
526
+ ]
527
+ }
528
+ },
529
+ "StepKindFacet": {
530
+ "identity": "TYPE-StepKindFacet",
531
+ "name": "StepKindFacet",
532
+ "description": "dummy-description",
533
+ "resourceTypeImplementationKind": "internal-without-identity",
534
+ "nucleusSchema": {
535
+ "$anchor": "StepKindFacet",
536
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
537
+ "type": "object",
538
+ "required": [
539
+ "stepKind"
540
+ ],
541
+ "properties": {
542
+ "stepKind": {
543
+ "$ref": "#/$defs/StepKind"
544
+ }
545
+ }
546
+ }
547
+ },
548
+ "JobStepIdentity": {
549
+ "identity": "TYPE-JobStepIdentity",
550
+ "name": "JobStepIdentity",
551
+ "description": "dummy-description",
552
+ "resourceTypeImplementationKind": "internal-without-identity",
553
+ "nucleusSchema": {
554
+ "$anchor": "JobStepIdentity",
555
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
556
+ "type": "string",
557
+ "pattern": "^JOB_STEP-.+$"
558
+ }
559
+ },
560
+ "JobStep": {
561
+ "identity": "TYPE-JobStep",
562
+ "name": "JobStep",
563
+ "description": "dummy-description",
564
+ "resourceTypeImplementationKind": "internal-with-identity",
565
+ "nucleusSchema": {
566
+ "$anchor": "JobStep",
567
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
568
+ "type": "object",
569
+ "required": [
570
+ "identity",
571
+ "stepKind",
572
+ "jobHandle"
573
+ ],
574
+ "properties": {
575
+ "identity": {
576
+ "$ref": "#/$defs/JobStepIdentity"
577
+ },
578
+ "stepKind": {
579
+ "const": "job"
580
+ },
581
+ "jobHandle": {
582
+ "$ref": "#/$defs/JobIdentity"
583
+ }
584
+ },
585
+ "allOf": [
586
+ {
587
+ "$ref": "#/$defs/StepKindFacet"
588
+ },
589
+ {
590
+ "$comment": "This will be overlayed dynamically to specify roleBindings corresponding to the roles of the underlying job.",
591
+ "$ref": "#/$defs/RoleBindingsFacet"
592
+ }
593
+ ]
594
+ }
595
+ },
596
+ "Conditional": {
597
+ "identity": "TYPE-Conditional",
598
+ "name": "Conditional",
599
+ "description": "dummy-description",
600
+ "resourceTypeImplementationKind": "internal-without-identity",
601
+ "nucleusSchema": {
602
+ "$anchor": "Conditional",
603
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
604
+ "type": "object",
605
+ "required": [
606
+ "when",
607
+ "what"
608
+ ],
609
+ "properties": {
610
+ "when": {
611
+ "$ref": "#/$defs/JobStep"
612
+ },
613
+ "what": {
614
+ "$ref": "#/$defs/JobStep"
615
+ }
616
+ },
617
+ "unevaluatedProperties": false
618
+ }
619
+ },
620
+ "BranchStepIdentity": {
621
+ "identity": "TYPE-BranchStepIdentity",
622
+ "name": "BranchStepIdentity",
623
+ "description": "dummy-description",
624
+ "resourceTypeImplementationKind": "internal-without-identity",
625
+ "nucleusSchema": {
626
+ "$anchor": "BranchStepIdentity",
627
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
628
+ "type": "string",
629
+ "pattern": "^BRANCH_STEP-.+$"
630
+ }
631
+ },
632
+ "BranchStep": {
633
+ "identity": "TYPE-BranchStep",
634
+ "name": "BranchStep",
635
+ "description": "dummy-description",
636
+ "resourceTypeImplementationKind": "internal-with-identity",
637
+ "nucleusSchema": {
638
+ "$anchor": "BranchStep",
639
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
640
+ "type": "object",
641
+ "required": [
642
+ "identity",
643
+ "stepKind",
644
+ "cases"
645
+ ],
646
+ "properties": {
647
+ "identity": {
648
+ "$ref": "#/$defs/BranchStepIdentity"
649
+ },
650
+ "stepKind": {
651
+ "const": "branch"
652
+ },
653
+ "cases": {
654
+ "type": "array",
655
+ "items": {
656
+ "$ref": "#/$defs/Conditional"
657
+ },
658
+ "minItems": 1,
659
+ "uniqueItems": true
660
+ }
661
+ },
662
+ "allOf": [
663
+ {
664
+ "$ref": "#/$defs/StepKindFacet"
665
+ }
666
+ ]
667
+ }
668
+ },
669
+ "WhileStepIdentity": {
670
+ "identity": "TYPE-WhileStepIdentity",
671
+ "name": "WhileStepIdentity",
672
+ "description": "dummy-description",
673
+ "resourceTypeImplementationKind": "internal-without-identity",
674
+ "nucleusSchema": {
675
+ "$anchor": "WhileStepIdentity",
676
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
677
+ "type": "string",
678
+ "pattern": "^WHILE_STEP-.+$"
679
+ }
680
+ },
681
+ "WhileStep": {
682
+ "identity": "TYPE-WhileStep",
683
+ "name": "WhileStep",
684
+ "description": "dummy-description",
685
+ "resourceTypeImplementationKind": "internal-with-identity",
686
+ "nucleusSchema": {
687
+ "$anchor": "WhileStep",
688
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
689
+ "type": "object",
690
+ "required": [
691
+ "identity",
692
+ "stepKind",
693
+ "case"
694
+ ],
695
+ "properties": {
696
+ "identity": {
697
+ "$ref": "#/$defs/WhileStepIdentity"
698
+ },
699
+ "stepKind": {
700
+ "const": "while"
701
+ },
702
+ "case": {
703
+ "$ref": "#/$defs/Conditional"
704
+ }
705
+ },
706
+ "allOf": [
707
+ {
708
+ "$ref": "#/$defs/StepKindFacet"
709
+ }
710
+ ]
711
+ }
712
+ },
713
+ "ForStepIdentity": {
714
+ "identity": "TYPE-ForStepIdentity",
715
+ "name": "ForStepIdentity",
716
+ "description": "dummy-description",
717
+ "resourceTypeImplementationKind": "internal-without-identity",
718
+ "nucleusSchema": {
719
+ "$anchor": "ForStepIdentity",
720
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
721
+ "type": "string",
722
+ "pattern": "^FOR_STEP-.+$"
723
+ }
724
+ },
725
+ "ForStep": {
726
+ "identity": "TYPE-ForStep",
727
+ "name": "ForStep",
728
+ "description": "dummy-description",
729
+ "resourceTypeImplementationKind": "internal-with-identity",
730
+ "nucleusSchema": {
731
+ "$anchor": "ForStep",
732
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
733
+ "type": "object",
734
+ "required": [
735
+ "identity",
736
+ "stepKind",
737
+ "case"
738
+ ],
739
+ "properties": {
740
+ "identity": {
741
+ "$ref": "#/$defs/ForStepIdentity"
742
+ },
743
+ "stepKind": {
744
+ "const": "for"
745
+ },
746
+ "case": {
747
+ "$ref": "#/$defs/Conditional"
748
+ }
749
+ },
750
+ "allOf": [
751
+ {
752
+ "$ref": "#/$defs/StepKindFacet"
753
+ }
754
+ ]
755
+ }
756
+ },
757
+ "StepIdentity": {
758
+ "identity": "TYPE-StepIdentity",
759
+ "name": "StepIdentity",
760
+ "description": "dummy-description",
761
+ "resourceTypeImplementationKind": "internal-without-identity",
762
+ "nucleusSchema": {
763
+ "$anchor": "StepIdentity",
764
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
765
+ "type": "object",
766
+ "oneOf": [
767
+ {
768
+ "$ref": "#/$defs/JobStepIdentity"
769
+ },
770
+ {
771
+ "$ref": "#/$defs/BranchStepIdentity"
772
+ },
773
+ {
774
+ "$ref": "#/$defs/WhileStepIdentity"
775
+ },
776
+ {
777
+ "$ref": "#/$defs/ForStepIdentity"
778
+ }
779
+ ]
780
+ }
781
+ },
782
+ "Step": {
783
+ "identity": "TYPE-Step",
784
+ "name": "Step",
785
+ "description": "dummy-description",
786
+ "resourceTypeImplementationKind": "internal-without-identity",
787
+ "nucleusSchema": {
788
+ "$anchor": "Step",
789
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
790
+ "type": "object",
791
+ "oneOf": [
792
+ {
793
+ "$ref": "#/$defs/JobStep"
794
+ },
795
+ {
796
+ "$ref": "#/$defs/BranchStep"
797
+ },
798
+ {
799
+ "$ref": "#/$defs/WhileStep"
800
+ },
801
+ {
802
+ "$ref": "#/$defs/ForStep"
803
+ }
804
+ ],
805
+ "unevaluatedProperties": false
806
+ }
807
+ },
808
+ "CreationContext": {
809
+ "identity": "TYPE-CreationContext",
810
+ "name": "CreationContext",
811
+ "description": "dummy-description",
812
+ "resourceTypeImplementationKind": "internal-without-identity",
813
+ "nucleusSchema": {
814
+ "$anchor": "CreationContext",
815
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
816
+ "type": "object",
817
+ "required": [
818
+ "resourceRoleHandle",
819
+ "jobStepHandle"
820
+ ],
821
+ "properties": {
822
+ "resourceRoleHandle": {
823
+ "$ref": "#/$defs/ResourceRoleIdentity"
824
+ },
825
+ "jobStepHandle": {
826
+ "$ref": "#/$defs/JobStepIdentity"
827
+ }
828
+ }
829
+ }
830
+ },
831
+ "CreationContextFacet": {
832
+ "identity": "TYPE-CreationContextFacet",
833
+ "name": "CreationContextFacet",
834
+ "description": "dummy-description",
835
+ "resourceTypeImplementationKind": "internal-without-identity",
836
+ "nucleusSchema": {
837
+ "$anchor": "CreationContextFacet",
838
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
839
+ "type": "object",
840
+ "required": [
841
+ "creationContext"
842
+ ],
843
+ "properties": {
844
+ "creationContext": {
845
+ "$ref": "#/$defs/CreationContext"
846
+ }
847
+ }
848
+ }
849
+ },
850
+ "ResourceIdentity": {
851
+ "identity": "TYPE-ResourceIdentity",
852
+ "name": "ResourceIdentity",
853
+ "description": "dummy-description",
854
+ "resourceTypeImplementationKind": "internal-without-identity",
855
+ "nucleusSchema": {
856
+ "$anchor": "ResourceIdentity",
857
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
858
+ "type": "string",
859
+ "pattern": "^RESOURCE-.+$"
860
+ }
861
+ },
862
+ "ResourceShellBase": {
863
+ "identity": "TYPE-ResourceShellBase",
864
+ "name": "ResourceShellBase",
865
+ "description": "dummy-description",
866
+ "resourceTypeImplementationKind": "internal-with-identity",
867
+ "nucleusSchema": {
868
+ "$anchor": "ResourceShellBase",
869
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
870
+ "type": "object",
871
+ "required": [
872
+ "identity",
873
+ "resourceTypeHandle",
874
+ "resourceKind"
875
+ ],
876
+ "properties": {
877
+ "identity": {
878
+ "$ref": "#/$defs/ResourceIdentity"
879
+ },
880
+ "resourceTypeHandle": {
881
+ "$ref": "#/$defs/ResourceTypeIdentity"
882
+ },
883
+ "resourceKind": {
884
+ "$ref": "#/$defs/ResourceKind"
885
+ }
886
+ }
887
+ }
888
+ },
889
+ "ResourceKind": {
890
+ "identity": "TYPE-ResourceKind",
891
+ "name": "ResourceKind",
892
+ "description": "dummy-description",
893
+ "resourceTypeImplementationKind": "internal-without-identity",
894
+ "nucleusSchema": {
895
+ "$anchor": "ResourceKind",
896
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
897
+ "type": "string",
898
+ "enum": [
899
+ "missing",
900
+ "input-potential",
901
+ "output-potential",
902
+ "materialized"
903
+ ]
904
+ }
905
+ },
906
+ "ResourceKindFacet": {
907
+ "identity": "TYPE-ResourceKindFacet",
908
+ "name": "ResourceKindFacet",
909
+ "description": "dummy-description",
910
+ "resourceTypeImplementationKind": "internal-without-identity",
911
+ "nucleusSchema": {
912
+ "$anchor": "ResourceKindFacet",
913
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
914
+ "type": "object",
915
+ "required": [
916
+ "resourceKind"
917
+ ],
918
+ "properties": {
919
+ "resourceKind": {
920
+ "$ref": "#/$defs/ResourceKind"
921
+ }
922
+ }
923
+ }
924
+ },
925
+ "ShellMissing": {
926
+ "identity": "TYPE-ShellMissing",
927
+ "name": "ShellMissing",
928
+ "description": "dummy-description",
929
+ "resourceTypeImplementationKind": "internal-with-identity",
930
+ "nucleusSchema": {
931
+ "$anchor": "ShellMissing",
932
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
933
+ "type": "object",
934
+ "properties": {
935
+ "resourceKind": {
936
+ "const": "missing"
937
+ }
938
+ },
939
+ "allOf": [
940
+ {
941
+ "$ref": "#/$defs/ResourceShellBase"
942
+ },
943
+ {
944
+ "$ref": "#/$defs/ResourceKindFacet"
945
+ }
946
+ ],
947
+ "unevaluatedProperties": false
948
+ }
949
+ },
950
+ "ShellInputPotential": {
951
+ "identity": "TYPE-ShellInputPotential",
952
+ "name": "ShellInputPotential",
953
+ "description": "dummy-description",
954
+ "resourceTypeImplementationKind": "internal-with-identity",
955
+ "nucleusSchema": {
956
+ "$anchor": "ShellInputPotential",
957
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
958
+ "type": "object",
959
+ "properties": {
960
+ "resourceKind": {
961
+ "const": "input-potential"
962
+ }
963
+ },
964
+ "allOf": [
965
+ {
966
+ "$ref": "#/$defs/ResourceShellBase"
967
+ },
968
+ {
969
+ "$ref": "#/$defs/CreationContextFacet"
970
+ },
971
+ {
972
+ "$ref": "#/$defs/ResourceKindFacet"
973
+ }
974
+ ],
975
+ "unevaluatedProperties": false
976
+ }
977
+ },
978
+ "ShellOutputPotential": {
979
+ "identity": "TYPE-ShellOutputPotential",
980
+ "name": "ShellOutputPotential",
981
+ "description": "dummy-description",
982
+ "resourceTypeImplementationKind": "internal-with-identity",
983
+ "nucleusSchema": {
984
+ "$anchor": "ShellOutputPotential",
985
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
986
+ "type": "object",
987
+ "properties": {
988
+ "resourceKind": {
989
+ "const": "output-potential"
990
+ }
991
+ },
992
+ "allOf": [
993
+ {
994
+ "$ref": "#/$defs/ResourceShellBase"
995
+ },
996
+ {
997
+ "$ref": "#/$defs/CreationContextFacet"
998
+ },
999
+ {
1000
+ "$ref": "#/$defs/ResourceKindFacet"
1001
+ }
1002
+ ],
1003
+ "unevaluatedProperties": false
1004
+ }
1005
+ },
1006
+ "Timestamp": {
1007
+ "identity": "TYPE-Timestamp",
1008
+ "name": "Timestamp",
1009
+ "description": "dummy-description",
1010
+ "resourceTypeImplementationKind": "internal-without-identity",
1011
+ "nucleusSchema": {
1012
+ "$anchor": "Timestamp",
1013
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1014
+ "type": "string",
1015
+ "format": "date-time"
1016
+ }
1017
+ },
1018
+ "TimestampFacet": {
1019
+ "identity": "TYPE-TimestampFacet",
1020
+ "name": "TimestampFacet",
1021
+ "description": "dummy-description",
1022
+ "resourceTypeImplementationKind": "internal-without-identity",
1023
+ "nucleusSchema": {
1024
+ "$anchor": "TimestampFacet",
1025
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1026
+ "type": "object",
1027
+ "required": [
1028
+ "timestamp"
1029
+ ],
1030
+ "properties": {
1031
+ "timestamp": {
1032
+ "$ref": "#/$defs/Timestamp"
1033
+ }
1034
+ }
1035
+ }
1036
+ },
1037
+ "Path": {
1038
+ "identity": "TYPE-Path",
1039
+ "name": "Path",
1040
+ "description": "dummy-description",
1041
+ "resourceTypeImplementationKind": "internal-without-identity",
1042
+ "nucleusSchema": {
1043
+ "$anchor": "Path",
1044
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1045
+ "type": "string",
1046
+ "format": "uri-reference"
1047
+ }
1048
+ },
1049
+ "PathFacet": {
1050
+ "identity": "TYPE-PathFacet",
1051
+ "name": "PathFacet",
1052
+ "description": "dummy-description",
1053
+ "resourceTypeImplementationKind": "internal-without-identity",
1054
+ "nucleusSchema": {
1055
+ "$anchor": "PathFacet",
1056
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1057
+ "type": "object",
1058
+ "required": [
1059
+ "path"
1060
+ ],
1061
+ "properties": {
1062
+ "path": {
1063
+ "$ref": "#/$defs/Path"
1064
+ }
1065
+ }
1066
+ }
1067
+ },
1068
+ "ShellMaterializedBase": {
1069
+ "identity": "TYPE-ShellMaterializedBase",
1070
+ "name": "ShellMaterializedBase",
1071
+ "description": "dummy-description",
1072
+ "resourceTypeImplementationKind": "internal-with-identity",
1073
+ "nucleusSchema": {
1074
+ "$anchor": "ShellMaterializedBase",
1075
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1076
+ "type": "object",
1077
+ "required": [
1078
+ "version"
1079
+ ],
1080
+ "properties": {
1081
+ "version": {
1082
+ "const": 1
1083
+ },
1084
+ "resourceKind": {
1085
+ "const": "materialized"
1086
+ }
1087
+ },
1088
+ "allOf": [
1089
+ {
1090
+ "$ref": "#/$defs/ResourceShellBase"
1091
+ },
1092
+ {
1093
+ "$ref": "#/$defs/CreationContextFacet"
1094
+ },
1095
+ {
1096
+ "$ref": "#/$defs/ResourceKindFacet"
1097
+ },
1098
+ {
1099
+ "$ref": "#/$defs/TimestampFacet"
1100
+ },
1101
+ {
1102
+ "$ref": "#/$defs/PathFacet"
1103
+ }
1104
+ ]
1105
+ }
1106
+ },
1107
+ "ShellMaterialized": {
1108
+ "identity": "TYPE-ShellMaterialized",
1109
+ "name": "ShellMaterialized",
1110
+ "description": "dummy-description",
1111
+ "resourceTypeImplementationKind": "internal-with-identity",
1112
+ "nucleusSchema": {
1113
+ "$anchor": "ShellMaterialized",
1114
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1115
+ "type": "object",
1116
+ "$ref": "#/$defs/ShellMaterializedBase",
1117
+ "unevaluatedProperties": false
1118
+ }
1119
+ },
1120
+ "ResourceMissing": {
1121
+ "identity": "TYPE-ResourceMissing",
1122
+ "name": "ResourceMissing",
1123
+ "description": "dummy-description",
1124
+ "resourceTypeImplementationKind": "internal-with-identity",
1125
+ "nucleusSchema": {
1126
+ "$anchor": "ResourceMissing",
1127
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1128
+ "type": "object",
1129
+ "$ref": "#/$defs/ShellMissing",
1130
+ "unevaluatedProperties": false
1131
+ }
1132
+ },
1133
+ "ResourceInputPotential": {
1134
+ "identity": "TYPE-ResourceInputPotential",
1135
+ "name": "ResourceInputPotential",
1136
+ "description": "dummy-description",
1137
+ "resourceTypeImplementationKind": "internal-with-identity",
1138
+ "nucleusSchema": {
1139
+ "$anchor": "ResourceInputPotential",
1140
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1141
+ "type": "object",
1142
+ "$ref": "#/$defs/ShellInputPotential",
1143
+ "unevaluatedProperties": false
1144
+ }
1145
+ },
1146
+ "ResourceOutputPotential": {
1147
+ "identity": "TYPE-ResourceOutputPotential",
1148
+ "name": "ResourceOutputPotential",
1149
+ "description": "dummy-description",
1150
+ "resourceTypeImplementationKind": "internal-with-identity",
1151
+ "nucleusSchema": {
1152
+ "$anchor": "ResourceOutputPotential",
1153
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1154
+ "type": "object",
1155
+ "$ref": "#/$defs/ShellOutputPotential",
1156
+ "unevaluatedProperties": false
1157
+ }
1158
+ },
1159
+ "JsonData": {
1160
+ "identity": "TYPE-JsonData",
1161
+ "name": "JsonData",
1162
+ "description": "dummy-description",
1163
+ "resourceTypeImplementationKind": "internal-without-identity",
1164
+ "nucleusSchema": {
1165
+ "$anchor": "JsonData",
1166
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1167
+ "oneOf": [
1168
+ {
1169
+ "type": "null"
1170
+ },
1171
+ {
1172
+ "type": "boolean"
1173
+ },
1174
+ {
1175
+ "type": "number"
1176
+ },
1177
+ {
1178
+ "type": "string"
1179
+ },
1180
+ {
1181
+ "type": "array",
1182
+ "items": {
1183
+ "$ref": "#/$defs/JsonData"
1184
+ }
1185
+ },
1186
+ {
1187
+ "type": "object",
1188
+ "additionalProperties": {
1189
+ "$ref": "#/$defs/JsonData"
1190
+ }
1191
+ }
1192
+ ]
1193
+ }
1194
+ },
1195
+ "Nucleus": {
1196
+ "identity": "TYPE-Nucleus",
1197
+ "name": "Nucleus",
1198
+ "description": "dummy-description",
1199
+ "resourceTypeImplementationKind": "internal-without-identity",
1200
+ "nucleusSchema": {
1201
+ "$anchor": "Nucleus",
1202
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1203
+ "type": "object",
1204
+ "additionalProperties": {
1205
+ "$ref": "#/$defs/JsonData"
1206
+ }
1207
+ }
1208
+ },
1209
+ "NucleusFacet": {
1210
+ "identity": "TYPE-NucleusFacet",
1211
+ "name": "NucleusFacet",
1212
+ "description": "dummy-description",
1213
+ "resourceTypeImplementationKind": "internal-without-identity",
1214
+ "nucleusSchema": {
1215
+ "$anchor": "NucleusFacet",
1216
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1217
+ "type": "object",
1218
+ "required": [
1219
+ "nucleus"
1220
+ ],
1221
+ "properties": {
1222
+ "nucleus": {
1223
+ "$ref": "#/$defs/Nucleus"
1224
+ }
1225
+ }
1226
+ }
1227
+ },
1228
+ "ResourceMaterialized": {
1229
+ "identity": "TYPE-ResourceMaterialized",
1230
+ "name": "ResourceMaterialized",
1231
+ "description": "dummy-description",
1232
+ "resourceTypeImplementationKind": "internal-with-identity",
1233
+ "nucleusSchema": {
1234
+ "$anchor": "ResourceMaterialized",
1235
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1236
+ "type": "object",
1237
+ "allOf": [
1238
+ {
1239
+ "$ref": "#/$defs/ShellMaterializedBase"
1240
+ },
1241
+ {
1242
+ "$comment": "This will be overlayed dynamically to match the data structure of the underlying ResourceType's nucleusSchema.",
1243
+ "$ref": "#/$defs/NucleusFacet"
1244
+ }
1245
+ ],
1246
+ "unevaluatedProperties": false
1247
+ }
1248
+ },
1249
+ "Resource": {
1250
+ "identity": "TYPE-Resource",
1251
+ "name": "Resource",
1252
+ "description": "dummy-description",
1253
+ "resourceTypeImplementationKind": "internal-with-identity",
1254
+ "nucleusSchema": {
1255
+ "$anchor": "Resource",
1256
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1257
+ "type": "object",
1258
+ "oneOf": [
1259
+ {
1260
+ "$ref": "#/$defs/ResourceMissing"
1261
+ },
1262
+ {
1263
+ "$ref": "#/$defs/ResourceInputPotential"
1264
+ },
1265
+ {
1266
+ "$ref": "#/$defs/ResourceOutputPotential"
1267
+ },
1268
+ {
1269
+ "$ref": "#/$defs/ResourceMaterialized"
1270
+ }
1271
+ ],
1272
+ "unevaluatedProperties": false
1273
+ }
1274
+ },
1275
+ "JobStepSocket": {
1276
+ "identity": "TYPE-JobStepSocket",
1277
+ "name": "JobStepSocket",
1278
+ "description": "dummy-description",
1279
+ "resourceTypeImplementationKind": "internal-without-identity",
1280
+ "nucleusSchema": {
1281
+ "$anchor": "JobStepSocket",
1282
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1283
+ "type": "object",
1284
+ "propertyNames": {
1285
+ "$ref": "#/$defs/ResourceRoleIdentity"
1286
+ },
1287
+ "additionalProperties": {
1288
+ "$ref": "#/$defs/Resource"
1289
+ }
1290
+ }
1291
+ },
1292
+ "StrategyState": {
1293
+ "identity": "TYPE-StrategyState",
1294
+ "name": "StrategyState",
1295
+ "description": "dummy-description",
1296
+ "resourceTypeImplementationKind": "internal-without-identity",
1297
+ "nucleusSchema": {
1298
+ "$anchor": "StrategyState",
1299
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1300
+ "type": "object",
1301
+ "propertyNames": {
1302
+ "$ref": "#/$defs/JobStepIdentity"
1303
+ },
1304
+ "additionalProperties": {
1305
+ "$ref": "#/$defs/JobStepSocket"
1306
+ }
1307
+ }
1308
+ },
1309
+ "StrategyStateFacet": {
1310
+ "identity": "TYPE-StrategyStateFacet",
1311
+ "name": "StrategyStateFacet",
1312
+ "description": "dummy-description",
1313
+ "resourceTypeImplementationKind": "internal-without-identity",
1314
+ "nucleusSchema": {
1315
+ "$anchor": "StrategyStateFacet",
1316
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1317
+ "type": "object",
1318
+ "required": [
1319
+ "strategyState"
1320
+ ],
1321
+ "properties": {
1322
+ "strategyState": {
1323
+ "$ref": "#/$defs/StrategyState"
1324
+ }
1325
+ }
1326
+ }
1327
+ },
1328
+ "StepArray": {
1329
+ "identity": "TYPE-StepArray",
1330
+ "name": "StepArray",
1331
+ "description": "dummy-description",
1332
+ "resourceTypeImplementationKind": "internal-without-identity",
1333
+ "nucleusSchema": {
1334
+ "$anchor": "StepArray",
1335
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1336
+ "type": "array",
1337
+ "items": {
1338
+ "$ref": "#/$defs/Step"
1339
+ },
1340
+ "uniqueItems": true
1341
+ }
1342
+ },
1343
+ "StepsFacet": {
1344
+ "identity": "TYPE-StepsFacet",
1345
+ "name": "StepsFacet",
1346
+ "description": "dummy-description",
1347
+ "resourceTypeImplementationKind": "internal-without-identity",
1348
+ "nucleusSchema": {
1349
+ "$anchor": "StepsFacet",
1350
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1351
+ "type": "object",
1352
+ "required": [
1353
+ "steps"
1354
+ ],
1355
+ "properties": {
1356
+ "steps": {
1357
+ "$ref": "#/$defs/StepArray"
1358
+ }
1359
+ }
1360
+ }
1361
+ },
1362
+ "RawStrategy": {
1363
+ "identity": "TYPE-RawStrategy",
1364
+ "name": "RawStrategy",
1365
+ "description": "dummy-description",
1366
+ "resourceTypeImplementationKind": "internal-without-identity",
1367
+ "nucleusSchema": {
1368
+ "$anchor": "RawStrategy",
1369
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1370
+ "type": "object",
1371
+ "allOf": [
1372
+ {
1373
+ "$ref": "#/$defs/StepsFacet"
1374
+ },
1375
+ {
1376
+ "$ref": "#/$defs/StrategyStateFacet"
1377
+ }
1378
+ ],
1379
+ "unevaluatedProperties": false
1380
+ }
1381
+ },
1382
+ "RunnableStrategyIdentity": {
1383
+ "identity": "TYPE-RunnableStrategyIdentity",
1384
+ "name": "RunnableStrategyIdentity",
1385
+ "description": "dummy-description",
1386
+ "resourceTypeImplementationKind": "internal-without-identity",
1387
+ "nucleusSchema": {
1388
+ "$anchor": "RunnableStrategyIdentity",
1389
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1390
+ "type": "string",
1391
+ "pattern": "^RUNNABLE_STRATEGY-.+$"
1392
+ }
1393
+ },
1394
+ "RunnableStrategyStatus": {
1395
+ "identity": "TYPE-RunnableStrategyStatus",
1396
+ "name": "RunnableStrategyStatus",
1397
+ "description": "dummy-description",
1398
+ "resourceTypeImplementationKind": "internal-without-identity",
1399
+ "nucleusSchema": {
1400
+ "$anchor": "RunnableStrategyStatus",
1401
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1402
+ "type": "string",
1403
+ "enum": [
1404
+ "pending",
1405
+ "running",
1406
+ "completed",
1407
+ "failed",
1408
+ "cancelled"
1409
+ ]
1410
+ }
1411
+ },
1412
+ "RunnableStrategyContext": {
1413
+ "identity": "TYPE-RunnableStrategyContext",
1414
+ "name": "RunnableStrategyContext",
1415
+ "description": "dummy-description",
1416
+ "resourceTypeImplementationKind": "internal-without-identity",
1417
+ "nucleusSchema": {
1418
+ "$anchor": "RunnableStrategyContext",
1419
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1420
+ "type": "object",
1421
+ "required": [
1422
+ "status"
1423
+ ],
1424
+ "properties": {
1425
+ "status": {
1426
+ "$ref": "#/$defs/RunnableStrategyStatus"
1427
+ },
1428
+ "startedAt": {
1429
+ "$ref": "#/$defs/Timestamp"
1430
+ },
1431
+ "completedAt": {
1432
+ "$ref": "#/$defs/Timestamp"
1433
+ }
1434
+ },
1435
+ "unevaluatedProperties": false
1436
+ }
1437
+ },
1438
+ "StrategyThreadIdentity": {
1439
+ "identity": "TYPE-StrategyThreadIdentity",
1440
+ "name": "StrategyThreadIdentity",
1441
+ "description": "dummy-description",
1442
+ "resourceTypeImplementationKind": "internal-without-identity",
1443
+ "nucleusSchema": {
1444
+ "$anchor": "StrategyThreadIdentity",
1445
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1446
+ "type": "string",
1447
+ "pattern": "^STRATEGY_THREAD-.+$"
1448
+ }
1449
+ },
1450
+ "StrategyThreadMap": {
1451
+ "identity": "TYPE-StrategyThreadMap",
1452
+ "name": "StrategyThreadMap",
1453
+ "description": "dummy-description",
1454
+ "resourceTypeImplementationKind": "internal-without-identity",
1455
+ "nucleusSchema": {
1456
+ "$anchor": "StrategyThreadMap",
1457
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1458
+ "type": "object",
1459
+ "propertyNames": {
1460
+ "$ref": "#/$defs/StrategyThreadIdentity"
1461
+ },
1462
+ "additionalProperties": {
1463
+ "$ref": "#/$defs/StepArray"
1464
+ },
1465
+ "$comment": "Each thread contains an array of steps, allowing for sequential execution within a thread while supporting parallel execution across multiple threads."
1466
+ }
1467
+ },
1468
+ "StrategyThreadMapFacet": {
1469
+ "identity": "TYPE-StrategyThreadMapFacet",
1470
+ "name": "StrategyThreadMapFacet",
1471
+ "description": "dummy-description",
1472
+ "resourceTypeImplementationKind": "internal-without-identity",
1473
+ "nucleusSchema": {
1474
+ "$anchor": "StrategyThreadMapFacet",
1475
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1476
+ "type": "object",
1477
+ "required": [
1478
+ "strategyThreadMap"
1479
+ ],
1480
+ "properties": {
1481
+ "strategyThreadMap": {
1482
+ "$ref": "#/$defs/StrategyThreadMap"
1483
+ }
1484
+ }
1485
+ }
1486
+ },
1487
+ "RunnableStrategy": {
1488
+ "identity": "TYPE-RunnableStrategy",
1489
+ "name": "RunnableStrategy",
1490
+ "description": "dummy-description",
1491
+ "resourceTypeImplementationKind": "internal-with-identity",
1492
+ "nucleusSchema": {
1493
+ "$anchor": "RunnableStrategy",
1494
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1495
+ "type": "object",
1496
+ "required": [
1497
+ "identity",
1498
+ "runnableStrategyContext"
1499
+ ],
1500
+ "properties": {
1501
+ "identity": {
1502
+ "$ref": "#/$defs/RunnableStrategyIdentity"
1503
+ },
1504
+ "runnableStrategyContext": {
1505
+ "$ref": "#/$defs/RunnableStrategyContext"
1506
+ }
1507
+ },
1508
+ "allOf": [
1509
+ {
1510
+ "$comment": "The Engine runs jobs specified by steps in strategyThreadMap. The Engine also injects repeted steps when encountering loops.",
1511
+ "$ref": "#/$defs/StrategyThreadMapFacet"
1512
+ },
1513
+ {
1514
+ "$comment": "The Engine updates strategyState with materialized Resources upon job completions and runtime-provided input events. It also inserts input-potential and output-potential Resources upon step injections.",
1515
+ "$ref": "#/$defs/StrategyStateFacet"
1516
+ }
1517
+ ],
1518
+ "unevaluatedProperties": false
1519
+ }
1520
+ },
1521
+ "StrategyStateDelta": {
1522
+ "identity": "TYPE-StrategyStateDelta",
1523
+ "name": "StrategyStateDelta",
1524
+ "description": "dummy-description",
1525
+ "resourceTypeImplementationKind": "internal-without-identity",
1526
+ "nucleusSchema": {
1527
+ "$anchor": "StrategyStateDelta",
1528
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1529
+ "type": "object",
1530
+ "required": [
1531
+ "strategyStateUpdate"
1532
+ ],
1533
+ "properties": {
1534
+ "strategyStateUpdate": {
1535
+ "$ref": "#/$defs/StrategyState"
1536
+ }
1537
+ }
1538
+ }
1539
+ },
1540
+ "RunnableStrategyUpdate": {
1541
+ "identity": "TYPE-RunnableStrategyUpdate",
1542
+ "name": "RunnableStrategyUpdate",
1543
+ "description": "dummy-description",
1544
+ "resourceTypeImplementationKind": "internal-without-identity",
1545
+ "nucleusSchema": {
1546
+ "$anchor": "RunnableStrategyUpdate",
1547
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1548
+ "type": "object",
1549
+ "required": [
1550
+ "runnableStrategyHandle"
1551
+ ],
1552
+ "properties": {
1553
+ "runnableStrategyHandle": {
1554
+ "$ref": "#/$defs/RunnableStrategyIdentity"
1555
+ },
1556
+ "runnableStrategy": {
1557
+ "$comment": "Optional embedded snapshot; runnableStrategyHandle remains the canonical pointer.",
1558
+ "$ref": "#/$defs/RunnableStrategy"
1559
+ }
1560
+ },
1561
+ "allOf": [
1562
+ {
1563
+ "$ref": "#/$defs/StrategyStateDelta"
1564
+ }
1565
+ ],
1566
+ "unevaluatedProperties": false
1567
+ }
1568
+ },
1569
+ "RunEventCounters": {
1570
+ "identity": "TYPE-RunEventCounters",
1571
+ "name": "RunEventCounters",
1572
+ "description": "dummy-description",
1573
+ "resourceTypeImplementationKind": "internal-without-identity",
1574
+ "nucleusSchema": {
1575
+ "$anchor": "RunEventCounters",
1576
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1577
+ "type": "object",
1578
+ "properties": {
1579
+ "stepCounterAfter": {
1580
+ "type": "integer"
1581
+ },
1582
+ "iterationCounterAfter": {
1583
+ "type": "integer"
1584
+ }
1585
+ }
1586
+ }
1587
+ },
1588
+ "RunEventStepMetadata": {
1589
+ "identity": "TYPE-RunEventStepMetadata",
1590
+ "name": "RunEventStepMetadata",
1591
+ "description": "dummy-description",
1592
+ "resourceTypeImplementationKind": "internal-without-identity",
1593
+ "nucleusSchema": {
1594
+ "$anchor": "RunEventStepMetadata",
1595
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1596
+ "type": "object",
1597
+ "required": [
1598
+ "stepHandle",
1599
+ "stepKind",
1600
+ "threadStepIndex"
1601
+ ],
1602
+ "properties": {
1603
+ "stepHandle": {
1604
+ "$ref": "#/$defs/StepIdentity"
1605
+ },
1606
+ "stepKind": {
1607
+ "$ref": "#/$defs/StepKind"
1608
+ },
1609
+ "threadStepIndex": {
1610
+ "type": "integer"
1611
+ }
1612
+ }
1613
+ }
1614
+ },
1615
+ "RunEventUpdates": {
1616
+ "identity": "TYPE-RunEventUpdates",
1617
+ "name": "RunEventUpdates",
1618
+ "description": "dummy-description",
1619
+ "resourceTypeImplementationKind": "internal-without-identity",
1620
+ "nucleusSchema": {
1621
+ "$anchor": "RunEventUpdates",
1622
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1623
+ "type": "object",
1624
+ "properties": {
1625
+ "stepsMutation": {
1626
+ "type": "object",
1627
+ "required": [
1628
+ "insertAt",
1629
+ "inserted"
1630
+ ],
1631
+ "properties": {
1632
+ "insertAt": {
1633
+ "type": "integer"
1634
+ },
1635
+ "inserted": {
1636
+ "$ref": "#/$defs/StepArray"
1637
+ }
1638
+ }
1639
+ },
1640
+ "interruptData": {
1641
+ "$comment": "Kept permissive; the engine may evolve interrupt payloads.",
1642
+ "type": [
1643
+ "object",
1644
+ "null"
1645
+ ]
1646
+ }
1647
+ },
1648
+ "allOf": [
1649
+ {
1650
+ "$ref": "#/$defs/StrategyStateDelta"
1651
+ }
1652
+ ]
1653
+ }
1654
+ },
1655
+ "RunEventKind": {
1656
+ "identity": "TYPE-RunEventKind",
1657
+ "name": "RunEventKind",
1658
+ "description": "dummy-description",
1659
+ "resourceTypeImplementationKind": "internal-without-identity",
1660
+ "nucleusSchema": {
1661
+ "$anchor": "RunEventKind",
1662
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1663
+ "type": "string",
1664
+ "enum": [
1665
+ "graph_start",
1666
+ "tick",
1667
+ "interrupt",
1668
+ "graph_end"
1669
+ ]
1670
+ }
1671
+ },
1672
+ "RunEventBase": {
1673
+ "identity": "TYPE-RunEventBase",
1674
+ "name": "RunEventBase",
1675
+ "description": "dummy-description",
1676
+ "resourceTypeImplementationKind": "internal-without-identity",
1677
+ "nucleusSchema": {
1678
+ "$anchor": "RunEventBase",
1679
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1680
+ "type": "object",
1681
+ "required": [
1682
+ "runEventKind",
1683
+ "runnableStrategyHandle",
1684
+ "strategyThreadHandle",
1685
+ "createdAt",
1686
+ "nodeName",
1687
+ "eventSeq"
1688
+ ],
1689
+ "properties": {
1690
+ "runEventKind": {
1691
+ "$ref": "#/$defs/RunEventKind"
1692
+ },
1693
+ "runnableStrategyHandle": {
1694
+ "$ref": "#/$defs/RunnableStrategyIdentity"
1695
+ },
1696
+ "strategyThreadHandle": {
1697
+ "$ref": "#/$defs/StrategyThreadIdentity"
1698
+ },
1699
+ "createdAt": {
1700
+ "$ref": "#/$defs/Timestamp"
1701
+ },
1702
+ "nodeName": {
1703
+ "type": "string"
1704
+ },
1705
+ "eventSeq": {
1706
+ "type": "integer"
1707
+ },
1708
+ "counters": {
1709
+ "$ref": "#/$defs/RunEventCounters"
1710
+ },
1711
+ "stepMetadata": {
1712
+ "$ref": "#/$defs/RunEventStepMetadata"
1713
+ },
1714
+ "updates": {
1715
+ "$ref": "#/$defs/RunEventUpdates"
1716
+ }
1717
+ }
1718
+ }
1719
+ },
1720
+ "GraphStartRunEvent": {
1721
+ "identity": "TYPE-GraphStartRunEvent",
1722
+ "name": "GraphStartRunEvent",
1723
+ "description": "dummy-description",
1724
+ "resourceTypeImplementationKind": "internal-without-identity",
1725
+ "nucleusSchema": {
1726
+ "$anchor": "GraphStartRunEvent",
1727
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1728
+ "allOf": [
1729
+ {
1730
+ "$ref": "#/$defs/RunEventBase"
1731
+ },
1732
+ {
1733
+ "type": "object",
1734
+ "required": [
1735
+ "runnableStrategySeed"
1736
+ ],
1737
+ "properties": {
1738
+ "runEventKind": {
1739
+ "const": "graph_start"
1740
+ },
1741
+ "runnableStrategySeed": {
1742
+ "$ref": "#/$defs/RunnableStrategy"
1743
+ }
1744
+ }
1745
+ }
1746
+ ]
1747
+ }
1748
+ },
1749
+ "TickRunEvent": {
1750
+ "identity": "TYPE-TickRunEvent",
1751
+ "name": "TickRunEvent",
1752
+ "description": "dummy-description",
1753
+ "resourceTypeImplementationKind": "internal-without-identity",
1754
+ "nucleusSchema": {
1755
+ "$anchor": "TickRunEvent",
1756
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1757
+ "allOf": [
1758
+ {
1759
+ "$ref": "#/$defs/RunEventBase"
1760
+ },
1761
+ {
1762
+ "type": "object",
1763
+ "properties": {
1764
+ "runEventKind": {
1765
+ "const": "tick"
1766
+ }
1767
+ }
1768
+ }
1769
+ ]
1770
+ }
1771
+ },
1772
+ "InterruptRunEvent": {
1773
+ "identity": "TYPE-InterruptRunEvent",
1774
+ "name": "InterruptRunEvent",
1775
+ "description": "dummy-description",
1776
+ "resourceTypeImplementationKind": "internal-without-identity",
1777
+ "nucleusSchema": {
1778
+ "$anchor": "InterruptRunEvent",
1779
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1780
+ "allOf": [
1781
+ {
1782
+ "$ref": "#/$defs/RunEventBase"
1783
+ },
1784
+ {
1785
+ "type": "object",
1786
+ "properties": {
1787
+ "runEventKind": {
1788
+ "const": "interrupt"
1789
+ }
1790
+ }
1791
+ }
1792
+ ]
1793
+ }
1794
+ },
1795
+ "GraphEndRunEvent": {
1796
+ "identity": "TYPE-GraphEndRunEvent",
1797
+ "name": "GraphEndRunEvent",
1798
+ "description": "dummy-description",
1799
+ "resourceTypeImplementationKind": "internal-without-identity",
1800
+ "nucleusSchema": {
1801
+ "$anchor": "GraphEndRunEvent",
1802
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1803
+ "allOf": [
1804
+ {
1805
+ "$ref": "#/$defs/RunEventBase"
1806
+ },
1807
+ {
1808
+ "type": "object",
1809
+ "properties": {
1810
+ "runEventKind": {
1811
+ "const": "graph_end"
1812
+ }
1813
+ }
1814
+ }
1815
+ ]
1816
+ }
1817
+ },
1818
+ "RunEvent": {
1819
+ "identity": "TYPE-RunEvent",
1820
+ "name": "RunEvent",
1821
+ "description": "dummy-description",
1822
+ "resourceTypeImplementationKind": "internal-without-identity",
1823
+ "nucleusSchema": {
1824
+ "$anchor": "RunEvent",
1825
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1826
+ "type": "object",
1827
+ "oneOf": [
1828
+ {
1829
+ "$ref": "#/$defs/GraphStartRunEvent"
1830
+ },
1831
+ {
1832
+ "$ref": "#/$defs/TickRunEvent"
1833
+ },
1834
+ {
1835
+ "$ref": "#/$defs/InterruptRunEvent"
1836
+ },
1837
+ {
1838
+ "$ref": "#/$defs/GraphEndRunEvent"
1839
+ }
1840
+ ]
1841
+ }
1842
+ },
1843
+ "StrategyRunIdentity": {
1844
+ "identity": "TYPE-StrategyRunIdentity",
1845
+ "name": "StrategyRunIdentity",
1846
+ "description": "dummy-description",
1847
+ "resourceTypeImplementationKind": "internal-without-identity",
1848
+ "nucleusSchema": {
1849
+ "$anchor": "StrategyRunIdentity",
1850
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1851
+ "type": "string",
1852
+ "pattern": "^STRATEGY_RUN-.+$"
1853
+ }
1854
+ },
1855
+ "StrategyRun": {
1856
+ "identity": "TYPE-StrategyRun",
1857
+ "name": "StrategyRun",
1858
+ "description": "dummy-description",
1859
+ "resourceTypeImplementationKind": "internal-with-identity",
1860
+ "nucleusSchema": {
1861
+ "$anchor": "StrategyRun",
1862
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1863
+ "type": "object",
1864
+ "required": [
1865
+ "identity",
1866
+ "runnableStrategyHandle",
1867
+ "recordedAt",
1868
+ "runEvents"
1869
+ ],
1870
+ "properties": {
1871
+ "identity": {
1872
+ "$ref": "#/$defs/StrategyRunIdentity"
1873
+ },
1874
+ "runnableStrategyHandle": {
1875
+ "$comment": "Could be derived from the first event but useful for indexing.",
1876
+ "$ref": "#/$defs/RunnableStrategyIdentity"
1877
+ },
1878
+ "recordedAt": {
1879
+ "$ref": "#/$defs/Timestamp"
1880
+ },
1881
+ "runEvents": {
1882
+ "type": "array",
1883
+ "items": {
1884
+ "$ref": "#/$defs/RunEvent"
1885
+ }
1886
+ }
1887
+ },
1888
+ "unevaluatedProperties": false
1889
+ }
1890
+ },
1891
+ "GoalIdentity": {
1892
+ "identity": "TYPE-GoalIdentity",
1893
+ "name": "GoalIdentity",
1894
+ "description": "dummy-description",
1895
+ "resourceTypeImplementationKind": "internal-without-identity",
1896
+ "nucleusSchema": {
1897
+ "$anchor": "GoalIdentity",
1898
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1899
+ "type": "string",
1900
+ "pattern": "^GOAL-.+$"
1901
+ }
1902
+ },
1903
+ "Goal": {
1904
+ "identity": "TYPE-Goal",
1905
+ "name": "Goal",
1906
+ "description": "dummy-description",
1907
+ "resourceTypeImplementationKind": "internal-with-identity",
1908
+ "nucleusSchema": {
1909
+ "$anchor": "Goal",
1910
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1911
+ "type": "object",
1912
+ "required": [
1913
+ "identity",
1914
+ "target"
1915
+ ],
1916
+ "properties": {
1917
+ "identity": {
1918
+ "$ref": "#/$defs/GoalIdentity"
1919
+ },
1920
+ "target": {
1921
+ "type": "integer",
1922
+ "minimum": 0
1923
+ },
1924
+ "disallowedJobs": {
1925
+ "type": "array",
1926
+ "items": {
1927
+ "$ref": "#/$defs/JobIdentity"
1928
+ }
1929
+ },
1930
+ "disallowedSequences": {
1931
+ "type": "array",
1932
+ "items": {
1933
+ "type": "array",
1934
+ "items": {
1935
+ "$ref": "#/$defs/JobIdentity"
1936
+ }
1937
+ }
1938
+ },
1939
+ "minSteps": {
1940
+ "type": "integer",
1941
+ "minimum": 1
1942
+ },
1943
+ "maxSteps": {
1944
+ "type": "integer",
1945
+ "minimum": 1
1946
+ }
1947
+ },
1948
+ "allOf": [
1949
+ {
1950
+ "$ref": "#/$defs/DomainFacet"
1951
+ }
1952
+ ],
1953
+ "unevaluatedProperties": false
1954
+ }
1955
+ },
1956
+ "Natural": {
1957
+ "identity": "TYPE-Natural",
1958
+ "name": "Natural",
1959
+ "description": "dummy-description",
1960
+ "resourceTypeImplementationKind": "internal-with-identity",
1961
+ "nucleusSchema": {
1962
+ "$anchor": "Natural",
1963
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1964
+ "type": "object",
1965
+ "required": [
1966
+ "identity"
1967
+ ],
1968
+ "properties": {
1969
+ "identity": {
1970
+ "$ref": "#/$defs/NaturalIdentity"
1971
+ }
1972
+ },
1973
+ "$defs": {
1974
+ "NaturalIdentity": {
1975
+ "type": "integer"
1976
+ }
1977
+ },
1978
+ "additionalProperties": false
1979
+ }
1980
+ },
1981
+ "Boolean": {
1982
+ "identity": "TYPE-Boolean",
1983
+ "name": "Boolean",
1984
+ "description": "dummy-description",
1985
+ "resourceTypeImplementationKind": "internal-with-identity",
1986
+ "nucleusSchema": {
1987
+ "$anchor": "Boolean",
1988
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
1989
+ "type": "object",
1990
+ "required": [
1991
+ "identity"
1992
+ ],
1993
+ "properties": {
1994
+ "identity": {
1995
+ "$ref": "#/$defs/BooleanIdentity"
1996
+ }
1997
+ },
1998
+ "$defs": {
1999
+ "BooleanIdentity": {
2000
+ "type": "boolean"
2001
+ }
2002
+ },
2003
+ "additionalProperties": false
2004
+ }
2005
+ }
2006
+ }
2007
+ }
2008
+ }