@adea-ai/sdk 1.3.2

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,3845 @@
1
+ {
2
+ "openapi": "3.1.0",
3
+ "info": { "title": "Agent HQ Control Plane API", "version": "1.0.0" },
4
+ "paths": {
5
+ "/v1/authentication/verify": {
6
+ "post": {
7
+ "operationId": "authentication.verify",
8
+ "requestBody": {
9
+ "content": {
10
+ "application/json": {
11
+ "schema": {
12
+ "properties": {
13
+ "caller": {
14
+ "properties": {
15
+ "servicePrincipalId": {
16
+ "maxLength": 64,
17
+ "minLength": 5,
18
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
19
+ "type": "string"
20
+ }
21
+ },
22
+ "required": ["servicePrincipalId"],
23
+ "type": "object"
24
+ },
25
+ "contractVersion": {
26
+ "additionalProperties": false,
27
+ "properties": {
28
+ "major": {
29
+ "exclusiveMinimum": 0,
30
+ "maximum": 9007199254740991,
31
+ "type": "integer"
32
+ },
33
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
34
+ },
35
+ "required": ["major", "minor"],
36
+ "type": "object"
37
+ },
38
+ "correlation": {
39
+ "properties": {
40
+ "causationCommandId": {
41
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
42
+ "type": "string"
43
+ },
44
+ "parentEventId": {
45
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
46
+ "type": "string"
47
+ },
48
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
49
+ },
50
+ "required": ["traceId"],
51
+ "type": "object"
52
+ },
53
+ "operation": { "const": "authentication.verify", "type": "string" },
54
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
55
+ "requestedAt": {
56
+ "format": "date-time",
57
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
58
+ "type": "string"
59
+ },
60
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
61
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
62
+ },
63
+ "required": [
64
+ "caller",
65
+ "contractVersion",
66
+ "requestId",
67
+ "workspaceId",
68
+ "correlation",
69
+ "operation",
70
+ "requestedAt"
71
+ ],
72
+ "type": "object"
73
+ }
74
+ }
75
+ },
76
+ "required": true
77
+ },
78
+ "responses": {
79
+ "200": {
80
+ "content": {
81
+ "application/json": {
82
+ "schema": {
83
+ "additionalProperties": false,
84
+ "properties": {
85
+ "contractVersion": {
86
+ "additionalProperties": false,
87
+ "properties": {
88
+ "major": {
89
+ "exclusiveMinimum": 0,
90
+ "maximum": 9007199254740991,
91
+ "type": "integer"
92
+ },
93
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
94
+ },
95
+ "required": ["major", "minor"],
96
+ "type": "object"
97
+ },
98
+ "correlation": {
99
+ "additionalProperties": false,
100
+ "properties": {
101
+ "causationCommandId": {},
102
+ "parentEventId": {},
103
+ "traceId": {}
104
+ },
105
+ "required": ["traceId"],
106
+ "type": "object"
107
+ },
108
+ "data": {
109
+ "additionalProperties": false,
110
+ "properties": {
111
+ "authenticated": { "const": true, "type": "boolean" },
112
+ "principal": {
113
+ "additionalProperties": false,
114
+ "properties": {
115
+ "kind": { "const": "agent_hq_service", "type": "string" },
116
+ "principalId": { "pattern": "^svc_[a-z][a-z0-9-]*$", "type": "string" },
117
+ "projectIds": { "items": {}, "maxItems": 256, "type": "array" },
118
+ "scopes": {
119
+ "items": {
120
+ "maxLength": 96,
121
+ "minLength": 3,
122
+ "pattern": "^[a-z][a-z0-9.-]*:[a-z][a-z0-9.-]*$",
123
+ "type": "string"
124
+ },
125
+ "maxItems": 64,
126
+ "type": "array"
127
+ },
128
+ "workspaceIds": { "items": {}, "maxItems": 256, "type": "array" }
129
+ },
130
+ "required": [
131
+ "kind",
132
+ "principalId",
133
+ "scopes",
134
+ "workspaceIds",
135
+ "projectIds"
136
+ ],
137
+ "type": "object"
138
+ }
139
+ },
140
+ "required": ["authenticated", "principal"],
141
+ "type": "object"
142
+ },
143
+ "requestId": {}
144
+ },
145
+ "required": ["contractVersion", "requestId", "correlation", "data"],
146
+ "type": "object"
147
+ }
148
+ }
149
+ },
150
+ "description": "Successful response"
151
+ },
152
+ "default": {
153
+ "content": {
154
+ "application/json": {
155
+ "schema": {
156
+ "additionalProperties": false,
157
+ "properties": {
158
+ "contractVersion": {
159
+ "additionalProperties": false,
160
+ "properties": {
161
+ "major": {
162
+ "exclusiveMinimum": 0,
163
+ "maximum": 9007199254740991,
164
+ "type": "integer"
165
+ },
166
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
167
+ },
168
+ "required": ["major", "minor"],
169
+ "type": "object"
170
+ },
171
+ "correlation": {
172
+ "additionalProperties": false,
173
+ "properties": {
174
+ "causationCommandId": {},
175
+ "parentEventId": {},
176
+ "traceId": {}
177
+ },
178
+ "required": ["traceId"],
179
+ "type": "object"
180
+ },
181
+ "error": {
182
+ "additionalProperties": false,
183
+ "properties": {
184
+ "class": {
185
+ "enum": [
186
+ "validation",
187
+ "authentication",
188
+ "authorization",
189
+ "conflict",
190
+ "stale_reference",
191
+ "capability_mismatch",
192
+ "runtime_unavailable",
193
+ "internal"
194
+ ],
195
+ "type": "string"
196
+ },
197
+ "code": {
198
+ "maxLength": 96,
199
+ "minLength": 1,
200
+ "pattern": "^[A-Z][A-Z0-9_]*$",
201
+ "type": "string"
202
+ },
203
+ "details": {
204
+ "additionalProperties": {},
205
+ "propertyNames": { "type": "string" },
206
+ "type": "object"
207
+ },
208
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
209
+ "retryable": { "type": "boolean" }
210
+ },
211
+ "required": ["class", "code", "message", "retryable"],
212
+ "type": "object"
213
+ },
214
+ "requestId": {}
215
+ },
216
+ "required": ["contractVersion", "requestId", "correlation", "error"],
217
+ "type": "object"
218
+ }
219
+ }
220
+ },
221
+ "description": "Normalized error response"
222
+ }
223
+ },
224
+ "security": [{ "serviceBearer": [] }]
225
+ }
226
+ },
227
+ "/v1/context-packages/resolve": {
228
+ "post": {
229
+ "operationId": "context-package.resolve",
230
+ "requestBody": {
231
+ "content": {
232
+ "application/json": {
233
+ "schema": {
234
+ "properties": {
235
+ "caller": {
236
+ "properties": {
237
+ "servicePrincipalId": {
238
+ "maxLength": 64,
239
+ "minLength": 5,
240
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
241
+ "type": "string"
242
+ }
243
+ },
244
+ "required": ["servicePrincipalId"],
245
+ "type": "object"
246
+ },
247
+ "contractVersion": {
248
+ "additionalProperties": false,
249
+ "properties": {
250
+ "major": {
251
+ "exclusiveMinimum": 0,
252
+ "maximum": 9007199254740991,
253
+ "type": "integer"
254
+ },
255
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
256
+ },
257
+ "required": ["major", "minor"],
258
+ "type": "object"
259
+ },
260
+ "correlation": {
261
+ "properties": {
262
+ "causationCommandId": {
263
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
264
+ "type": "string"
265
+ },
266
+ "parentEventId": {
267
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
268
+ "type": "string"
269
+ },
270
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
271
+ },
272
+ "required": ["traceId"],
273
+ "type": "object"
274
+ },
275
+ "operation": { "const": "context-package.resolve", "type": "string" },
276
+ "parameters": {
277
+ "properties": {
278
+ "contextPackageId": {
279
+ "pattern": "^ctx_[0-9A-HJKMNP-TV-Z]{26}$",
280
+ "type": "string"
281
+ }
282
+ },
283
+ "required": ["contextPackageId"],
284
+ "type": "object"
285
+ },
286
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
287
+ "requestedAt": {
288
+ "format": "date-time",
289
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
290
+ "type": "string"
291
+ },
292
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
293
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
294
+ },
295
+ "required": [
296
+ "caller",
297
+ "contractVersion",
298
+ "requestId",
299
+ "workspaceId",
300
+ "correlation",
301
+ "operation",
302
+ "requestedAt",
303
+ "parameters"
304
+ ],
305
+ "type": "object"
306
+ }
307
+ }
308
+ },
309
+ "required": true
310
+ },
311
+ "responses": {
312
+ "200": {
313
+ "content": {
314
+ "application/json": {
315
+ "schema": {
316
+ "additionalProperties": false,
317
+ "properties": {
318
+ "contractVersion": {
319
+ "additionalProperties": false,
320
+ "properties": {
321
+ "major": {
322
+ "exclusiveMinimum": 0,
323
+ "maximum": 9007199254740991,
324
+ "type": "integer"
325
+ },
326
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
327
+ },
328
+ "required": ["major", "minor"],
329
+ "type": "object"
330
+ },
331
+ "correlation": {
332
+ "additionalProperties": false,
333
+ "properties": {
334
+ "causationCommandId": {},
335
+ "parentEventId": {},
336
+ "traceId": {}
337
+ },
338
+ "required": ["traceId"],
339
+ "type": "object"
340
+ },
341
+ "data": {
342
+ "additionalProperties": false,
343
+ "properties": {
344
+ "contextPackage": {
345
+ "additionalProperties": false,
346
+ "properties": {
347
+ "compilerVersion": {
348
+ "maxLength": 64,
349
+ "minLength": 1,
350
+ "type": "string"
351
+ },
352
+ "contentDigest": {
353
+ "pattern": "^sha256:[a-f0-9]{64}$",
354
+ "type": "string"
355
+ },
356
+ "contextPackageId": {},
357
+ "schemaVersion": {
358
+ "exclusiveMinimum": 0,
359
+ "maximum": 9007199254740991,
360
+ "type": "integer"
361
+ }
362
+ },
363
+ "required": [
364
+ "contextPackageId",
365
+ "contentDigest",
366
+ "schemaVersion",
367
+ "compilerVersion"
368
+ ],
369
+ "type": "object"
370
+ }
371
+ },
372
+ "required": ["contextPackage"],
373
+ "type": "object"
374
+ },
375
+ "requestId": {}
376
+ },
377
+ "required": ["contractVersion", "requestId", "correlation", "data"],
378
+ "type": "object"
379
+ }
380
+ }
381
+ },
382
+ "description": "Successful response"
383
+ },
384
+ "default": {
385
+ "content": {
386
+ "application/json": {
387
+ "schema": {
388
+ "additionalProperties": false,
389
+ "properties": {
390
+ "contractVersion": {
391
+ "additionalProperties": false,
392
+ "properties": {
393
+ "major": {
394
+ "exclusiveMinimum": 0,
395
+ "maximum": 9007199254740991,
396
+ "type": "integer"
397
+ },
398
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
399
+ },
400
+ "required": ["major", "minor"],
401
+ "type": "object"
402
+ },
403
+ "correlation": {
404
+ "additionalProperties": false,
405
+ "properties": {
406
+ "causationCommandId": {},
407
+ "parentEventId": {},
408
+ "traceId": {}
409
+ },
410
+ "required": ["traceId"],
411
+ "type": "object"
412
+ },
413
+ "error": {
414
+ "additionalProperties": false,
415
+ "properties": {
416
+ "class": {
417
+ "enum": [
418
+ "validation",
419
+ "authentication",
420
+ "authorization",
421
+ "conflict",
422
+ "stale_reference",
423
+ "capability_mismatch",
424
+ "runtime_unavailable",
425
+ "internal"
426
+ ],
427
+ "type": "string"
428
+ },
429
+ "code": {
430
+ "maxLength": 96,
431
+ "minLength": 1,
432
+ "pattern": "^[A-Z][A-Z0-9_]*$",
433
+ "type": "string"
434
+ },
435
+ "details": {
436
+ "additionalProperties": {},
437
+ "propertyNames": { "type": "string" },
438
+ "type": "object"
439
+ },
440
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
441
+ "retryable": { "type": "boolean" }
442
+ },
443
+ "required": ["class", "code", "message", "retryable"],
444
+ "type": "object"
445
+ },
446
+ "requestId": {}
447
+ },
448
+ "required": ["contractVersion", "requestId", "correlation", "error"],
449
+ "type": "object"
450
+ }
451
+ }
452
+ },
453
+ "description": "Normalized error response"
454
+ }
455
+ },
456
+ "security": [{ "serviceBearer": [] }]
457
+ }
458
+ },
459
+ "/v1/executions/accept": {
460
+ "post": {
461
+ "operationId": "execution.accept",
462
+ "requestBody": {
463
+ "content": {
464
+ "application/json": {
465
+ "schema": {
466
+ "properties": {
467
+ "caller": {
468
+ "properties": {
469
+ "servicePrincipalId": {
470
+ "maxLength": 64,
471
+ "minLength": 5,
472
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
473
+ "type": "string"
474
+ }
475
+ },
476
+ "required": ["servicePrincipalId"],
477
+ "type": "object"
478
+ },
479
+ "commandId": { "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
480
+ "contractVersion": {
481
+ "additionalProperties": false,
482
+ "properties": {
483
+ "major": {
484
+ "exclusiveMinimum": 0,
485
+ "maximum": 9007199254740991,
486
+ "type": "integer"
487
+ },
488
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
489
+ },
490
+ "required": ["major", "minor"],
491
+ "type": "object"
492
+ },
493
+ "correlation": {
494
+ "properties": {
495
+ "causationCommandId": {
496
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
497
+ "type": "string"
498
+ },
499
+ "parentEventId": {
500
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
501
+ "type": "string"
502
+ },
503
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
504
+ },
505
+ "required": ["traceId"],
506
+ "type": "object"
507
+ },
508
+ "idempotencyKey": {
509
+ "maxLength": 128,
510
+ "minLength": 16,
511
+ "pattern": "^[A-Za-z0-9._:-]+$",
512
+ "type": "string"
513
+ },
514
+ "issuedAt": {
515
+ "format": "date-time",
516
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
517
+ "type": "string"
518
+ },
519
+ "operation": { "const": "execution.accept", "type": "string" },
520
+ "payload": {
521
+ "properties": {
522
+ "agentId": { "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
523
+ "deadlineAt": {
524
+ "format": "date-time",
525
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
526
+ "type": "string"
527
+ },
528
+ "executionPlan": {
529
+ "properties": {
530
+ "contentDigest": { "pattern": "^sha256:[a-f0-9]{64}$", "type": "string" },
531
+ "executionPlanId": {
532
+ "pattern": "^pln_[0-9A-HJKMNP-TV-Z]{26}$",
533
+ "type": "string"
534
+ },
535
+ "schemaVersion": {
536
+ "exclusiveMinimum": 0,
537
+ "maximum": 9007199254740991,
538
+ "type": "integer"
539
+ }
540
+ },
541
+ "required": ["executionPlanId", "contentDigest", "schemaVersion"],
542
+ "type": "object"
543
+ },
544
+ "parentExecutionId": {
545
+ "pattern": "^exe_[0-9A-HJKMNP-TV-Z]{26}$",
546
+ "type": "string"
547
+ },
548
+ "retentionExpiresAt": {
549
+ "format": "date-time",
550
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
551
+ "type": "string"
552
+ },
553
+ "taskId": { "pattern": "^tsk_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
554
+ },
555
+ "required": ["taskId", "agentId", "executionPlan", "retentionExpiresAt"],
556
+ "type": "object"
557
+ },
558
+ "payloadHash": { "pattern": "^[a-f0-9]{64}$", "type": "string" },
559
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
560
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
561
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
562
+ },
563
+ "required": [
564
+ "caller",
565
+ "contractVersion",
566
+ "requestId",
567
+ "workspaceId",
568
+ "projectId",
569
+ "correlation",
570
+ "commandId",
571
+ "idempotencyKey",
572
+ "payloadHash",
573
+ "operation",
574
+ "issuedAt",
575
+ "payload"
576
+ ],
577
+ "type": "object"
578
+ }
579
+ }
580
+ },
581
+ "required": true
582
+ },
583
+ "responses": {
584
+ "200": {
585
+ "content": {
586
+ "application/json": {
587
+ "schema": {
588
+ "additionalProperties": false,
589
+ "properties": {
590
+ "contractVersion": {
591
+ "additionalProperties": false,
592
+ "properties": {
593
+ "major": {
594
+ "exclusiveMinimum": 0,
595
+ "maximum": 9007199254740991,
596
+ "type": "integer"
597
+ },
598
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
599
+ },
600
+ "required": ["major", "minor"],
601
+ "type": "object"
602
+ },
603
+ "correlation": {
604
+ "additionalProperties": false,
605
+ "properties": {
606
+ "causationCommandId": {},
607
+ "parentEventId": {},
608
+ "traceId": {}
609
+ },
610
+ "required": ["traceId"],
611
+ "type": "object"
612
+ },
613
+ "data": {
614
+ "additionalProperties": false,
615
+ "properties": {
616
+ "commandId": {},
617
+ "errorReference": {
618
+ "maxLength": 512,
619
+ "minLength": 1,
620
+ "pattern": "^[a-z][a-z0-9+.-]*:\\/\\/\\S+$",
621
+ "type": "string"
622
+ },
623
+ "executionId": {},
624
+ "executionPlan": {
625
+ "additionalProperties": false,
626
+ "properties": {
627
+ "contentDigest": {
628
+ "pattern": "^sha256:[a-f0-9]{64}$",
629
+ "type": "string"
630
+ },
631
+ "executionPlanId": {},
632
+ "schemaVersion": {
633
+ "exclusiveMinimum": 0,
634
+ "maximum": 9007199254740991,
635
+ "type": "integer"
636
+ }
637
+ },
638
+ "required": ["executionPlanId", "contentDigest", "schemaVersion"],
639
+ "type": "object"
640
+ },
641
+ "replayed": { "type": "boolean" },
642
+ "resultReference": {},
643
+ "status": {
644
+ "enum": [
645
+ "accepted",
646
+ "processing",
647
+ "completed",
648
+ "failed",
649
+ "reconciliation_required"
650
+ ],
651
+ "type": "string"
652
+ }
653
+ },
654
+ "required": [
655
+ "commandId",
656
+ "executionId",
657
+ "executionPlan",
658
+ "status",
659
+ "replayed"
660
+ ],
661
+ "type": "object"
662
+ },
663
+ "requestId": {}
664
+ },
665
+ "required": ["contractVersion", "requestId", "correlation", "data"],
666
+ "type": "object"
667
+ }
668
+ }
669
+ },
670
+ "description": "Successful response"
671
+ },
672
+ "default": {
673
+ "content": {
674
+ "application/json": {
675
+ "schema": {
676
+ "additionalProperties": false,
677
+ "properties": {
678
+ "contractVersion": {
679
+ "additionalProperties": false,
680
+ "properties": {
681
+ "major": {
682
+ "exclusiveMinimum": 0,
683
+ "maximum": 9007199254740991,
684
+ "type": "integer"
685
+ },
686
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
687
+ },
688
+ "required": ["major", "minor"],
689
+ "type": "object"
690
+ },
691
+ "correlation": {
692
+ "additionalProperties": false,
693
+ "properties": {
694
+ "causationCommandId": {},
695
+ "parentEventId": {},
696
+ "traceId": {}
697
+ },
698
+ "required": ["traceId"],
699
+ "type": "object"
700
+ },
701
+ "error": {
702
+ "additionalProperties": false,
703
+ "properties": {
704
+ "class": {
705
+ "enum": [
706
+ "validation",
707
+ "authentication",
708
+ "authorization",
709
+ "conflict",
710
+ "stale_reference",
711
+ "capability_mismatch",
712
+ "runtime_unavailable",
713
+ "internal"
714
+ ],
715
+ "type": "string"
716
+ },
717
+ "code": {
718
+ "maxLength": 96,
719
+ "minLength": 1,
720
+ "pattern": "^[A-Z][A-Z0-9_]*$",
721
+ "type": "string"
722
+ },
723
+ "details": {
724
+ "additionalProperties": {},
725
+ "propertyNames": { "type": "string" },
726
+ "type": "object"
727
+ },
728
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
729
+ "retryable": { "type": "boolean" }
730
+ },
731
+ "required": ["class", "code", "message", "retryable"],
732
+ "type": "object"
733
+ },
734
+ "requestId": {}
735
+ },
736
+ "required": ["contractVersion", "requestId", "correlation", "error"],
737
+ "type": "object"
738
+ }
739
+ }
740
+ },
741
+ "description": "Normalized error response"
742
+ }
743
+ },
744
+ "security": [{ "serviceBearer": [] }]
745
+ }
746
+ },
747
+ "/v1/executions/validate": {
748
+ "post": {
749
+ "operationId": "execution.validate",
750
+ "requestBody": {
751
+ "content": {
752
+ "application/json": {
753
+ "schema": {
754
+ "properties": {
755
+ "caller": {
756
+ "properties": {
757
+ "servicePrincipalId": {
758
+ "maxLength": 64,
759
+ "minLength": 5,
760
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
761
+ "type": "string"
762
+ }
763
+ },
764
+ "required": ["servicePrincipalId"],
765
+ "type": "object"
766
+ },
767
+ "commandId": { "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
768
+ "contractVersion": {
769
+ "additionalProperties": false,
770
+ "properties": {
771
+ "major": {
772
+ "exclusiveMinimum": 0,
773
+ "maximum": 9007199254740991,
774
+ "type": "integer"
775
+ },
776
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
777
+ },
778
+ "required": ["major", "minor"],
779
+ "type": "object"
780
+ },
781
+ "correlation": {
782
+ "properties": {
783
+ "causationCommandId": {
784
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
785
+ "type": "string"
786
+ },
787
+ "parentEventId": {
788
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
789
+ "type": "string"
790
+ },
791
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
792
+ },
793
+ "required": ["traceId"],
794
+ "type": "object"
795
+ },
796
+ "idempotencyKey": {
797
+ "maxLength": 128,
798
+ "minLength": 16,
799
+ "pattern": "^[A-Za-z0-9._:-]+$",
800
+ "type": "string"
801
+ },
802
+ "issuedAt": {
803
+ "format": "date-time",
804
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
805
+ "type": "string"
806
+ },
807
+ "operation": { "const": "execution.validate", "type": "string" },
808
+ "payload": {
809
+ "properties": {
810
+ "agentId": { "pattern": "^agt_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
811
+ "contextPackage": {
812
+ "properties": {
813
+ "compilerVersion": { "maxLength": 64, "minLength": 1, "type": "string" },
814
+ "contentDigest": { "pattern": "^sha256:[a-f0-9]{64}$", "type": "string" },
815
+ "contextPackageId": {
816
+ "pattern": "^ctx_[0-9A-HJKMNP-TV-Z]{26}$",
817
+ "type": "string"
818
+ },
819
+ "schemaVersion": {
820
+ "exclusiveMinimum": 0,
821
+ "maximum": 9007199254740991,
822
+ "type": "integer"
823
+ }
824
+ },
825
+ "required": [
826
+ "contextPackageId",
827
+ "contentDigest",
828
+ "schemaVersion",
829
+ "compilerVersion"
830
+ ],
831
+ "type": "object"
832
+ },
833
+ "outputContractRef": { "maxLength": 512, "minLength": 1, "type": "string" },
834
+ "policySnapshot": {
835
+ "properties": {
836
+ "contentDigest": { "pattern": "^sha256:[a-f0-9]{64}$", "type": "string" },
837
+ "policySnapshotId": {
838
+ "maxLength": 256,
839
+ "minLength": 1,
840
+ "type": "string"
841
+ },
842
+ "revision": {
843
+ "exclusiveMinimum": 0,
844
+ "maximum": 9007199254740991,
845
+ "type": "integer"
846
+ }
847
+ },
848
+ "required": ["policySnapshotId", "revision", "contentDigest"],
849
+ "type": "object"
850
+ },
851
+ "profileVersionId": {
852
+ "pattern": "^pfv_[0-9A-HJKMNP-TV-Z]{26}$",
853
+ "type": "string"
854
+ },
855
+ "projectState": {
856
+ "properties": {
857
+ "projectId": {
858
+ "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$",
859
+ "type": "string"
860
+ },
861
+ "revision": {
862
+ "maximum": 9007199254740991,
863
+ "minimum": 0,
864
+ "type": "integer"
865
+ },
866
+ "workspaceId": {
867
+ "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$",
868
+ "type": "string"
869
+ }
870
+ },
871
+ "required": ["workspaceId", "projectId", "revision"],
872
+ "type": "object"
873
+ },
874
+ "runtimeRequirements": {
875
+ "items": {
876
+ "maxLength": 128,
877
+ "minLength": 1,
878
+ "pattern": "^[a-z][a-z0-9.-]*$",
879
+ "type": "string"
880
+ },
881
+ "maxItems": 128,
882
+ "type": "array"
883
+ },
884
+ "skillVersionIds": {
885
+ "items": { "pattern": "^skv_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
886
+ "maxItems": 128,
887
+ "type": "array"
888
+ },
889
+ "taskId": { "pattern": "^tsk_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
890
+ },
891
+ "required": [
892
+ "taskId",
893
+ "agentId",
894
+ "profileVersionId",
895
+ "skillVersionIds",
896
+ "projectState",
897
+ "contextPackage",
898
+ "policySnapshot",
899
+ "runtimeRequirements",
900
+ "outputContractRef"
901
+ ],
902
+ "type": "object"
903
+ },
904
+ "payloadHash": { "pattern": "^[a-f0-9]{64}$", "type": "string" },
905
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
906
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
907
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
908
+ },
909
+ "required": [
910
+ "caller",
911
+ "contractVersion",
912
+ "requestId",
913
+ "workspaceId",
914
+ "correlation",
915
+ "commandId",
916
+ "idempotencyKey",
917
+ "payloadHash",
918
+ "operation",
919
+ "issuedAt",
920
+ "payload"
921
+ ],
922
+ "type": "object"
923
+ }
924
+ }
925
+ },
926
+ "required": true
927
+ },
928
+ "responses": {
929
+ "200": {
930
+ "content": {
931
+ "application/json": {
932
+ "schema": {
933
+ "additionalProperties": false,
934
+ "properties": {
935
+ "contractVersion": {
936
+ "additionalProperties": false,
937
+ "properties": {
938
+ "major": {
939
+ "exclusiveMinimum": 0,
940
+ "maximum": 9007199254740991,
941
+ "type": "integer"
942
+ },
943
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
944
+ },
945
+ "required": ["major", "minor"],
946
+ "type": "object"
947
+ },
948
+ "correlation": {
949
+ "additionalProperties": false,
950
+ "properties": {
951
+ "causationCommandId": {},
952
+ "parentEventId": {},
953
+ "traceId": {}
954
+ },
955
+ "required": ["traceId"],
956
+ "type": "object"
957
+ },
958
+ "data": {
959
+ "additionalProperties": false,
960
+ "properties": {
961
+ "executionPlan": {
962
+ "additionalProperties": false,
963
+ "properties": {
964
+ "contentDigest": {
965
+ "pattern": "^sha256:[a-f0-9]{64}$",
966
+ "type": "string"
967
+ },
968
+ "executionPlanId": {}
969
+ },
970
+ "required": ["executionPlanId", "contentDigest"],
971
+ "type": "object"
972
+ },
973
+ "valid": { "const": true, "type": "boolean" }
974
+ },
975
+ "required": ["valid", "executionPlan"],
976
+ "type": "object"
977
+ },
978
+ "requestId": {}
979
+ },
980
+ "required": ["contractVersion", "requestId", "correlation", "data"],
981
+ "type": "object"
982
+ }
983
+ }
984
+ },
985
+ "description": "Successful response"
986
+ },
987
+ "default": {
988
+ "content": {
989
+ "application/json": {
990
+ "schema": {
991
+ "additionalProperties": false,
992
+ "properties": {
993
+ "contractVersion": {
994
+ "additionalProperties": false,
995
+ "properties": {
996
+ "major": {
997
+ "exclusiveMinimum": 0,
998
+ "maximum": 9007199254740991,
999
+ "type": "integer"
1000
+ },
1001
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
1002
+ },
1003
+ "required": ["major", "minor"],
1004
+ "type": "object"
1005
+ },
1006
+ "correlation": {
1007
+ "additionalProperties": false,
1008
+ "properties": {
1009
+ "causationCommandId": {},
1010
+ "parentEventId": {},
1011
+ "traceId": {}
1012
+ },
1013
+ "required": ["traceId"],
1014
+ "type": "object"
1015
+ },
1016
+ "error": {
1017
+ "additionalProperties": false,
1018
+ "properties": {
1019
+ "class": {
1020
+ "enum": [
1021
+ "validation",
1022
+ "authentication",
1023
+ "authorization",
1024
+ "conflict",
1025
+ "stale_reference",
1026
+ "capability_mismatch",
1027
+ "runtime_unavailable",
1028
+ "internal"
1029
+ ],
1030
+ "type": "string"
1031
+ },
1032
+ "code": {
1033
+ "maxLength": 96,
1034
+ "minLength": 1,
1035
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1036
+ "type": "string"
1037
+ },
1038
+ "details": {
1039
+ "additionalProperties": {},
1040
+ "propertyNames": { "type": "string" },
1041
+ "type": "object"
1042
+ },
1043
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
1044
+ "retryable": { "type": "boolean" }
1045
+ },
1046
+ "required": ["class", "code", "message", "retryable"],
1047
+ "type": "object"
1048
+ },
1049
+ "requestId": {}
1050
+ },
1051
+ "required": ["contractVersion", "requestId", "correlation", "error"],
1052
+ "type": "object"
1053
+ }
1054
+ }
1055
+ },
1056
+ "description": "Normalized error response"
1057
+ }
1058
+ },
1059
+ "security": [{ "serviceBearer": [] }]
1060
+ }
1061
+ },
1062
+ "/v1/external-sessions/get": {
1063
+ "post": {
1064
+ "operationId": "external-session.get",
1065
+ "requestBody": {
1066
+ "content": {
1067
+ "application/json": {
1068
+ "schema": {
1069
+ "properties": {
1070
+ "caller": {
1071
+ "properties": {
1072
+ "servicePrincipalId": {
1073
+ "maxLength": 64,
1074
+ "minLength": 5,
1075
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
1076
+ "type": "string"
1077
+ }
1078
+ },
1079
+ "required": ["servicePrincipalId"],
1080
+ "type": "object"
1081
+ },
1082
+ "contractVersion": {
1083
+ "additionalProperties": false,
1084
+ "properties": {
1085
+ "major": {
1086
+ "exclusiveMinimum": 0,
1087
+ "maximum": 9007199254740991,
1088
+ "type": "integer"
1089
+ },
1090
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
1091
+ },
1092
+ "required": ["major", "minor"],
1093
+ "type": "object"
1094
+ },
1095
+ "correlation": {
1096
+ "properties": {
1097
+ "causationCommandId": {
1098
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
1099
+ "type": "string"
1100
+ },
1101
+ "parentEventId": {
1102
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
1103
+ "type": "string"
1104
+ },
1105
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
1106
+ },
1107
+ "required": ["traceId"],
1108
+ "type": "object"
1109
+ },
1110
+ "operation": { "const": "external-session.get", "type": "string" },
1111
+ "parameters": {
1112
+ "properties": {
1113
+ "externalSessionId": {
1114
+ "pattern": "^ses_[0-9A-HJKMNP-TV-Z]{26}$",
1115
+ "type": "string"
1116
+ },
1117
+ "runtimeNodeRefId": {
1118
+ "pattern": "^rnr_[0-9A-HJKMNP-TV-Z]{26}$",
1119
+ "type": "string"
1120
+ }
1121
+ },
1122
+ "required": ["externalSessionId"],
1123
+ "type": "object"
1124
+ },
1125
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
1126
+ "requestedAt": {
1127
+ "format": "date-time",
1128
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
1129
+ "type": "string"
1130
+ },
1131
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
1132
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
1133
+ },
1134
+ "required": [
1135
+ "caller",
1136
+ "contractVersion",
1137
+ "requestId",
1138
+ "workspaceId",
1139
+ "correlation",
1140
+ "requestedAt",
1141
+ "operation",
1142
+ "parameters"
1143
+ ],
1144
+ "type": "object"
1145
+ }
1146
+ }
1147
+ },
1148
+ "required": true
1149
+ },
1150
+ "responses": {
1151
+ "200": {
1152
+ "content": {
1153
+ "application/json": {
1154
+ "schema": {
1155
+ "additionalProperties": false,
1156
+ "properties": {
1157
+ "contractVersion": {
1158
+ "additionalProperties": false,
1159
+ "properties": {
1160
+ "major": {
1161
+ "exclusiveMinimum": 0,
1162
+ "maximum": 9007199254740991,
1163
+ "type": "integer"
1164
+ },
1165
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
1166
+ },
1167
+ "required": ["major", "minor"],
1168
+ "type": "object"
1169
+ },
1170
+ "correlation": {
1171
+ "additionalProperties": false,
1172
+ "properties": {
1173
+ "causationCommandId": {},
1174
+ "parentEventId": {},
1175
+ "traceId": {}
1176
+ },
1177
+ "required": ["traceId"],
1178
+ "type": "object"
1179
+ },
1180
+ "data": {
1181
+ "additionalProperties": false,
1182
+ "properties": {
1183
+ "externalSession": {
1184
+ "additionalProperties": false,
1185
+ "properties": {
1186
+ "capabilitySummary": {
1187
+ "additionalProperties": false,
1188
+ "properties": {
1189
+ "controls": {
1190
+ "additionalProperties": false,
1191
+ "properties": {
1192
+ "close": {
1193
+ "anyOf": [
1194
+ {
1195
+ "additionalProperties": false,
1196
+ "properties": {
1197
+ "available": { "const": true, "type": "boolean" }
1198
+ },
1199
+ "required": ["available"],
1200
+ "type": "object"
1201
+ },
1202
+ {
1203
+ "additionalProperties": false,
1204
+ "properties": {
1205
+ "available": { "const": false, "type": "boolean" },
1206
+ "reason": {
1207
+ "maxLength": 128,
1208
+ "minLength": 1,
1209
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1210
+ "type": "string"
1211
+ }
1212
+ },
1213
+ "required": ["available", "reason"],
1214
+ "type": "object"
1215
+ }
1216
+ ]
1217
+ },
1218
+ "history": {
1219
+ "anyOf": [
1220
+ {
1221
+ "additionalProperties": false,
1222
+ "properties": {
1223
+ "available": { "const": true, "type": "boolean" }
1224
+ },
1225
+ "required": ["available"],
1226
+ "type": "object"
1227
+ },
1228
+ {
1229
+ "additionalProperties": false,
1230
+ "properties": {
1231
+ "available": { "const": false, "type": "boolean" },
1232
+ "reason": {
1233
+ "maxLength": 128,
1234
+ "minLength": 1,
1235
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1236
+ "type": "string"
1237
+ }
1238
+ },
1239
+ "required": ["available", "reason"],
1240
+ "type": "object"
1241
+ }
1242
+ ]
1243
+ },
1244
+ "load": {
1245
+ "anyOf": [
1246
+ {
1247
+ "additionalProperties": false,
1248
+ "properties": {
1249
+ "available": { "const": true, "type": "boolean" }
1250
+ },
1251
+ "required": ["available"],
1252
+ "type": "object"
1253
+ },
1254
+ {
1255
+ "additionalProperties": false,
1256
+ "properties": {
1257
+ "available": { "const": false, "type": "boolean" },
1258
+ "reason": {
1259
+ "maxLength": 128,
1260
+ "minLength": 1,
1261
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1262
+ "type": "string"
1263
+ }
1264
+ },
1265
+ "required": ["available", "reason"],
1266
+ "type": "object"
1267
+ }
1268
+ ]
1269
+ },
1270
+ "reference": {
1271
+ "anyOf": [
1272
+ {
1273
+ "additionalProperties": false,
1274
+ "properties": {
1275
+ "available": { "const": true, "type": "boolean" }
1276
+ },
1277
+ "required": ["available"],
1278
+ "type": "object"
1279
+ },
1280
+ {
1281
+ "additionalProperties": false,
1282
+ "properties": {
1283
+ "available": { "const": false, "type": "boolean" },
1284
+ "reason": {
1285
+ "maxLength": 128,
1286
+ "minLength": 1,
1287
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1288
+ "type": "string"
1289
+ }
1290
+ },
1291
+ "required": ["available", "reason"],
1292
+ "type": "object"
1293
+ }
1294
+ ]
1295
+ },
1296
+ "resume": {
1297
+ "anyOf": [
1298
+ {
1299
+ "additionalProperties": false,
1300
+ "properties": {
1301
+ "available": { "const": true, "type": "boolean" }
1302
+ },
1303
+ "required": ["available"],
1304
+ "type": "object"
1305
+ },
1306
+ {
1307
+ "additionalProperties": false,
1308
+ "properties": {
1309
+ "available": { "const": false, "type": "boolean" },
1310
+ "reason": {
1311
+ "maxLength": 128,
1312
+ "minLength": 1,
1313
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1314
+ "type": "string"
1315
+ }
1316
+ },
1317
+ "required": ["available", "reason"],
1318
+ "type": "object"
1319
+ }
1320
+ ]
1321
+ }
1322
+ },
1323
+ "required": ["reference", "resume", "load", "close", "history"],
1324
+ "type": "object"
1325
+ },
1326
+ "operations": {
1327
+ "items": {
1328
+ "maxLength": 128,
1329
+ "minLength": 1,
1330
+ "pattern": "^[a-z][a-z0-9.-]*$",
1331
+ "type": "string"
1332
+ },
1333
+ "maxItems": 16,
1334
+ "type": "array"
1335
+ },
1336
+ "version": {
1337
+ "exclusiveMinimum": 0,
1338
+ "maximum": 9007199254740991,
1339
+ "type": "integer"
1340
+ }
1341
+ },
1342
+ "required": ["version", "operations", "controls"],
1343
+ "type": "object"
1344
+ },
1345
+ "display": {
1346
+ "additionalProperties": false,
1347
+ "properties": {
1348
+ "displayName": {
1349
+ "maxLength": 128,
1350
+ "minLength": 1,
1351
+ "type": "string"
1352
+ },
1353
+ "origin": {
1354
+ "enum": ["native_discovery", "created_through_control_plane"],
1355
+ "type": "string"
1356
+ }
1357
+ },
1358
+ "required": ["origin"],
1359
+ "type": "object"
1360
+ },
1361
+ "externalSessionId": {},
1362
+ "freshness": {
1363
+ "additionalProperties": false,
1364
+ "properties": {
1365
+ "expiresAt": {
1366
+ "format": "date-time",
1367
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
1368
+ "type": "string"
1369
+ },
1370
+ "observedAt": {
1371
+ "format": "date-time",
1372
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
1373
+ "type": "string"
1374
+ },
1375
+ "state": {
1376
+ "enum": ["fresh", "stale", "expired", "unknown"],
1377
+ "type": "string"
1378
+ }
1379
+ },
1380
+ "required": ["state", "observedAt"],
1381
+ "type": "object"
1382
+ },
1383
+ "limitations": {
1384
+ "items": {
1385
+ "maxLength": 128,
1386
+ "minLength": 1,
1387
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1388
+ "type": "string"
1389
+ },
1390
+ "maxItems": 64,
1391
+ "type": "array"
1392
+ },
1393
+ "projectId": {},
1394
+ "recoverable": { "type": "boolean" },
1395
+ "runtimeConnectionId": {},
1396
+ "state": {
1397
+ "enum": [
1398
+ "active",
1399
+ "closed",
1400
+ "stale",
1401
+ "offline",
1402
+ "runtime_missing",
1403
+ "capability_changed",
1404
+ "removed",
1405
+ "revoked"
1406
+ ],
1407
+ "type": "string"
1408
+ }
1409
+ },
1410
+ "required": [
1411
+ "externalSessionId",
1412
+ "runtimeConnectionId",
1413
+ "state",
1414
+ "recoverable",
1415
+ "display",
1416
+ "freshness",
1417
+ "capabilitySummary",
1418
+ "limitations"
1419
+ ],
1420
+ "type": "object"
1421
+ }
1422
+ },
1423
+ "required": ["externalSession"],
1424
+ "type": "object"
1425
+ },
1426
+ "requestId": {}
1427
+ },
1428
+ "required": ["contractVersion", "requestId", "correlation", "data"],
1429
+ "type": "object"
1430
+ }
1431
+ }
1432
+ },
1433
+ "description": "Successful response"
1434
+ },
1435
+ "default": {
1436
+ "content": {
1437
+ "application/json": {
1438
+ "schema": {
1439
+ "additionalProperties": false,
1440
+ "properties": {
1441
+ "contractVersion": {
1442
+ "additionalProperties": false,
1443
+ "properties": {
1444
+ "major": {
1445
+ "exclusiveMinimum": 0,
1446
+ "maximum": 9007199254740991,
1447
+ "type": "integer"
1448
+ },
1449
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
1450
+ },
1451
+ "required": ["major", "minor"],
1452
+ "type": "object"
1453
+ },
1454
+ "correlation": {
1455
+ "additionalProperties": false,
1456
+ "properties": {
1457
+ "causationCommandId": {},
1458
+ "parentEventId": {},
1459
+ "traceId": {}
1460
+ },
1461
+ "required": ["traceId"],
1462
+ "type": "object"
1463
+ },
1464
+ "error": {
1465
+ "additionalProperties": false,
1466
+ "properties": {
1467
+ "class": {
1468
+ "enum": [
1469
+ "validation",
1470
+ "authentication",
1471
+ "authorization",
1472
+ "conflict",
1473
+ "stale_reference",
1474
+ "capability_mismatch",
1475
+ "runtime_unavailable",
1476
+ "internal"
1477
+ ],
1478
+ "type": "string"
1479
+ },
1480
+ "code": {
1481
+ "maxLength": 96,
1482
+ "minLength": 1,
1483
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1484
+ "type": "string"
1485
+ },
1486
+ "details": {
1487
+ "additionalProperties": {},
1488
+ "propertyNames": { "type": "string" },
1489
+ "type": "object"
1490
+ },
1491
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
1492
+ "retryable": { "type": "boolean" }
1493
+ },
1494
+ "required": ["class", "code", "message", "retryable"],
1495
+ "type": "object"
1496
+ },
1497
+ "requestId": {}
1498
+ },
1499
+ "required": ["contractVersion", "requestId", "correlation", "error"],
1500
+ "type": "object"
1501
+ }
1502
+ }
1503
+ },
1504
+ "description": "Normalized error response"
1505
+ }
1506
+ },
1507
+ "security": [{ "serviceBearer": [] }]
1508
+ }
1509
+ },
1510
+ "/v1/external-sessions/list": {
1511
+ "post": {
1512
+ "operationId": "external-session.list",
1513
+ "requestBody": {
1514
+ "content": {
1515
+ "application/json": {
1516
+ "schema": {
1517
+ "properties": {
1518
+ "caller": {
1519
+ "properties": {
1520
+ "servicePrincipalId": {
1521
+ "maxLength": 64,
1522
+ "minLength": 5,
1523
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
1524
+ "type": "string"
1525
+ }
1526
+ },
1527
+ "required": ["servicePrincipalId"],
1528
+ "type": "object"
1529
+ },
1530
+ "contractVersion": {
1531
+ "additionalProperties": false,
1532
+ "properties": {
1533
+ "major": {
1534
+ "exclusiveMinimum": 0,
1535
+ "maximum": 9007199254740991,
1536
+ "type": "integer"
1537
+ },
1538
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
1539
+ },
1540
+ "required": ["major", "minor"],
1541
+ "type": "object"
1542
+ },
1543
+ "correlation": {
1544
+ "properties": {
1545
+ "causationCommandId": {
1546
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
1547
+ "type": "string"
1548
+ },
1549
+ "parentEventId": {
1550
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
1551
+ "type": "string"
1552
+ },
1553
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
1554
+ },
1555
+ "required": ["traceId"],
1556
+ "type": "object"
1557
+ },
1558
+ "operation": { "const": "external-session.list", "type": "string" },
1559
+ "parameters": {
1560
+ "properties": {
1561
+ "cursor": {
1562
+ "maxLength": 512,
1563
+ "minLength": 8,
1564
+ "pattern": "^cur_[A-Za-z0-9_-]+$",
1565
+ "type": "string"
1566
+ },
1567
+ "limit": { "default": 50, "maximum": 100, "minimum": 1, "type": "integer" },
1568
+ "runtimeConnectionId": {
1569
+ "pattern": "^rtc_[0-9A-HJKMNP-TV-Z]{26}$",
1570
+ "type": "string"
1571
+ },
1572
+ "runtimeNodeRefId": {
1573
+ "pattern": "^rnr_[0-9A-HJKMNP-TV-Z]{26}$",
1574
+ "type": "string"
1575
+ },
1576
+ "states": {
1577
+ "default": [],
1578
+ "items": {
1579
+ "enum": [
1580
+ "active",
1581
+ "closed",
1582
+ "stale",
1583
+ "offline",
1584
+ "runtime_missing",
1585
+ "capability_changed",
1586
+ "removed",
1587
+ "revoked"
1588
+ ],
1589
+ "type": "string"
1590
+ },
1591
+ "maxItems": 8,
1592
+ "type": "array"
1593
+ }
1594
+ },
1595
+ "type": "object"
1596
+ },
1597
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
1598
+ "requestedAt": {
1599
+ "format": "date-time",
1600
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
1601
+ "type": "string"
1602
+ },
1603
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
1604
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
1605
+ },
1606
+ "required": [
1607
+ "caller",
1608
+ "contractVersion",
1609
+ "requestId",
1610
+ "workspaceId",
1611
+ "correlation",
1612
+ "requestedAt",
1613
+ "operation",
1614
+ "parameters"
1615
+ ],
1616
+ "type": "object"
1617
+ }
1618
+ }
1619
+ },
1620
+ "required": true
1621
+ },
1622
+ "responses": {
1623
+ "200": {
1624
+ "content": {
1625
+ "application/json": {
1626
+ "schema": {
1627
+ "additionalProperties": false,
1628
+ "properties": {
1629
+ "contractVersion": {
1630
+ "additionalProperties": false,
1631
+ "properties": {
1632
+ "major": {
1633
+ "exclusiveMinimum": 0,
1634
+ "maximum": 9007199254740991,
1635
+ "type": "integer"
1636
+ },
1637
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
1638
+ },
1639
+ "required": ["major", "minor"],
1640
+ "type": "object"
1641
+ },
1642
+ "correlation": {
1643
+ "additionalProperties": false,
1644
+ "properties": {
1645
+ "causationCommandId": {},
1646
+ "parentEventId": {},
1647
+ "traceId": {}
1648
+ },
1649
+ "required": ["traceId"],
1650
+ "type": "object"
1651
+ },
1652
+ "data": {
1653
+ "additionalProperties": false,
1654
+ "properties": {
1655
+ "externalSessions": {
1656
+ "items": {
1657
+ "additionalProperties": false,
1658
+ "properties": {
1659
+ "capabilitySummary": {
1660
+ "additionalProperties": false,
1661
+ "properties": {
1662
+ "controls": {
1663
+ "additionalProperties": false,
1664
+ "properties": {
1665
+ "close": {
1666
+ "anyOf": [
1667
+ {
1668
+ "additionalProperties": false,
1669
+ "properties": {
1670
+ "available": { "const": true, "type": "boolean" }
1671
+ },
1672
+ "required": ["available"],
1673
+ "type": "object"
1674
+ },
1675
+ {
1676
+ "additionalProperties": false,
1677
+ "properties": {
1678
+ "available": { "const": false, "type": "boolean" },
1679
+ "reason": {
1680
+ "maxLength": 128,
1681
+ "minLength": 1,
1682
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1683
+ "type": "string"
1684
+ }
1685
+ },
1686
+ "required": ["available", "reason"],
1687
+ "type": "object"
1688
+ }
1689
+ ]
1690
+ },
1691
+ "history": {
1692
+ "anyOf": [
1693
+ {
1694
+ "additionalProperties": false,
1695
+ "properties": {
1696
+ "available": { "const": true, "type": "boolean" }
1697
+ },
1698
+ "required": ["available"],
1699
+ "type": "object"
1700
+ },
1701
+ {
1702
+ "additionalProperties": false,
1703
+ "properties": {
1704
+ "available": { "const": false, "type": "boolean" },
1705
+ "reason": {
1706
+ "maxLength": 128,
1707
+ "minLength": 1,
1708
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1709
+ "type": "string"
1710
+ }
1711
+ },
1712
+ "required": ["available", "reason"],
1713
+ "type": "object"
1714
+ }
1715
+ ]
1716
+ },
1717
+ "load": {
1718
+ "anyOf": [
1719
+ {
1720
+ "additionalProperties": false,
1721
+ "properties": {
1722
+ "available": { "const": true, "type": "boolean" }
1723
+ },
1724
+ "required": ["available"],
1725
+ "type": "object"
1726
+ },
1727
+ {
1728
+ "additionalProperties": false,
1729
+ "properties": {
1730
+ "available": { "const": false, "type": "boolean" },
1731
+ "reason": {
1732
+ "maxLength": 128,
1733
+ "minLength": 1,
1734
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1735
+ "type": "string"
1736
+ }
1737
+ },
1738
+ "required": ["available", "reason"],
1739
+ "type": "object"
1740
+ }
1741
+ ]
1742
+ },
1743
+ "reference": {
1744
+ "anyOf": [
1745
+ {
1746
+ "additionalProperties": false,
1747
+ "properties": {
1748
+ "available": { "const": true, "type": "boolean" }
1749
+ },
1750
+ "required": ["available"],
1751
+ "type": "object"
1752
+ },
1753
+ {
1754
+ "additionalProperties": false,
1755
+ "properties": {
1756
+ "available": { "const": false, "type": "boolean" },
1757
+ "reason": {
1758
+ "maxLength": 128,
1759
+ "minLength": 1,
1760
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1761
+ "type": "string"
1762
+ }
1763
+ },
1764
+ "required": ["available", "reason"],
1765
+ "type": "object"
1766
+ }
1767
+ ]
1768
+ },
1769
+ "resume": {
1770
+ "anyOf": [
1771
+ {
1772
+ "additionalProperties": false,
1773
+ "properties": {
1774
+ "available": { "const": true, "type": "boolean" }
1775
+ },
1776
+ "required": ["available"],
1777
+ "type": "object"
1778
+ },
1779
+ {
1780
+ "additionalProperties": false,
1781
+ "properties": {
1782
+ "available": { "const": false, "type": "boolean" },
1783
+ "reason": {
1784
+ "maxLength": 128,
1785
+ "minLength": 1,
1786
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1787
+ "type": "string"
1788
+ }
1789
+ },
1790
+ "required": ["available", "reason"],
1791
+ "type": "object"
1792
+ }
1793
+ ]
1794
+ }
1795
+ },
1796
+ "required": ["reference", "resume", "load", "close", "history"],
1797
+ "type": "object"
1798
+ },
1799
+ "operations": {
1800
+ "items": {
1801
+ "maxLength": 128,
1802
+ "minLength": 1,
1803
+ "pattern": "^[a-z][a-z0-9.-]*$",
1804
+ "type": "string"
1805
+ },
1806
+ "maxItems": 16,
1807
+ "type": "array"
1808
+ },
1809
+ "version": {
1810
+ "exclusiveMinimum": 0,
1811
+ "maximum": 9007199254740991,
1812
+ "type": "integer"
1813
+ }
1814
+ },
1815
+ "required": ["version", "operations", "controls"],
1816
+ "type": "object"
1817
+ },
1818
+ "display": {
1819
+ "additionalProperties": false,
1820
+ "properties": {
1821
+ "displayName": {
1822
+ "maxLength": 128,
1823
+ "minLength": 1,
1824
+ "type": "string"
1825
+ },
1826
+ "origin": {
1827
+ "enum": ["native_discovery", "created_through_control_plane"],
1828
+ "type": "string"
1829
+ }
1830
+ },
1831
+ "required": ["origin"],
1832
+ "type": "object"
1833
+ },
1834
+ "externalSessionId": {},
1835
+ "freshness": {
1836
+ "additionalProperties": false,
1837
+ "properties": {
1838
+ "expiresAt": {
1839
+ "format": "date-time",
1840
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
1841
+ "type": "string"
1842
+ },
1843
+ "observedAt": {
1844
+ "format": "date-time",
1845
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
1846
+ "type": "string"
1847
+ },
1848
+ "state": {
1849
+ "enum": ["fresh", "stale", "expired", "unknown"],
1850
+ "type": "string"
1851
+ }
1852
+ },
1853
+ "required": ["state", "observedAt"],
1854
+ "type": "object"
1855
+ },
1856
+ "limitations": {
1857
+ "items": {
1858
+ "maxLength": 128,
1859
+ "minLength": 1,
1860
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1861
+ "type": "string"
1862
+ },
1863
+ "maxItems": 64,
1864
+ "type": "array"
1865
+ },
1866
+ "projectId": {},
1867
+ "recoverable": { "type": "boolean" },
1868
+ "runtimeConnectionId": {},
1869
+ "state": {
1870
+ "enum": [
1871
+ "active",
1872
+ "closed",
1873
+ "stale",
1874
+ "offline",
1875
+ "runtime_missing",
1876
+ "capability_changed",
1877
+ "removed",
1878
+ "revoked"
1879
+ ],
1880
+ "type": "string"
1881
+ }
1882
+ },
1883
+ "required": [
1884
+ "externalSessionId",
1885
+ "runtimeConnectionId",
1886
+ "state",
1887
+ "recoverable",
1888
+ "display",
1889
+ "freshness",
1890
+ "capabilitySummary",
1891
+ "limitations"
1892
+ ],
1893
+ "type": "object"
1894
+ },
1895
+ "maxItems": 100,
1896
+ "type": "array"
1897
+ },
1898
+ "page": {
1899
+ "additionalProperties": false,
1900
+ "properties": {
1901
+ "nextCursor": {
1902
+ "maxLength": 512,
1903
+ "minLength": 8,
1904
+ "pattern": "^cur_[A-Za-z0-9_-]+$",
1905
+ "type": "string"
1906
+ }
1907
+ },
1908
+ "type": "object"
1909
+ }
1910
+ },
1911
+ "required": ["externalSessions", "page"],
1912
+ "type": "object"
1913
+ },
1914
+ "requestId": {}
1915
+ },
1916
+ "required": ["contractVersion", "requestId", "correlation", "data"],
1917
+ "type": "object"
1918
+ }
1919
+ }
1920
+ },
1921
+ "description": "Successful response"
1922
+ },
1923
+ "default": {
1924
+ "content": {
1925
+ "application/json": {
1926
+ "schema": {
1927
+ "additionalProperties": false,
1928
+ "properties": {
1929
+ "contractVersion": {
1930
+ "additionalProperties": false,
1931
+ "properties": {
1932
+ "major": {
1933
+ "exclusiveMinimum": 0,
1934
+ "maximum": 9007199254740991,
1935
+ "type": "integer"
1936
+ },
1937
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
1938
+ },
1939
+ "required": ["major", "minor"],
1940
+ "type": "object"
1941
+ },
1942
+ "correlation": {
1943
+ "additionalProperties": false,
1944
+ "properties": {
1945
+ "causationCommandId": {},
1946
+ "parentEventId": {},
1947
+ "traceId": {}
1948
+ },
1949
+ "required": ["traceId"],
1950
+ "type": "object"
1951
+ },
1952
+ "error": {
1953
+ "additionalProperties": false,
1954
+ "properties": {
1955
+ "class": {
1956
+ "enum": [
1957
+ "validation",
1958
+ "authentication",
1959
+ "authorization",
1960
+ "conflict",
1961
+ "stale_reference",
1962
+ "capability_mismatch",
1963
+ "runtime_unavailable",
1964
+ "internal"
1965
+ ],
1966
+ "type": "string"
1967
+ },
1968
+ "code": {
1969
+ "maxLength": 96,
1970
+ "minLength": 1,
1971
+ "pattern": "^[A-Z][A-Z0-9_]*$",
1972
+ "type": "string"
1973
+ },
1974
+ "details": {
1975
+ "additionalProperties": {},
1976
+ "propertyNames": { "type": "string" },
1977
+ "type": "object"
1978
+ },
1979
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
1980
+ "retryable": { "type": "boolean" }
1981
+ },
1982
+ "required": ["class", "code", "message", "retryable"],
1983
+ "type": "object"
1984
+ },
1985
+ "requestId": {}
1986
+ },
1987
+ "required": ["contractVersion", "requestId", "correlation", "error"],
1988
+ "type": "object"
1989
+ }
1990
+ }
1991
+ },
1992
+ "description": "Normalized error response"
1993
+ }
1994
+ },
1995
+ "security": [{ "serviceBearer": [] }]
1996
+ }
1997
+ },
1998
+ "/v1/profiles/resolve": {
1999
+ "post": {
2000
+ "operationId": "profile.resolve",
2001
+ "requestBody": {
2002
+ "content": {
2003
+ "application/json": {
2004
+ "schema": {
2005
+ "properties": {
2006
+ "caller": {
2007
+ "properties": {
2008
+ "servicePrincipalId": {
2009
+ "maxLength": 64,
2010
+ "minLength": 5,
2011
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
2012
+ "type": "string"
2013
+ }
2014
+ },
2015
+ "required": ["servicePrincipalId"],
2016
+ "type": "object"
2017
+ },
2018
+ "contractVersion": {
2019
+ "additionalProperties": false,
2020
+ "properties": {
2021
+ "major": {
2022
+ "exclusiveMinimum": 0,
2023
+ "maximum": 9007199254740991,
2024
+ "type": "integer"
2025
+ },
2026
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2027
+ },
2028
+ "required": ["major", "minor"],
2029
+ "type": "object"
2030
+ },
2031
+ "correlation": {
2032
+ "properties": {
2033
+ "causationCommandId": {
2034
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
2035
+ "type": "string"
2036
+ },
2037
+ "parentEventId": {
2038
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
2039
+ "type": "string"
2040
+ },
2041
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
2042
+ },
2043
+ "required": ["traceId"],
2044
+ "type": "object"
2045
+ },
2046
+ "operation": { "const": "profile.resolve", "type": "string" },
2047
+ "parameters": {
2048
+ "properties": {
2049
+ "profileId": { "pattern": "^prf_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
2050
+ "profileVersionId": {
2051
+ "pattern": "^pfv_[0-9A-HJKMNP-TV-Z]{26}$",
2052
+ "type": "string"
2053
+ }
2054
+ },
2055
+ "required": ["profileId"],
2056
+ "type": "object"
2057
+ },
2058
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
2059
+ "requestedAt": {
2060
+ "format": "date-time",
2061
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
2062
+ "type": "string"
2063
+ },
2064
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
2065
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
2066
+ },
2067
+ "required": [
2068
+ "caller",
2069
+ "contractVersion",
2070
+ "requestId",
2071
+ "workspaceId",
2072
+ "correlation",
2073
+ "operation",
2074
+ "requestedAt",
2075
+ "parameters"
2076
+ ],
2077
+ "type": "object"
2078
+ }
2079
+ }
2080
+ },
2081
+ "required": true
2082
+ },
2083
+ "responses": {
2084
+ "200": {
2085
+ "content": {
2086
+ "application/json": {
2087
+ "schema": {
2088
+ "additionalProperties": false,
2089
+ "properties": {
2090
+ "contractVersion": {
2091
+ "additionalProperties": false,
2092
+ "properties": {
2093
+ "major": {
2094
+ "exclusiveMinimum": 0,
2095
+ "maximum": 9007199254740991,
2096
+ "type": "integer"
2097
+ },
2098
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2099
+ },
2100
+ "required": ["major", "minor"],
2101
+ "type": "object"
2102
+ },
2103
+ "correlation": {
2104
+ "additionalProperties": false,
2105
+ "properties": {
2106
+ "causationCommandId": {},
2107
+ "parentEventId": {},
2108
+ "traceId": {}
2109
+ },
2110
+ "required": ["traceId"],
2111
+ "type": "object"
2112
+ },
2113
+ "data": {
2114
+ "additionalProperties": false,
2115
+ "properties": {
2116
+ "profile": {
2117
+ "additionalProperties": false,
2118
+ "properties": {
2119
+ "contentDigest": {
2120
+ "pattern": "^sha256:[a-f0-9]{64}$",
2121
+ "type": "string"
2122
+ },
2123
+ "lifecycle": { "const": "published", "type": "string" },
2124
+ "profileId": {},
2125
+ "profileVersionId": {},
2126
+ "revision": {
2127
+ "exclusiveMinimum": 0,
2128
+ "maximum": 9007199254740991,
2129
+ "type": "integer"
2130
+ },
2131
+ "schemaVersion": {
2132
+ "exclusiveMinimum": 0,
2133
+ "maximum": 9007199254740991,
2134
+ "type": "integer"
2135
+ },
2136
+ "version": {
2137
+ "exclusiveMinimum": 0,
2138
+ "maximum": 9007199254740991,
2139
+ "type": "integer"
2140
+ }
2141
+ },
2142
+ "required": [
2143
+ "profileId",
2144
+ "profileVersionId",
2145
+ "version",
2146
+ "revision",
2147
+ "schemaVersion",
2148
+ "contentDigest",
2149
+ "lifecycle"
2150
+ ],
2151
+ "type": "object"
2152
+ },
2153
+ "skillVersionIds": { "items": {}, "maxItems": 128, "type": "array" }
2154
+ },
2155
+ "required": ["profile", "skillVersionIds"],
2156
+ "type": "object"
2157
+ },
2158
+ "requestId": {}
2159
+ },
2160
+ "required": ["contractVersion", "requestId", "correlation", "data"],
2161
+ "type": "object"
2162
+ }
2163
+ }
2164
+ },
2165
+ "description": "Successful response"
2166
+ },
2167
+ "default": {
2168
+ "content": {
2169
+ "application/json": {
2170
+ "schema": {
2171
+ "additionalProperties": false,
2172
+ "properties": {
2173
+ "contractVersion": {
2174
+ "additionalProperties": false,
2175
+ "properties": {
2176
+ "major": {
2177
+ "exclusiveMinimum": 0,
2178
+ "maximum": 9007199254740991,
2179
+ "type": "integer"
2180
+ },
2181
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2182
+ },
2183
+ "required": ["major", "minor"],
2184
+ "type": "object"
2185
+ },
2186
+ "correlation": {
2187
+ "additionalProperties": false,
2188
+ "properties": {
2189
+ "causationCommandId": {},
2190
+ "parentEventId": {},
2191
+ "traceId": {}
2192
+ },
2193
+ "required": ["traceId"],
2194
+ "type": "object"
2195
+ },
2196
+ "error": {
2197
+ "additionalProperties": false,
2198
+ "properties": {
2199
+ "class": {
2200
+ "enum": [
2201
+ "validation",
2202
+ "authentication",
2203
+ "authorization",
2204
+ "conflict",
2205
+ "stale_reference",
2206
+ "capability_mismatch",
2207
+ "runtime_unavailable",
2208
+ "internal"
2209
+ ],
2210
+ "type": "string"
2211
+ },
2212
+ "code": {
2213
+ "maxLength": 96,
2214
+ "minLength": 1,
2215
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2216
+ "type": "string"
2217
+ },
2218
+ "details": {
2219
+ "additionalProperties": {},
2220
+ "propertyNames": { "type": "string" },
2221
+ "type": "object"
2222
+ },
2223
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
2224
+ "retryable": { "type": "boolean" }
2225
+ },
2226
+ "required": ["class", "code", "message", "retryable"],
2227
+ "type": "object"
2228
+ },
2229
+ "requestId": {}
2230
+ },
2231
+ "required": ["contractVersion", "requestId", "correlation", "error"],
2232
+ "type": "object"
2233
+ }
2234
+ }
2235
+ },
2236
+ "description": "Normalized error response"
2237
+ }
2238
+ },
2239
+ "security": [{ "serviceBearer": [] }]
2240
+ }
2241
+ },
2242
+ "/v1/project-states/resolve": {
2243
+ "post": {
2244
+ "operationId": "project-state.resolve",
2245
+ "requestBody": {
2246
+ "content": {
2247
+ "application/json": {
2248
+ "schema": {
2249
+ "properties": {
2250
+ "caller": {
2251
+ "properties": {
2252
+ "servicePrincipalId": {
2253
+ "maxLength": 64,
2254
+ "minLength": 5,
2255
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
2256
+ "type": "string"
2257
+ }
2258
+ },
2259
+ "required": ["servicePrincipalId"],
2260
+ "type": "object"
2261
+ },
2262
+ "contractVersion": {
2263
+ "additionalProperties": false,
2264
+ "properties": {
2265
+ "major": {
2266
+ "exclusiveMinimum": 0,
2267
+ "maximum": 9007199254740991,
2268
+ "type": "integer"
2269
+ },
2270
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2271
+ },
2272
+ "required": ["major", "minor"],
2273
+ "type": "object"
2274
+ },
2275
+ "correlation": {
2276
+ "properties": {
2277
+ "causationCommandId": {
2278
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
2279
+ "type": "string"
2280
+ },
2281
+ "parentEventId": {
2282
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
2283
+ "type": "string"
2284
+ },
2285
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
2286
+ },
2287
+ "required": ["traceId"],
2288
+ "type": "object"
2289
+ },
2290
+ "operation": { "const": "project-state.resolve", "type": "string" },
2291
+ "parameters": {
2292
+ "properties": {
2293
+ "revision": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2294
+ },
2295
+ "type": "object"
2296
+ },
2297
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
2298
+ "requestedAt": {
2299
+ "format": "date-time",
2300
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
2301
+ "type": "string"
2302
+ },
2303
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
2304
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
2305
+ },
2306
+ "required": [
2307
+ "caller",
2308
+ "contractVersion",
2309
+ "requestId",
2310
+ "workspaceId",
2311
+ "correlation",
2312
+ "operation",
2313
+ "requestedAt",
2314
+ "parameters"
2315
+ ],
2316
+ "type": "object"
2317
+ }
2318
+ }
2319
+ },
2320
+ "required": true
2321
+ },
2322
+ "responses": {
2323
+ "200": {
2324
+ "content": {
2325
+ "application/json": {
2326
+ "schema": {
2327
+ "additionalProperties": false,
2328
+ "properties": {
2329
+ "contractVersion": {
2330
+ "additionalProperties": false,
2331
+ "properties": {
2332
+ "major": {
2333
+ "exclusiveMinimum": 0,
2334
+ "maximum": 9007199254740991,
2335
+ "type": "integer"
2336
+ },
2337
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2338
+ },
2339
+ "required": ["major", "minor"],
2340
+ "type": "object"
2341
+ },
2342
+ "correlation": {
2343
+ "additionalProperties": false,
2344
+ "properties": {
2345
+ "causationCommandId": {},
2346
+ "parentEventId": {},
2347
+ "traceId": {}
2348
+ },
2349
+ "required": ["traceId"],
2350
+ "type": "object"
2351
+ },
2352
+ "data": {
2353
+ "additionalProperties": false,
2354
+ "properties": {
2355
+ "projectState": {
2356
+ "additionalProperties": false,
2357
+ "properties": {
2358
+ "projectId": {},
2359
+ "revision": {
2360
+ "maximum": 9007199254740991,
2361
+ "minimum": 0,
2362
+ "type": "integer"
2363
+ },
2364
+ "workspaceId": {}
2365
+ },
2366
+ "required": ["workspaceId", "projectId", "revision"],
2367
+ "type": "object"
2368
+ }
2369
+ },
2370
+ "required": ["projectState"],
2371
+ "type": "object"
2372
+ },
2373
+ "requestId": {}
2374
+ },
2375
+ "required": ["contractVersion", "requestId", "correlation", "data"],
2376
+ "type": "object"
2377
+ }
2378
+ }
2379
+ },
2380
+ "description": "Successful response"
2381
+ },
2382
+ "default": {
2383
+ "content": {
2384
+ "application/json": {
2385
+ "schema": {
2386
+ "additionalProperties": false,
2387
+ "properties": {
2388
+ "contractVersion": {
2389
+ "additionalProperties": false,
2390
+ "properties": {
2391
+ "major": {
2392
+ "exclusiveMinimum": 0,
2393
+ "maximum": 9007199254740991,
2394
+ "type": "integer"
2395
+ },
2396
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2397
+ },
2398
+ "required": ["major", "minor"],
2399
+ "type": "object"
2400
+ },
2401
+ "correlation": {
2402
+ "additionalProperties": false,
2403
+ "properties": {
2404
+ "causationCommandId": {},
2405
+ "parentEventId": {},
2406
+ "traceId": {}
2407
+ },
2408
+ "required": ["traceId"],
2409
+ "type": "object"
2410
+ },
2411
+ "error": {
2412
+ "additionalProperties": false,
2413
+ "properties": {
2414
+ "class": {
2415
+ "enum": [
2416
+ "validation",
2417
+ "authentication",
2418
+ "authorization",
2419
+ "conflict",
2420
+ "stale_reference",
2421
+ "capability_mismatch",
2422
+ "runtime_unavailable",
2423
+ "internal"
2424
+ ],
2425
+ "type": "string"
2426
+ },
2427
+ "code": {
2428
+ "maxLength": 96,
2429
+ "minLength": 1,
2430
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2431
+ "type": "string"
2432
+ },
2433
+ "details": {
2434
+ "additionalProperties": {},
2435
+ "propertyNames": { "type": "string" },
2436
+ "type": "object"
2437
+ },
2438
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
2439
+ "retryable": { "type": "boolean" }
2440
+ },
2441
+ "required": ["class", "code", "message", "retryable"],
2442
+ "type": "object"
2443
+ },
2444
+ "requestId": {}
2445
+ },
2446
+ "required": ["contractVersion", "requestId", "correlation", "error"],
2447
+ "type": "object"
2448
+ }
2449
+ }
2450
+ },
2451
+ "description": "Normalized error response"
2452
+ }
2453
+ },
2454
+ "security": [{ "serviceBearer": [] }]
2455
+ }
2456
+ },
2457
+ "/v1/runtime-connections/get": {
2458
+ "post": {
2459
+ "operationId": "runtime-connection.get",
2460
+ "requestBody": {
2461
+ "content": {
2462
+ "application/json": {
2463
+ "schema": {
2464
+ "properties": {
2465
+ "caller": {
2466
+ "properties": {
2467
+ "servicePrincipalId": {
2468
+ "maxLength": 64,
2469
+ "minLength": 5,
2470
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
2471
+ "type": "string"
2472
+ }
2473
+ },
2474
+ "required": ["servicePrincipalId"],
2475
+ "type": "object"
2476
+ },
2477
+ "contractVersion": {
2478
+ "additionalProperties": false,
2479
+ "properties": {
2480
+ "major": {
2481
+ "exclusiveMinimum": 0,
2482
+ "maximum": 9007199254740991,
2483
+ "type": "integer"
2484
+ },
2485
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2486
+ },
2487
+ "required": ["major", "minor"],
2488
+ "type": "object"
2489
+ },
2490
+ "correlation": {
2491
+ "properties": {
2492
+ "causationCommandId": {
2493
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
2494
+ "type": "string"
2495
+ },
2496
+ "parentEventId": {
2497
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
2498
+ "type": "string"
2499
+ },
2500
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
2501
+ },
2502
+ "required": ["traceId"],
2503
+ "type": "object"
2504
+ },
2505
+ "operation": { "const": "runtime-connection.get", "type": "string" },
2506
+ "parameters": {
2507
+ "properties": {
2508
+ "runtimeConnectionId": {
2509
+ "pattern": "^rtc_[0-9A-HJKMNP-TV-Z]{26}$",
2510
+ "type": "string"
2511
+ },
2512
+ "runtimeNodeRefId": {
2513
+ "pattern": "^rnr_[0-9A-HJKMNP-TV-Z]{26}$",
2514
+ "type": "string"
2515
+ }
2516
+ },
2517
+ "required": ["runtimeConnectionId"],
2518
+ "type": "object"
2519
+ },
2520
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
2521
+ "requestedAt": {
2522
+ "format": "date-time",
2523
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
2524
+ "type": "string"
2525
+ },
2526
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
2527
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
2528
+ },
2529
+ "required": [
2530
+ "caller",
2531
+ "contractVersion",
2532
+ "requestId",
2533
+ "workspaceId",
2534
+ "correlation",
2535
+ "requestedAt",
2536
+ "operation",
2537
+ "parameters"
2538
+ ],
2539
+ "type": "object"
2540
+ }
2541
+ }
2542
+ },
2543
+ "required": true
2544
+ },
2545
+ "responses": {
2546
+ "200": {
2547
+ "content": {
2548
+ "application/json": {
2549
+ "schema": {
2550
+ "additionalProperties": false,
2551
+ "properties": {
2552
+ "contractVersion": {
2553
+ "additionalProperties": false,
2554
+ "properties": {
2555
+ "major": {
2556
+ "exclusiveMinimum": 0,
2557
+ "maximum": 9007199254740991,
2558
+ "type": "integer"
2559
+ },
2560
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2561
+ },
2562
+ "required": ["major", "minor"],
2563
+ "type": "object"
2564
+ },
2565
+ "correlation": {
2566
+ "additionalProperties": false,
2567
+ "properties": {
2568
+ "causationCommandId": {},
2569
+ "parentEventId": {},
2570
+ "traceId": {}
2571
+ },
2572
+ "required": ["traceId"],
2573
+ "type": "object"
2574
+ },
2575
+ "data": {
2576
+ "additionalProperties": false,
2577
+ "properties": {
2578
+ "runtimeConnection": {
2579
+ "additionalProperties": false,
2580
+ "properties": {
2581
+ "access": {
2582
+ "additionalProperties": false,
2583
+ "properties": {
2584
+ "entitlement": {
2585
+ "additionalProperties": false,
2586
+ "properties": {
2587
+ "class": { "maxLength": 64, "minLength": 1, "type": "string" },
2588
+ "state": {
2589
+ "enum": ["allowed", "denied", "unknown"],
2590
+ "type": "string"
2591
+ }
2592
+ },
2593
+ "required": ["state"],
2594
+ "type": "object"
2595
+ },
2596
+ "localProjectGrant": {
2597
+ "additionalProperties": false,
2598
+ "properties": {
2599
+ "required": { "type": "boolean" },
2600
+ "state": {
2601
+ "enum": ["not_required", "granted", "missing", "revoked"],
2602
+ "type": "string"
2603
+ }
2604
+ },
2605
+ "required": ["required", "state"],
2606
+ "type": "object"
2607
+ }
2608
+ },
2609
+ "required": ["localProjectGrant", "entitlement"],
2610
+ "type": "object"
2611
+ },
2612
+ "capabilities": {
2613
+ "items": {
2614
+ "maxLength": 128,
2615
+ "minLength": 1,
2616
+ "pattern": "^[a-z][a-z0-9.-]*$",
2617
+ "type": "string"
2618
+ },
2619
+ "maxItems": 64,
2620
+ "type": "array"
2621
+ },
2622
+ "capabilityDetails": {
2623
+ "items": {
2624
+ "additionalProperties": false,
2625
+ "properties": {
2626
+ "limitations": {
2627
+ "items": {
2628
+ "maxLength": 128,
2629
+ "minLength": 1,
2630
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2631
+ "type": "string"
2632
+ },
2633
+ "maxItems": 32,
2634
+ "type": "array"
2635
+ },
2636
+ "name": {
2637
+ "maxLength": 128,
2638
+ "minLength": 1,
2639
+ "pattern": "^[a-z][a-z0-9.-]*$",
2640
+ "type": "string"
2641
+ },
2642
+ "support": {
2643
+ "enum": ["supported", "degraded", "unsupported"],
2644
+ "type": "string"
2645
+ }
2646
+ },
2647
+ "required": ["name", "support"],
2648
+ "type": "object"
2649
+ },
2650
+ "maxItems": 64,
2651
+ "type": "array"
2652
+ },
2653
+ "compatibility": {
2654
+ "additionalProperties": false,
2655
+ "properties": {
2656
+ "limitations": {
2657
+ "items": {
2658
+ "maxLength": 128,
2659
+ "minLength": 1,
2660
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2661
+ "type": "string"
2662
+ },
2663
+ "maxItems": 64,
2664
+ "type": "array"
2665
+ },
2666
+ "state": {
2667
+ "enum": [
2668
+ "compatible",
2669
+ "degraded",
2670
+ "untested",
2671
+ "incompatible",
2672
+ "deprecated",
2673
+ "revoked",
2674
+ "unavailable",
2675
+ "capability_missing"
2676
+ ],
2677
+ "type": "string"
2678
+ }
2679
+ },
2680
+ "required": ["state", "limitations"],
2681
+ "type": "object"
2682
+ },
2683
+ "connection": {
2684
+ "additionalProperties": false,
2685
+ "properties": {
2686
+ "availability": {
2687
+ "enum": [
2688
+ "healthy",
2689
+ "degraded",
2690
+ "reconnecting",
2691
+ "offline",
2692
+ "incompatible",
2693
+ "revoked",
2694
+ "stale",
2695
+ "unknown"
2696
+ ],
2697
+ "type": "string"
2698
+ },
2699
+ "health": {
2700
+ "enum": ["healthy", "degraded", "unavailable"],
2701
+ "type": "string"
2702
+ },
2703
+ "status": {
2704
+ "enum": [
2705
+ "connected",
2706
+ "degraded",
2707
+ "unavailable",
2708
+ "disconnected",
2709
+ "expired",
2710
+ "revoked"
2711
+ ],
2712
+ "type": "string"
2713
+ }
2714
+ },
2715
+ "required": ["status", "health", "availability"],
2716
+ "type": "object"
2717
+ },
2718
+ "connectionType": {
2719
+ "enum": ["managed_cloud", "managed_local", "external_local"],
2720
+ "type": "string"
2721
+ },
2722
+ "eligibility": {
2723
+ "additionalProperties": false,
2724
+ "properties": {
2725
+ "degradations": {
2726
+ "items": {
2727
+ "maxLength": 128,
2728
+ "minLength": 1,
2729
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2730
+ "type": "string"
2731
+ },
2732
+ "maxItems": 128,
2733
+ "type": "array"
2734
+ },
2735
+ "reasons": {
2736
+ "items": {
2737
+ "maxLength": 128,
2738
+ "minLength": 1,
2739
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2740
+ "type": "string"
2741
+ },
2742
+ "maxItems": 128,
2743
+ "type": "array"
2744
+ },
2745
+ "remediation": {
2746
+ "items": {
2747
+ "additionalProperties": false,
2748
+ "properties": {
2749
+ "code": {
2750
+ "maxLength": 128,
2751
+ "minLength": 1,
2752
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2753
+ "type": "string"
2754
+ },
2755
+ "label": {
2756
+ "maxLength": 160,
2757
+ "minLength": 1,
2758
+ "type": "string"
2759
+ }
2760
+ },
2761
+ "required": ["code", "label"],
2762
+ "type": "object"
2763
+ },
2764
+ "maxItems": 32,
2765
+ "type": "array"
2766
+ },
2767
+ "state": {
2768
+ "enum": ["eligible", "degraded", "ineligible"],
2769
+ "type": "string"
2770
+ }
2771
+ },
2772
+ "required": ["state", "reasons", "degradations", "remediation"],
2773
+ "type": "object"
2774
+ },
2775
+ "family": {
2776
+ "maxLength": 64,
2777
+ "minLength": 1,
2778
+ "pattern": "^[a-z][a-z0-9-]*$",
2779
+ "type": "string"
2780
+ },
2781
+ "freshness": {
2782
+ "additionalProperties": false,
2783
+ "properties": {
2784
+ "expiresAt": {
2785
+ "format": "date-time",
2786
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
2787
+ "type": "string"
2788
+ },
2789
+ "observedAt": {
2790
+ "format": "date-time",
2791
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
2792
+ "type": "string"
2793
+ },
2794
+ "state": {
2795
+ "enum": ["fresh", "stale", "expired", "unknown"],
2796
+ "type": "string"
2797
+ }
2798
+ },
2799
+ "required": ["state", "observedAt"],
2800
+ "type": "object"
2801
+ },
2802
+ "limitations": {
2803
+ "items": {
2804
+ "maxLength": 128,
2805
+ "minLength": 1,
2806
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2807
+ "type": "string"
2808
+ },
2809
+ "maxItems": 64,
2810
+ "type": "array"
2811
+ },
2812
+ "location": {
2813
+ "enum": ["local_device", "managed_sandbox"],
2814
+ "type": "string"
2815
+ },
2816
+ "node": {
2817
+ "additionalProperties": false,
2818
+ "properties": {
2819
+ "health": {
2820
+ "enum": ["online", "offline", "unknown", "revoked"],
2821
+ "type": "string"
2822
+ },
2823
+ "location": {
2824
+ "enum": ["local_device", "remote_host", "managed_sandbox"],
2825
+ "type": "string"
2826
+ },
2827
+ "observedAt": {
2828
+ "format": "date-time",
2829
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
2830
+ "type": "string"
2831
+ },
2832
+ "runtimeNodeRefId": {},
2833
+ "status": {
2834
+ "enum": ["online", "offline", "revoked"],
2835
+ "type": "string"
2836
+ }
2837
+ },
2838
+ "required": [
2839
+ "runtimeNodeRefId",
2840
+ "location",
2841
+ "status",
2842
+ "health",
2843
+ "observedAt"
2844
+ ],
2845
+ "type": "object"
2846
+ },
2847
+ "observedAt": {
2848
+ "format": "date-time",
2849
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
2850
+ "type": "string"
2851
+ },
2852
+ "runtimeConnectionId": {},
2853
+ "runtimeDefinitionId": {},
2854
+ "status": {
2855
+ "enum": ["available", "degraded", "unavailable", "revoked"],
2856
+ "type": "string"
2857
+ },
2858
+ "versions": {
2859
+ "additionalProperties": false,
2860
+ "properties": {
2861
+ "adapter": {
2862
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
2863
+ "type": "string"
2864
+ },
2865
+ "driver": {
2866
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
2867
+ "type": "string"
2868
+ },
2869
+ "harness": {
2870
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
2871
+ "type": "string"
2872
+ },
2873
+ "protocol": {
2874
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
2875
+ "type": "string"
2876
+ }
2877
+ },
2878
+ "required": ["adapter", "driver", "harness"],
2879
+ "type": "object"
2880
+ }
2881
+ },
2882
+ "required": [
2883
+ "runtimeConnectionId",
2884
+ "runtimeDefinitionId",
2885
+ "family",
2886
+ "connectionType",
2887
+ "location",
2888
+ "status",
2889
+ "connection",
2890
+ "freshness",
2891
+ "versions",
2892
+ "capabilities",
2893
+ "capabilityDetails",
2894
+ "compatibility",
2895
+ "access",
2896
+ "eligibility",
2897
+ "observedAt",
2898
+ "limitations"
2899
+ ],
2900
+ "type": "object"
2901
+ }
2902
+ },
2903
+ "required": ["runtimeConnection"],
2904
+ "type": "object"
2905
+ },
2906
+ "requestId": {}
2907
+ },
2908
+ "required": ["contractVersion", "requestId", "correlation", "data"],
2909
+ "type": "object"
2910
+ }
2911
+ }
2912
+ },
2913
+ "description": "Successful response"
2914
+ },
2915
+ "default": {
2916
+ "content": {
2917
+ "application/json": {
2918
+ "schema": {
2919
+ "additionalProperties": false,
2920
+ "properties": {
2921
+ "contractVersion": {
2922
+ "additionalProperties": false,
2923
+ "properties": {
2924
+ "major": {
2925
+ "exclusiveMinimum": 0,
2926
+ "maximum": 9007199254740991,
2927
+ "type": "integer"
2928
+ },
2929
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
2930
+ },
2931
+ "required": ["major", "minor"],
2932
+ "type": "object"
2933
+ },
2934
+ "correlation": {
2935
+ "additionalProperties": false,
2936
+ "properties": {
2937
+ "causationCommandId": {},
2938
+ "parentEventId": {},
2939
+ "traceId": {}
2940
+ },
2941
+ "required": ["traceId"],
2942
+ "type": "object"
2943
+ },
2944
+ "error": {
2945
+ "additionalProperties": false,
2946
+ "properties": {
2947
+ "class": {
2948
+ "enum": [
2949
+ "validation",
2950
+ "authentication",
2951
+ "authorization",
2952
+ "conflict",
2953
+ "stale_reference",
2954
+ "capability_mismatch",
2955
+ "runtime_unavailable",
2956
+ "internal"
2957
+ ],
2958
+ "type": "string"
2959
+ },
2960
+ "code": {
2961
+ "maxLength": 96,
2962
+ "minLength": 1,
2963
+ "pattern": "^[A-Z][A-Z0-9_]*$",
2964
+ "type": "string"
2965
+ },
2966
+ "details": {
2967
+ "additionalProperties": {},
2968
+ "propertyNames": { "type": "string" },
2969
+ "type": "object"
2970
+ },
2971
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
2972
+ "retryable": { "type": "boolean" }
2973
+ },
2974
+ "required": ["class", "code", "message", "retryable"],
2975
+ "type": "object"
2976
+ },
2977
+ "requestId": {}
2978
+ },
2979
+ "required": ["contractVersion", "requestId", "correlation", "error"],
2980
+ "type": "object"
2981
+ }
2982
+ }
2983
+ },
2984
+ "description": "Normalized error response"
2985
+ }
2986
+ },
2987
+ "security": [{ "serviceBearer": [] }]
2988
+ }
2989
+ },
2990
+ "/v1/runtime-connections/list": {
2991
+ "post": {
2992
+ "operationId": "runtime-connection.list",
2993
+ "requestBody": {
2994
+ "content": {
2995
+ "application/json": {
2996
+ "schema": {
2997
+ "properties": {
2998
+ "caller": {
2999
+ "properties": {
3000
+ "servicePrincipalId": {
3001
+ "maxLength": 64,
3002
+ "minLength": 5,
3003
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
3004
+ "type": "string"
3005
+ }
3006
+ },
3007
+ "required": ["servicePrincipalId"],
3008
+ "type": "object"
3009
+ },
3010
+ "contractVersion": {
3011
+ "additionalProperties": false,
3012
+ "properties": {
3013
+ "major": {
3014
+ "exclusiveMinimum": 0,
3015
+ "maximum": 9007199254740991,
3016
+ "type": "integer"
3017
+ },
3018
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
3019
+ },
3020
+ "required": ["major", "minor"],
3021
+ "type": "object"
3022
+ },
3023
+ "correlation": {
3024
+ "properties": {
3025
+ "causationCommandId": {
3026
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
3027
+ "type": "string"
3028
+ },
3029
+ "parentEventId": {
3030
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
3031
+ "type": "string"
3032
+ },
3033
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
3034
+ },
3035
+ "required": ["traceId"],
3036
+ "type": "object"
3037
+ },
3038
+ "operation": { "const": "runtime-connection.list", "type": "string" },
3039
+ "parameters": {
3040
+ "properties": {
3041
+ "cursor": {
3042
+ "maxLength": 512,
3043
+ "minLength": 8,
3044
+ "pattern": "^cur_[A-Za-z0-9_-]+$",
3045
+ "type": "string"
3046
+ },
3047
+ "limit": { "default": 50, "maximum": 100, "minimum": 1, "type": "integer" },
3048
+ "requiredCapabilities": {
3049
+ "default": [],
3050
+ "items": {
3051
+ "maxLength": 128,
3052
+ "minLength": 1,
3053
+ "pattern": "^[a-z][a-z0-9.-]*$",
3054
+ "type": "string"
3055
+ },
3056
+ "maxItems": 64,
3057
+ "type": "array"
3058
+ },
3059
+ "runtimeNodeRefId": {
3060
+ "pattern": "^rnr_[0-9A-HJKMNP-TV-Z]{26}$",
3061
+ "type": "string"
3062
+ },
3063
+ "states": {
3064
+ "default": [],
3065
+ "items": {
3066
+ "enum": [
3067
+ "available",
3068
+ "degraded",
3069
+ "stale",
3070
+ "incompatible",
3071
+ "offline",
3072
+ "revoked"
3073
+ ],
3074
+ "type": "string"
3075
+ },
3076
+ "maxItems": 6,
3077
+ "type": "array"
3078
+ }
3079
+ },
3080
+ "type": "object"
3081
+ },
3082
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
3083
+ "requestedAt": {
3084
+ "format": "date-time",
3085
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
3086
+ "type": "string"
3087
+ },
3088
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
3089
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
3090
+ },
3091
+ "required": [
3092
+ "caller",
3093
+ "contractVersion",
3094
+ "requestId",
3095
+ "workspaceId",
3096
+ "correlation",
3097
+ "requestedAt",
3098
+ "operation",
3099
+ "parameters"
3100
+ ],
3101
+ "type": "object"
3102
+ }
3103
+ }
3104
+ },
3105
+ "required": true
3106
+ },
3107
+ "responses": {
3108
+ "200": {
3109
+ "content": {
3110
+ "application/json": {
3111
+ "schema": {
3112
+ "additionalProperties": false,
3113
+ "properties": {
3114
+ "contractVersion": {
3115
+ "additionalProperties": false,
3116
+ "properties": {
3117
+ "major": {
3118
+ "exclusiveMinimum": 0,
3119
+ "maximum": 9007199254740991,
3120
+ "type": "integer"
3121
+ },
3122
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
3123
+ },
3124
+ "required": ["major", "minor"],
3125
+ "type": "object"
3126
+ },
3127
+ "correlation": {
3128
+ "additionalProperties": false,
3129
+ "properties": {
3130
+ "causationCommandId": {},
3131
+ "parentEventId": {},
3132
+ "traceId": {}
3133
+ },
3134
+ "required": ["traceId"],
3135
+ "type": "object"
3136
+ },
3137
+ "data": {
3138
+ "additionalProperties": false,
3139
+ "properties": {
3140
+ "page": {
3141
+ "additionalProperties": false,
3142
+ "properties": {
3143
+ "nextCursor": {
3144
+ "maxLength": 512,
3145
+ "minLength": 8,
3146
+ "pattern": "^cur_[A-Za-z0-9_-]+$",
3147
+ "type": "string"
3148
+ }
3149
+ },
3150
+ "type": "object"
3151
+ },
3152
+ "runtimeConnections": {
3153
+ "items": {
3154
+ "additionalProperties": false,
3155
+ "properties": {
3156
+ "access": {
3157
+ "additionalProperties": false,
3158
+ "properties": {
3159
+ "entitlement": {
3160
+ "additionalProperties": false,
3161
+ "properties": {
3162
+ "class": {
3163
+ "maxLength": 64,
3164
+ "minLength": 1,
3165
+ "type": "string"
3166
+ },
3167
+ "state": {
3168
+ "enum": ["allowed", "denied", "unknown"],
3169
+ "type": "string"
3170
+ }
3171
+ },
3172
+ "required": ["state"],
3173
+ "type": "object"
3174
+ },
3175
+ "localProjectGrant": {
3176
+ "additionalProperties": false,
3177
+ "properties": {
3178
+ "required": { "type": "boolean" },
3179
+ "state": {
3180
+ "enum": ["not_required", "granted", "missing", "revoked"],
3181
+ "type": "string"
3182
+ }
3183
+ },
3184
+ "required": ["required", "state"],
3185
+ "type": "object"
3186
+ }
3187
+ },
3188
+ "required": ["localProjectGrant", "entitlement"],
3189
+ "type": "object"
3190
+ },
3191
+ "capabilities": {
3192
+ "items": {
3193
+ "maxLength": 128,
3194
+ "minLength": 1,
3195
+ "pattern": "^[a-z][a-z0-9.-]*$",
3196
+ "type": "string"
3197
+ },
3198
+ "maxItems": 64,
3199
+ "type": "array"
3200
+ },
3201
+ "capabilityDetails": {
3202
+ "items": {
3203
+ "additionalProperties": false,
3204
+ "properties": {
3205
+ "limitations": {
3206
+ "items": {
3207
+ "maxLength": 128,
3208
+ "minLength": 1,
3209
+ "pattern": "^[A-Z][A-Z0-9_]*$",
3210
+ "type": "string"
3211
+ },
3212
+ "maxItems": 32,
3213
+ "type": "array"
3214
+ },
3215
+ "name": {
3216
+ "maxLength": 128,
3217
+ "minLength": 1,
3218
+ "pattern": "^[a-z][a-z0-9.-]*$",
3219
+ "type": "string"
3220
+ },
3221
+ "support": {
3222
+ "enum": ["supported", "degraded", "unsupported"],
3223
+ "type": "string"
3224
+ }
3225
+ },
3226
+ "required": ["name", "support"],
3227
+ "type": "object"
3228
+ },
3229
+ "maxItems": 64,
3230
+ "type": "array"
3231
+ },
3232
+ "compatibility": {
3233
+ "additionalProperties": false,
3234
+ "properties": {
3235
+ "limitations": {
3236
+ "items": {
3237
+ "maxLength": 128,
3238
+ "minLength": 1,
3239
+ "pattern": "^[A-Z][A-Z0-9_]*$",
3240
+ "type": "string"
3241
+ },
3242
+ "maxItems": 64,
3243
+ "type": "array"
3244
+ },
3245
+ "state": {
3246
+ "enum": [
3247
+ "compatible",
3248
+ "degraded",
3249
+ "untested",
3250
+ "incompatible",
3251
+ "deprecated",
3252
+ "revoked",
3253
+ "unavailable",
3254
+ "capability_missing"
3255
+ ],
3256
+ "type": "string"
3257
+ }
3258
+ },
3259
+ "required": ["state", "limitations"],
3260
+ "type": "object"
3261
+ },
3262
+ "connection": {
3263
+ "additionalProperties": false,
3264
+ "properties": {
3265
+ "availability": {
3266
+ "enum": [
3267
+ "healthy",
3268
+ "degraded",
3269
+ "reconnecting",
3270
+ "offline",
3271
+ "incompatible",
3272
+ "revoked",
3273
+ "stale",
3274
+ "unknown"
3275
+ ],
3276
+ "type": "string"
3277
+ },
3278
+ "health": {
3279
+ "enum": ["healthy", "degraded", "unavailable"],
3280
+ "type": "string"
3281
+ },
3282
+ "status": {
3283
+ "enum": [
3284
+ "connected",
3285
+ "degraded",
3286
+ "unavailable",
3287
+ "disconnected",
3288
+ "expired",
3289
+ "revoked"
3290
+ ],
3291
+ "type": "string"
3292
+ }
3293
+ },
3294
+ "required": ["status", "health", "availability"],
3295
+ "type": "object"
3296
+ },
3297
+ "connectionType": {
3298
+ "enum": ["managed_cloud", "managed_local", "external_local"],
3299
+ "type": "string"
3300
+ },
3301
+ "eligibility": {
3302
+ "additionalProperties": false,
3303
+ "properties": {
3304
+ "degradations": {
3305
+ "items": {
3306
+ "maxLength": 128,
3307
+ "minLength": 1,
3308
+ "pattern": "^[A-Z][A-Z0-9_]*$",
3309
+ "type": "string"
3310
+ },
3311
+ "maxItems": 128,
3312
+ "type": "array"
3313
+ },
3314
+ "reasons": {
3315
+ "items": {
3316
+ "maxLength": 128,
3317
+ "minLength": 1,
3318
+ "pattern": "^[A-Z][A-Z0-9_]*$",
3319
+ "type": "string"
3320
+ },
3321
+ "maxItems": 128,
3322
+ "type": "array"
3323
+ },
3324
+ "remediation": {
3325
+ "items": {
3326
+ "additionalProperties": false,
3327
+ "properties": {
3328
+ "code": {
3329
+ "maxLength": 128,
3330
+ "minLength": 1,
3331
+ "pattern": "^[A-Z][A-Z0-9_]*$",
3332
+ "type": "string"
3333
+ },
3334
+ "label": {
3335
+ "maxLength": 160,
3336
+ "minLength": 1,
3337
+ "type": "string"
3338
+ }
3339
+ },
3340
+ "required": ["code", "label"],
3341
+ "type": "object"
3342
+ },
3343
+ "maxItems": 32,
3344
+ "type": "array"
3345
+ },
3346
+ "state": {
3347
+ "enum": ["eligible", "degraded", "ineligible"],
3348
+ "type": "string"
3349
+ }
3350
+ },
3351
+ "required": ["state", "reasons", "degradations", "remediation"],
3352
+ "type": "object"
3353
+ },
3354
+ "family": {
3355
+ "maxLength": 64,
3356
+ "minLength": 1,
3357
+ "pattern": "^[a-z][a-z0-9-]*$",
3358
+ "type": "string"
3359
+ },
3360
+ "freshness": {
3361
+ "additionalProperties": false,
3362
+ "properties": {
3363
+ "expiresAt": {
3364
+ "format": "date-time",
3365
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
3366
+ "type": "string"
3367
+ },
3368
+ "observedAt": {
3369
+ "format": "date-time",
3370
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
3371
+ "type": "string"
3372
+ },
3373
+ "state": {
3374
+ "enum": ["fresh", "stale", "expired", "unknown"],
3375
+ "type": "string"
3376
+ }
3377
+ },
3378
+ "required": ["state", "observedAt"],
3379
+ "type": "object"
3380
+ },
3381
+ "limitations": {
3382
+ "items": {
3383
+ "maxLength": 128,
3384
+ "minLength": 1,
3385
+ "pattern": "^[A-Z][A-Z0-9_]*$",
3386
+ "type": "string"
3387
+ },
3388
+ "maxItems": 64,
3389
+ "type": "array"
3390
+ },
3391
+ "location": {
3392
+ "enum": ["local_device", "managed_sandbox"],
3393
+ "type": "string"
3394
+ },
3395
+ "node": {
3396
+ "additionalProperties": false,
3397
+ "properties": {
3398
+ "health": {
3399
+ "enum": ["online", "offline", "unknown", "revoked"],
3400
+ "type": "string"
3401
+ },
3402
+ "location": {
3403
+ "enum": ["local_device", "remote_host", "managed_sandbox"],
3404
+ "type": "string"
3405
+ },
3406
+ "observedAt": {
3407
+ "format": "date-time",
3408
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
3409
+ "type": "string"
3410
+ },
3411
+ "runtimeNodeRefId": {},
3412
+ "status": {
3413
+ "enum": ["online", "offline", "revoked"],
3414
+ "type": "string"
3415
+ }
3416
+ },
3417
+ "required": [
3418
+ "runtimeNodeRefId",
3419
+ "location",
3420
+ "status",
3421
+ "health",
3422
+ "observedAt"
3423
+ ],
3424
+ "type": "object"
3425
+ },
3426
+ "observedAt": {
3427
+ "format": "date-time",
3428
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
3429
+ "type": "string"
3430
+ },
3431
+ "runtimeConnectionId": {},
3432
+ "runtimeDefinitionId": {},
3433
+ "status": {
3434
+ "enum": ["available", "degraded", "unavailable", "revoked"],
3435
+ "type": "string"
3436
+ },
3437
+ "versions": {
3438
+ "additionalProperties": false,
3439
+ "properties": {
3440
+ "adapter": {
3441
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
3442
+ "type": "string"
3443
+ },
3444
+ "driver": {
3445
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
3446
+ "type": "string"
3447
+ },
3448
+ "harness": {
3449
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
3450
+ "type": "string"
3451
+ },
3452
+ "protocol": {
3453
+ "pattern": "^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)$",
3454
+ "type": "string"
3455
+ }
3456
+ },
3457
+ "required": ["adapter", "driver", "harness"],
3458
+ "type": "object"
3459
+ }
3460
+ },
3461
+ "required": [
3462
+ "runtimeConnectionId",
3463
+ "runtimeDefinitionId",
3464
+ "family",
3465
+ "connectionType",
3466
+ "location",
3467
+ "status",
3468
+ "connection",
3469
+ "freshness",
3470
+ "versions",
3471
+ "capabilities",
3472
+ "capabilityDetails",
3473
+ "compatibility",
3474
+ "access",
3475
+ "eligibility",
3476
+ "observedAt",
3477
+ "limitations"
3478
+ ],
3479
+ "type": "object"
3480
+ },
3481
+ "maxItems": 100,
3482
+ "type": "array"
3483
+ }
3484
+ },
3485
+ "required": ["runtimeConnections", "page"],
3486
+ "type": "object"
3487
+ },
3488
+ "requestId": {}
3489
+ },
3490
+ "required": ["contractVersion", "requestId", "correlation", "data"],
3491
+ "type": "object"
3492
+ }
3493
+ }
3494
+ },
3495
+ "description": "Successful response"
3496
+ },
3497
+ "default": {
3498
+ "content": {
3499
+ "application/json": {
3500
+ "schema": {
3501
+ "additionalProperties": false,
3502
+ "properties": {
3503
+ "contractVersion": {
3504
+ "additionalProperties": false,
3505
+ "properties": {
3506
+ "major": {
3507
+ "exclusiveMinimum": 0,
3508
+ "maximum": 9007199254740991,
3509
+ "type": "integer"
3510
+ },
3511
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
3512
+ },
3513
+ "required": ["major", "minor"],
3514
+ "type": "object"
3515
+ },
3516
+ "correlation": {
3517
+ "additionalProperties": false,
3518
+ "properties": {
3519
+ "causationCommandId": {},
3520
+ "parentEventId": {},
3521
+ "traceId": {}
3522
+ },
3523
+ "required": ["traceId"],
3524
+ "type": "object"
3525
+ },
3526
+ "error": {
3527
+ "additionalProperties": false,
3528
+ "properties": {
3529
+ "class": {
3530
+ "enum": [
3531
+ "validation",
3532
+ "authentication",
3533
+ "authorization",
3534
+ "conflict",
3535
+ "stale_reference",
3536
+ "capability_mismatch",
3537
+ "runtime_unavailable",
3538
+ "internal"
3539
+ ],
3540
+ "type": "string"
3541
+ },
3542
+ "code": {
3543
+ "maxLength": 96,
3544
+ "minLength": 1,
3545
+ "pattern": "^[A-Z][A-Z0-9_]*$",
3546
+ "type": "string"
3547
+ },
3548
+ "details": {
3549
+ "additionalProperties": {},
3550
+ "propertyNames": { "type": "string" },
3551
+ "type": "object"
3552
+ },
3553
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
3554
+ "retryable": { "type": "boolean" }
3555
+ },
3556
+ "required": ["class", "code", "message", "retryable"],
3557
+ "type": "object"
3558
+ },
3559
+ "requestId": {}
3560
+ },
3561
+ "required": ["contractVersion", "requestId", "correlation", "error"],
3562
+ "type": "object"
3563
+ }
3564
+ }
3565
+ },
3566
+ "description": "Normalized error response"
3567
+ }
3568
+ },
3569
+ "security": [{ "serviceBearer": [] }]
3570
+ }
3571
+ },
3572
+ "/v1/runtimes/list": {
3573
+ "post": {
3574
+ "operationId": "runtime.list",
3575
+ "requestBody": {
3576
+ "content": {
3577
+ "application/json": {
3578
+ "schema": {
3579
+ "properties": {
3580
+ "caller": {
3581
+ "properties": {
3582
+ "servicePrincipalId": {
3583
+ "maxLength": 64,
3584
+ "minLength": 5,
3585
+ "pattern": "^svc_[a-z][a-z0-9-]*$",
3586
+ "type": "string"
3587
+ }
3588
+ },
3589
+ "required": ["servicePrincipalId"],
3590
+ "type": "object"
3591
+ },
3592
+ "contractVersion": {
3593
+ "additionalProperties": false,
3594
+ "properties": {
3595
+ "major": {
3596
+ "exclusiveMinimum": 0,
3597
+ "maximum": 9007199254740991,
3598
+ "type": "integer"
3599
+ },
3600
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
3601
+ },
3602
+ "required": ["major", "minor"],
3603
+ "type": "object"
3604
+ },
3605
+ "correlation": {
3606
+ "properties": {
3607
+ "causationCommandId": {
3608
+ "pattern": "^cmd_[0-9A-HJKMNP-TV-Z]{26}$",
3609
+ "type": "string"
3610
+ },
3611
+ "parentEventId": {
3612
+ "pattern": "^evt_[0-9A-HJKMNP-TV-Z]{26}$",
3613
+ "type": "string"
3614
+ },
3615
+ "traceId": { "pattern": "^trc_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
3616
+ },
3617
+ "required": ["traceId"],
3618
+ "type": "object"
3619
+ },
3620
+ "operation": { "const": "runtime.list", "type": "string" },
3621
+ "parameters": {
3622
+ "properties": {
3623
+ "requiredCapabilities": {
3624
+ "items": {
3625
+ "maxLength": 128,
3626
+ "minLength": 1,
3627
+ "pattern": "^[a-z][a-z0-9.-]*$",
3628
+ "type": "string"
3629
+ },
3630
+ "maxItems": 128,
3631
+ "type": "array"
3632
+ },
3633
+ "status": {
3634
+ "enum": ["available", "degraded", "unavailable", "revoked"],
3635
+ "type": "string"
3636
+ }
3637
+ },
3638
+ "required": ["requiredCapabilities"],
3639
+ "type": "object"
3640
+ },
3641
+ "projectId": { "pattern": "^prj_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
3642
+ "requestedAt": {
3643
+ "format": "date-time",
3644
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
3645
+ "type": "string"
3646
+ },
3647
+ "requestId": { "pattern": "^req_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" },
3648
+ "workspaceId": { "pattern": "^wsp_[0-9A-HJKMNP-TV-Z]{26}$", "type": "string" }
3649
+ },
3650
+ "required": [
3651
+ "caller",
3652
+ "contractVersion",
3653
+ "requestId",
3654
+ "workspaceId",
3655
+ "correlation",
3656
+ "operation",
3657
+ "requestedAt",
3658
+ "parameters"
3659
+ ],
3660
+ "type": "object"
3661
+ }
3662
+ }
3663
+ },
3664
+ "required": true
3665
+ },
3666
+ "responses": {
3667
+ "200": {
3668
+ "content": {
3669
+ "application/json": {
3670
+ "schema": {
3671
+ "additionalProperties": false,
3672
+ "properties": {
3673
+ "contractVersion": {
3674
+ "additionalProperties": false,
3675
+ "properties": {
3676
+ "major": {
3677
+ "exclusiveMinimum": 0,
3678
+ "maximum": 9007199254740991,
3679
+ "type": "integer"
3680
+ },
3681
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
3682
+ },
3683
+ "required": ["major", "minor"],
3684
+ "type": "object"
3685
+ },
3686
+ "correlation": {
3687
+ "additionalProperties": false,
3688
+ "properties": {
3689
+ "causationCommandId": {},
3690
+ "parentEventId": {},
3691
+ "traceId": {}
3692
+ },
3693
+ "required": ["traceId"],
3694
+ "type": "object"
3695
+ },
3696
+ "data": {
3697
+ "additionalProperties": false,
3698
+ "properties": {
3699
+ "runtimes": {
3700
+ "items": {
3701
+ "additionalProperties": false,
3702
+ "properties": {
3703
+ "capabilities": {
3704
+ "items": {
3705
+ "maxLength": 128,
3706
+ "minLength": 1,
3707
+ "pattern": "^[a-z][a-z0-9.-]*$",
3708
+ "type": "string"
3709
+ },
3710
+ "maxItems": 128,
3711
+ "type": "array"
3712
+ },
3713
+ "family": { "maxLength": 64, "minLength": 1, "type": "string" },
3714
+ "limitations": {
3715
+ "items": { "maxLength": 512, "minLength": 1, "type": "string" },
3716
+ "maxItems": 64,
3717
+ "type": "array"
3718
+ },
3719
+ "location": {
3720
+ "enum": ["local_device", "remote_host", "managed_sandbox"],
3721
+ "type": "string"
3722
+ },
3723
+ "observedAt": {
3724
+ "format": "date-time",
3725
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
3726
+ "type": "string"
3727
+ },
3728
+ "runtimeConnectionId": {},
3729
+ "runtimeDefinitionId": {},
3730
+ "runtimeNodeRefId": {},
3731
+ "status": {
3732
+ "enum": ["available", "degraded", "unavailable", "revoked"],
3733
+ "type": "string"
3734
+ }
3735
+ },
3736
+ "required": [
3737
+ "runtimeNodeRefId",
3738
+ "runtimeDefinitionId",
3739
+ "family",
3740
+ "location",
3741
+ "status",
3742
+ "observedAt",
3743
+ "capabilities",
3744
+ "limitations"
3745
+ ],
3746
+ "type": "object"
3747
+ },
3748
+ "maxItems": 1000,
3749
+ "type": "array"
3750
+ }
3751
+ },
3752
+ "required": ["runtimes"],
3753
+ "type": "object"
3754
+ },
3755
+ "requestId": {}
3756
+ },
3757
+ "required": ["contractVersion", "requestId", "correlation", "data"],
3758
+ "type": "object"
3759
+ }
3760
+ }
3761
+ },
3762
+ "description": "Successful response"
3763
+ },
3764
+ "default": {
3765
+ "content": {
3766
+ "application/json": {
3767
+ "schema": {
3768
+ "additionalProperties": false,
3769
+ "properties": {
3770
+ "contractVersion": {
3771
+ "additionalProperties": false,
3772
+ "properties": {
3773
+ "major": {
3774
+ "exclusiveMinimum": 0,
3775
+ "maximum": 9007199254740991,
3776
+ "type": "integer"
3777
+ },
3778
+ "minor": { "maximum": 9007199254740991, "minimum": 0, "type": "integer" }
3779
+ },
3780
+ "required": ["major", "minor"],
3781
+ "type": "object"
3782
+ },
3783
+ "correlation": {
3784
+ "additionalProperties": false,
3785
+ "properties": {
3786
+ "causationCommandId": {},
3787
+ "parentEventId": {},
3788
+ "traceId": {}
3789
+ },
3790
+ "required": ["traceId"],
3791
+ "type": "object"
3792
+ },
3793
+ "error": {
3794
+ "additionalProperties": false,
3795
+ "properties": {
3796
+ "class": {
3797
+ "enum": [
3798
+ "validation",
3799
+ "authentication",
3800
+ "authorization",
3801
+ "conflict",
3802
+ "stale_reference",
3803
+ "capability_mismatch",
3804
+ "runtime_unavailable",
3805
+ "internal"
3806
+ ],
3807
+ "type": "string"
3808
+ },
3809
+ "code": {
3810
+ "maxLength": 96,
3811
+ "minLength": 1,
3812
+ "pattern": "^[A-Z][A-Z0-9_]*$",
3813
+ "type": "string"
3814
+ },
3815
+ "details": {
3816
+ "additionalProperties": {},
3817
+ "propertyNames": { "type": "string" },
3818
+ "type": "object"
3819
+ },
3820
+ "message": { "maxLength": 512, "minLength": 1, "type": "string" },
3821
+ "retryable": { "type": "boolean" }
3822
+ },
3823
+ "required": ["class", "code", "message", "retryable"],
3824
+ "type": "object"
3825
+ },
3826
+ "requestId": {}
3827
+ },
3828
+ "required": ["contractVersion", "requestId", "correlation", "error"],
3829
+ "type": "object"
3830
+ }
3831
+ }
3832
+ },
3833
+ "description": "Normalized error response"
3834
+ }
3835
+ },
3836
+ "security": [{ "serviceBearer": [] }]
3837
+ }
3838
+ }
3839
+ },
3840
+ "components": {
3841
+ "securitySchemes": {
3842
+ "serviceBearer": { "type": "http", "scheme": "bearer", "bearerFormat": "service-credential" }
3843
+ }
3844
+ }
3845
+ }