@work-shape/catalyst-api-contract 0.8.0-rc.6 → 0.8.0-rc.8

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.
package/openapi.json CHANGED
@@ -2,8 +2,8 @@
2
2
  "openapi": "3.1.0",
3
3
  "info": {
4
4
  "title": "Workshape Catalyst API",
5
- "version": "0.8.0-rc.6",
6
- "description": "Every operation under `/api/v1` of release 0.8.0-rc.6, and the unversioned readiness probe `/ready`. Every error answers with the envelope `ApiErrorResponse`; its `code` is the stable part, its `correlationId` names the request in the instance's log."
5
+ "version": "0.8.0-rc.8",
6
+ "description": "Every operation under `/api/v1` of release 0.8.0-rc.8, and the unversioned readiness probe `/ready`. Every error answers with the envelope `ApiErrorResponse`; its `code` is the stable part, its `correlationId` names the request in the instance's log."
7
7
  },
8
8
  "servers": [
9
9
  {
@@ -443,6 +443,136 @@
443
443
  "x-catalyst-rate-class": "write"
444
444
  }
445
445
  },
446
+ "/api/v1/agents/{name}/use": {
447
+ "put": {
448
+ "operationId": "agents.use.set",
449
+ "summary": "Set who uses one agent where it is available: everyone, or holders of agent.use",
450
+ "tags": [
451
+ "Agents"
452
+ ],
453
+ "security": [
454
+ {
455
+ "sessionCookie": [
456
+ "config_assets:write"
457
+ ]
458
+ },
459
+ {
460
+ "sessionToken": [
461
+ "config_assets:write"
462
+ ]
463
+ }
464
+ ],
465
+ "parameters": [
466
+ {
467
+ "name": "name",
468
+ "in": "path",
469
+ "required": true,
470
+ "schema": {
471
+ "type": "string"
472
+ }
473
+ },
474
+ {
475
+ "name": "Idempotency-Key",
476
+ "in": "header",
477
+ "description": "A key the caller chooses for one changing call, up to 255 characters. The same key with the same input answers what the first call answered instead of acting twice. A key belongs to its caller: another caller's same key is another call.",
478
+ "required": false,
479
+ "schema": {
480
+ "type": "string",
481
+ "minLength": 1,
482
+ "maxLength": 255
483
+ }
484
+ },
485
+ {
486
+ "name": "Catalyst-Unattended",
487
+ "in": "header",
488
+ "description": "`1` on a call of an API credential when nobody watches its terminal, such as `catalyst <kind> publish --yes`. The call is then not its caller's own confirmation: a call that needs one waits in the caller's Inbox and answers `202` with its run, status `pending_confirmation`. It only ever makes a call stricter; a browser session's call ignores it.",
489
+ "required": false,
490
+ "schema": {
491
+ "type": "string",
492
+ "minLength": 1,
493
+ "maxLength": 255
494
+ }
495
+ }
496
+ ],
497
+ "requestBody": {
498
+ "required": true,
499
+ "content": {
500
+ "application/json": {
501
+ "schema": {
502
+ "$ref": "#/components/schemas/SetAgentUseRequest"
503
+ }
504
+ }
505
+ }
506
+ },
507
+ "responses": {
508
+ "200": {
509
+ "description": "The result",
510
+ "content": {
511
+ "application/json": {
512
+ "schema": {
513
+ "$ref": "#/components/schemas/SetAgentUseResponse"
514
+ }
515
+ }
516
+ },
517
+ "headers": {
518
+ "Operation-Run-Id": {
519
+ "$ref": "#/components/headers/OperationRunId"
520
+ },
521
+ "Idempotent-Replayed": {
522
+ "$ref": "#/components/headers/IdempotentReplayed"
523
+ }
524
+ }
525
+ },
526
+ "202": {
527
+ "description": "The call waits for somebody else to approve it. This is its Operation Run; read it again at `Location`.",
528
+ "content": {
529
+ "application/json": {
530
+ "schema": {
531
+ "$ref": "#/components/schemas/OperationRun"
532
+ }
533
+ }
534
+ },
535
+ "headers": {
536
+ "Operation-Run-Id": {
537
+ "$ref": "#/components/headers/OperationRunId"
538
+ },
539
+ "Location": {
540
+ "$ref": "#/components/headers/Location"
541
+ },
542
+ "Idempotent-Replayed": {
543
+ "$ref": "#/components/headers/IdempotentReplayed"
544
+ }
545
+ }
546
+ },
547
+ "400": {
548
+ "$ref": "#/components/responses/BadRequest"
549
+ },
550
+ "401": {
551
+ "$ref": "#/components/responses/Unauthenticated"
552
+ },
553
+ "403": {
554
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlockedOrDeclined"
555
+ },
556
+ "404": {
557
+ "$ref": "#/components/responses/NotFound"
558
+ },
559
+ "409": {
560
+ "$ref": "#/components/responses/ConflictOrIdempotencyKeyReusedOrOperationInProgressOrOperationExpiredOrOutputNotRetained"
561
+ },
562
+ "422": {
563
+ "$ref": "#/components/responses/ValidationFailed"
564
+ },
565
+ "429": {
566
+ "$ref": "#/components/responses/RateLimited"
567
+ },
568
+ "500": {
569
+ "$ref": "#/components/responses/Internal"
570
+ }
571
+ },
572
+ "x-catalyst-effect": "changing",
573
+ "x-catalyst-rate-class": "write"
574
+ }
575
+ },
446
576
  "/api/v1/app-actions": {
447
577
  "get": {
448
578
  "operationId": "apps.actions.list",
@@ -949,6 +1079,36 @@
949
1079
  },
950
1080
  "finishedAt": {
951
1081
  "type": "string"
1082
+ },
1083
+ "mode": {
1084
+ "type": "string",
1085
+ "const": "test"
1086
+ },
1087
+ "workflowRevision": {
1088
+ "type": "object",
1089
+ "properties": {
1090
+ "kind": {
1091
+ "type": "string",
1092
+ "enum": [
1093
+ "draft",
1094
+ "published"
1095
+ ]
1096
+ },
1097
+ "number": {
1098
+ "type": "integer",
1099
+ "exclusiveMinimum": 0,
1100
+ "maximum": 9007199254740991
1101
+ }
1102
+ },
1103
+ "required": [
1104
+ "kind"
1105
+ ]
1106
+ },
1107
+ "simulatedSteps": {
1108
+ "type": "array",
1109
+ "items": {
1110
+ "type": "string"
1111
+ }
952
1112
  }
953
1113
  },
954
1114
  "required": [
@@ -1920,86 +2080,10 @@
1920
2080
  "x-catalyst-rate-class": "write"
1921
2081
  }
1922
2082
  },
1923
- "/api/v1/apps/{app}/preview": {
1924
- "post": {
1925
- "operationId": "apps.preview",
1926
- "summary": "Get the address a frame loads the published or the draft revision of an App from",
1927
- "tags": [
1928
- "Apps"
1929
- ],
1930
- "security": [
1931
- {
1932
- "sessionCookie": [
1933
- "conversation:read"
1934
- ]
1935
- },
1936
- {
1937
- "sessionToken": [
1938
- "conversation:read"
1939
- ]
1940
- }
1941
- ],
1942
- "parameters": [
1943
- {
1944
- "name": "app",
1945
- "in": "path",
1946
- "required": true,
1947
- "schema": {
1948
- "type": "string"
1949
- }
1950
- }
1951
- ],
1952
- "requestBody": {
1953
- "required": true,
1954
- "content": {
1955
- "application/json": {
1956
- "schema": {
1957
- "$ref": "#/components/schemas/AppPreviewRequest"
1958
- }
1959
- }
1960
- }
1961
- },
1962
- "responses": {
1963
- "200": {
1964
- "description": "The result",
1965
- "content": {
1966
- "application/json": {
1967
- "schema": {
1968
- "$ref": "#/components/schemas/AppPreview"
1969
- }
1970
- }
1971
- }
1972
- },
1973
- "400": {
1974
- "$ref": "#/components/responses/BadRequest"
1975
- },
1976
- "401": {
1977
- "$ref": "#/components/responses/Unauthenticated"
1978
- },
1979
- "403": {
1980
- "$ref": "#/components/responses/Forbidden"
1981
- },
1982
- "404": {
1983
- "$ref": "#/components/responses/NotFound"
1984
- },
1985
- "422": {
1986
- "$ref": "#/components/responses/ValidationFailed"
1987
- },
1988
- "429": {
1989
- "$ref": "#/components/responses/RateLimited"
1990
- },
1991
- "500": {
1992
- "$ref": "#/components/responses/Internal"
1993
- }
1994
- },
1995
- "x-catalyst-effect": "reading",
1996
- "x-catalyst-rate-class": "read"
1997
- }
1998
- },
1999
- "/api/v1/apps/{app}/update-from-page": {
2083
+ "/api/v1/apps/draft-hosts": {
2000
2084
  "post": {
2001
- "operationId": "apps.update_from_page",
2002
- "summary": "Write the newest revision of a Page as a new draft revision of the App that is updated from it",
2085
+ "operationId": "apps.allow_draft_host",
2086
+ "summary": "Allow an outside host a draft lists for the caller's own view of that draft, before it is published",
2003
2087
  "tags": [
2004
2088
  "Apps"
2005
2089
  ],
@@ -2016,14 +2100,6 @@
2016
2100
  }
2017
2101
  ],
2018
2102
  "parameters": [
2019
- {
2020
- "name": "app",
2021
- "in": "path",
2022
- "required": true,
2023
- "schema": {
2024
- "type": "string"
2025
- }
2026
- },
2027
2103
  {
2028
2104
  "name": "Idempotency-Key",
2029
2105
  "in": "header",
@@ -2052,7 +2128,7 @@
2052
2128
  "content": {
2053
2129
  "application/json": {
2054
2130
  "schema": {
2055
- "$ref": "#/components/schemas/UpdateAppFromPageRequest"
2131
+ "$ref": "#/components/schemas/AllowDraftHostRequest"
2056
2132
  }
2057
2133
  }
2058
2134
  }
@@ -2063,7 +2139,7 @@
2063
2139
  "content": {
2064
2140
  "application/json": {
2065
2141
  "schema": {
2066
- "$ref": "#/components/schemas/CreateAppFromPageResponse"
2142
+ "$ref": "#/components/schemas/AllowDraftHostResponse"
2067
2143
  }
2068
2144
  }
2069
2145
  },
@@ -2110,10 +2186,7 @@
2110
2186
  "$ref": "#/components/responses/NotFound"
2111
2187
  },
2112
2188
  "409": {
2113
- "$ref": "#/components/responses/ConflictOrIdempotencyKeyReusedOrOperationInProgressOrOperationExpiredOrOutputNotRetained"
2114
- },
2115
- "412": {
2116
- "$ref": "#/components/responses/RevisionConflict"
2189
+ "$ref": "#/components/responses/IdempotencyKeyReusedOrOperationInProgressOrOperationExpiredOrOutputNotRetained"
2117
2190
  },
2118
2191
  "422": {
2119
2192
  "$ref": "#/components/responses/ValidationFailed"
@@ -2129,12 +2202,12 @@
2129
2202
  "x-catalyst-rate-class": "write"
2130
2203
  }
2131
2204
  },
2132
- "/api/v1/assets/sync": {
2205
+ "/api/v1/apps/{app}/draft-actions/{action}/tries": {
2133
2206
  "post": {
2134
- "operationId": "assets.sync",
2135
- "summary": "Apply puts and deletes among the assets of one owner, all of them or none",
2207
+ "operationId": "apps.try_action",
2208
+ "summary": "Try one action of an App's draft as its button does: reads read, changes are simulated, and a workflow action starts a test run",
2136
2209
  "tags": [
2137
- "Assets"
2210
+ "Apps"
2138
2211
  ],
2139
2212
  "security": [
2140
2213
  {
@@ -2146,14 +2219,25 @@
2146
2219
  "sessionToken": [
2147
2220
  "config_assets:write"
2148
2221
  ]
2149
- },
2150
- {
2151
- "accessToken": [
2152
- "config_assets:write"
2153
- ]
2154
2222
  }
2155
2223
  ],
2156
2224
  "parameters": [
2225
+ {
2226
+ "name": "app",
2227
+ "in": "path",
2228
+ "required": true,
2229
+ "schema": {
2230
+ "type": "string"
2231
+ }
2232
+ },
2233
+ {
2234
+ "name": "action",
2235
+ "in": "path",
2236
+ "required": true,
2237
+ "schema": {
2238
+ "type": "string"
2239
+ }
2240
+ },
2157
2241
  {
2158
2242
  "name": "Idempotency-Key",
2159
2243
  "in": "header",
@@ -2182,7 +2266,7 @@
2182
2266
  "content": {
2183
2267
  "application/json": {
2184
2268
  "schema": {
2185
- "$ref": "#/components/schemas/SyncAssetsRequest"
2269
+ "$ref": "#/components/schemas/AppTryActionRequestInput"
2186
2270
  }
2187
2271
  }
2188
2272
  }
@@ -2193,7 +2277,7 @@
2193
2277
  "content": {
2194
2278
  "application/json": {
2195
2279
  "schema": {
2196
- "$ref": "#/components/schemas/SyncAssetsResponse"
2280
+ "$ref": "#/components/schemas/AppTryActionResult"
2197
2281
  }
2198
2282
  }
2199
2283
  },
@@ -2236,60 +2320,64 @@
2236
2320
  "403": {
2237
2321
  "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlockedOrDeclined"
2238
2322
  },
2323
+ "404": {
2324
+ "$ref": "#/components/responses/NotFound"
2325
+ },
2239
2326
  "409": {
2240
2327
  "$ref": "#/components/responses/ConflictOrIdempotencyKeyReusedOrOperationInProgressOrOperationExpiredOrOutputNotRetained"
2241
2328
  },
2242
- "412": {
2243
- "$ref": "#/components/responses/RevisionConflict"
2244
- },
2245
2329
  "422": {
2246
2330
  "$ref": "#/components/responses/ValidationFailed"
2247
2331
  },
2248
- "428": {
2249
- "$ref": "#/components/responses/PreconditionRequired"
2250
- },
2251
2332
  "429": {
2252
2333
  "$ref": "#/components/responses/RateLimited"
2253
2334
  },
2254
2335
  "500": {
2255
2336
  "$ref": "#/components/responses/Internal"
2337
+ },
2338
+ "504": {
2339
+ "$ref": "#/components/responses/Timeout"
2256
2340
  }
2257
2341
  },
2258
2342
  "x-catalyst-effect": "changing",
2259
2343
  "x-catalyst-rate-class": "write"
2260
2344
  }
2261
2345
  },
2262
- "/api/v1/assets/sync/check": {
2346
+ "/api/v1/apps/{app}/preview": {
2263
2347
  "post": {
2264
- "operationId": "assets.sync_check",
2265
- "summary": "Check a batch as a sync would, without applying it",
2348
+ "operationId": "apps.preview",
2349
+ "summary": "Get the address a frame loads the published or the draft revision of an App from",
2266
2350
  "tags": [
2267
- "Assets"
2351
+ "Apps"
2268
2352
  ],
2269
2353
  "security": [
2270
2354
  {
2271
2355
  "sessionCookie": [
2272
- "config_assets:write"
2356
+ "conversation:read"
2273
2357
  ]
2274
2358
  },
2275
2359
  {
2276
2360
  "sessionToken": [
2277
- "config_assets:write"
2361
+ "conversation:read"
2278
2362
  ]
2279
- },
2363
+ }
2364
+ ],
2365
+ "parameters": [
2280
2366
  {
2281
- "accessToken": [
2282
- "config_assets:write"
2283
- ]
2367
+ "name": "app",
2368
+ "in": "path",
2369
+ "required": true,
2370
+ "schema": {
2371
+ "type": "string"
2372
+ }
2284
2373
  }
2285
2374
  ],
2286
- "parameters": [],
2287
2375
  "requestBody": {
2288
2376
  "required": true,
2289
2377
  "content": {
2290
2378
  "application/json": {
2291
2379
  "schema": {
2292
- "$ref": "#/components/schemas/SyncAssetsRequest"
2380
+ "$ref": "#/components/schemas/AppPreviewRequest"
2293
2381
  }
2294
2382
  }
2295
2383
  }
@@ -2300,14 +2388,9 @@
2300
2388
  "content": {
2301
2389
  "application/json": {
2302
2390
  "schema": {
2303
- "$ref": "#/components/schemas/CheckAssetSyncResponse"
2391
+ "$ref": "#/components/schemas/AppPreview"
2304
2392
  }
2305
2393
  }
2306
- },
2307
- "headers": {
2308
- "Operation-Run-Id": {
2309
- "$ref": "#/components/headers/OperationRunId"
2310
- }
2311
2394
  }
2312
2395
  },
2313
2396
  "400": {
@@ -2317,20 +2400,14 @@
2317
2400
  "$ref": "#/components/responses/Unauthenticated"
2318
2401
  },
2319
2402
  "403": {
2320
- "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
2321
- },
2322
- "409": {
2323
- "$ref": "#/components/responses/Conflict"
2403
+ "$ref": "#/components/responses/Forbidden"
2324
2404
  },
2325
- "412": {
2326
- "$ref": "#/components/responses/RevisionConflict"
2405
+ "404": {
2406
+ "$ref": "#/components/responses/NotFound"
2327
2407
  },
2328
2408
  "422": {
2329
2409
  "$ref": "#/components/responses/ValidationFailed"
2330
2410
  },
2331
- "428": {
2332
- "$ref": "#/components/responses/PreconditionRequired"
2333
- },
2334
2411
  "429": {
2335
2412
  "$ref": "#/components/responses/RateLimited"
2336
2413
  },
@@ -2342,12 +2419,12 @@
2342
2419
  "x-catalyst-rate-class": "read"
2343
2420
  }
2344
2421
  },
2345
- "/api/v1/assets/{kind}": {
2422
+ "/api/v1/apps/{app}/publish-review": {
2346
2423
  "get": {
2347
- "operationId": "assets.list",
2348
- "summary": "List the assets of one kind the caller may read, by name",
2424
+ "operationId": "apps.publish_review",
2425
+ "summary": "Read what publishing an App's draft comes to: the App and the Workflows it calls, their pending drafts, publish questions and what would refuse them",
2349
2426
  "tags": [
2350
- "Assets"
2427
+ "Apps"
2351
2428
  ],
2352
2429
  "security": [
2353
2430
  {
@@ -2359,102 +2436,25 @@
2359
2436
  "sessionToken": [
2360
2437
  "config_assets:read"
2361
2438
  ]
2362
- },
2363
- {
2364
- "accessToken": [
2365
- "config_assets:read"
2366
- ]
2367
2439
  }
2368
2440
  ],
2369
2441
  "parameters": [
2370
2442
  {
2371
- "name": "kind",
2443
+ "name": "app",
2372
2444
  "in": "path",
2373
2445
  "required": true,
2374
2446
  "schema": {
2375
2447
  "type": "string"
2376
2448
  }
2377
- },
2378
- {
2379
- "name": "limit",
2380
- "in": "query",
2381
- "required": false,
2382
- "schema": {
2383
- "default": 50,
2384
- "type": "integer",
2385
- "minimum": 1,
2386
- "maximum": 200
2387
- }
2388
- },
2389
- {
2390
- "name": "cursor",
2391
- "in": "query",
2392
- "required": false,
2393
- "schema": {
2394
- "type": "string",
2395
- "minLength": 1
2396
- }
2397
- },
2398
- {
2399
- "name": "prefix",
2400
- "in": "query",
2401
- "required": false,
2402
- "schema": {
2403
- "type": "string",
2404
- "minLength": 1,
2405
- "maxLength": 200
2406
- }
2407
- },
2408
- {
2409
- "name": "text",
2410
- "in": "query",
2411
- "required": false,
2412
- "schema": {
2413
- "type": "string",
2414
- "minLength": 1,
2415
- "maxLength": 200
2416
- }
2417
- },
2418
- {
2419
- "name": "workspaceId",
2420
- "in": "query",
2421
- "required": false,
2422
- "schema": {
2423
- "type": "string",
2424
- "minLength": 1
2425
- }
2426
- },
2427
- {
2428
- "name": "locale",
2429
- "in": "query",
2430
- "required": false,
2431
- "schema": {
2432
- "type": "string",
2433
- "maxLength": 35
2434
- }
2435
2449
  }
2436
2450
  ],
2437
2451
  "responses": {
2438
2452
  "200": {
2439
- "description": "One page of the list",
2453
+ "description": "The result",
2440
2454
  "content": {
2441
2455
  "application/json": {
2442
2456
  "schema": {
2443
- "type": "object",
2444
- "properties": {
2445
- "items": {
2446
- "type": "array",
2447
- "items": {
2448
- "$ref": "#/components/schemas/AssetSummary"
2449
- }
2450
- },
2451
- "nextCursor": {
2452
- "type": "string"
2453
- }
2454
- },
2455
- "required": [
2456
- "items"
2457
- ]
2457
+ "$ref": "#/components/schemas/AppPublishReview"
2458
2458
  }
2459
2459
  }
2460
2460
  },
@@ -2473,6 +2473,9 @@
2473
2473
  "403": {
2474
2474
  "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
2475
2475
  },
2476
+ "404": {
2477
+ "$ref": "#/components/responses/NotFound"
2478
+ },
2476
2479
  "422": {
2477
2480
  "$ref": "#/components/responses/ValidationFailed"
2478
2481
  },
@@ -2487,12 +2490,12 @@
2487
2490
  "x-catalyst-rate-class": "read"
2488
2491
  }
2489
2492
  },
2490
- "/api/v1/assets/{kind}/check-name": {
2493
+ "/api/v1/apps/{app}/update-from-page": {
2491
2494
  "post": {
2492
- "operationId": "assets.check_name",
2493
- "summary": "Check whether a new asset could take a name, without creating it",
2495
+ "operationId": "apps.update_from_page",
2496
+ "summary": "Write the newest revision of a Page as a new draft revision of the App that is updated from it",
2494
2497
  "tags": [
2495
- "Assets"
2498
+ "Apps"
2496
2499
  ],
2497
2500
  "security": [
2498
2501
  {
@@ -2504,21 +2507,38 @@
2504
2507
  "sessionToken": [
2505
2508
  "config_assets:write"
2506
2509
  ]
2507
- },
2508
- {
2509
- "accessToken": [
2510
- "config_assets:write"
2511
- ]
2512
2510
  }
2513
2511
  ],
2514
2512
  "parameters": [
2515
2513
  {
2516
- "name": "kind",
2514
+ "name": "app",
2517
2515
  "in": "path",
2518
2516
  "required": true,
2519
2517
  "schema": {
2520
2518
  "type": "string"
2521
2519
  }
2520
+ },
2521
+ {
2522
+ "name": "Idempotency-Key",
2523
+ "in": "header",
2524
+ "description": "A key the caller chooses for one changing call, up to 255 characters. The same key with the same input answers what the first call answered instead of acting twice. A key belongs to its caller: another caller's same key is another call.",
2525
+ "required": false,
2526
+ "schema": {
2527
+ "type": "string",
2528
+ "minLength": 1,
2529
+ "maxLength": 255
2530
+ }
2531
+ },
2532
+ {
2533
+ "name": "Catalyst-Unattended",
2534
+ "in": "header",
2535
+ "description": "`1` on a call of an API credential when nobody watches its terminal, such as `catalyst <kind> publish --yes`. The call is then not its caller's own confirmation: a call that needs one waits in the caller's Inbox and answers `202` with its run, status `pending_confirmation`. It only ever makes a call stricter; a browser session's call ignores it.",
2536
+ "required": false,
2537
+ "schema": {
2538
+ "type": "string",
2539
+ "minLength": 1,
2540
+ "maxLength": 255
2541
+ }
2522
2542
  }
2523
2543
  ],
2524
2544
  "requestBody": {
@@ -2526,7 +2546,7 @@
2526
2546
  "content": {
2527
2547
  "application/json": {
2528
2548
  "schema": {
2529
- "$ref": "#/components/schemas/CheckAssetNameRequest"
2549
+ "$ref": "#/components/schemas/UpdateAppFromPageRequest"
2530
2550
  }
2531
2551
  }
2532
2552
  }
@@ -2537,13 +2557,37 @@
2537
2557
  "content": {
2538
2558
  "application/json": {
2539
2559
  "schema": {
2540
- "$ref": "#/components/schemas/CheckAssetNameResponse"
2560
+ "$ref": "#/components/schemas/CreateAppFromPageResponse"
2541
2561
  }
2542
2562
  }
2543
2563
  },
2544
2564
  "headers": {
2545
2565
  "Operation-Run-Id": {
2546
2566
  "$ref": "#/components/headers/OperationRunId"
2567
+ },
2568
+ "Idempotent-Replayed": {
2569
+ "$ref": "#/components/headers/IdempotentReplayed"
2570
+ }
2571
+ }
2572
+ },
2573
+ "202": {
2574
+ "description": "The call waits for somebody else to approve it. This is its Operation Run; read it again at `Location`.",
2575
+ "content": {
2576
+ "application/json": {
2577
+ "schema": {
2578
+ "$ref": "#/components/schemas/OperationRun"
2579
+ }
2580
+ }
2581
+ },
2582
+ "headers": {
2583
+ "Operation-Run-Id": {
2584
+ "$ref": "#/components/headers/OperationRunId"
2585
+ },
2586
+ "Location": {
2587
+ "$ref": "#/components/headers/Location"
2588
+ },
2589
+ "Idempotent-Replayed": {
2590
+ "$ref": "#/components/headers/IdempotentReplayed"
2547
2591
  }
2548
2592
  }
2549
2593
  },
@@ -2554,7 +2598,16 @@
2554
2598
  "$ref": "#/components/responses/Unauthenticated"
2555
2599
  },
2556
2600
  "403": {
2557
- "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
2601
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlockedOrDeclined"
2602
+ },
2603
+ "404": {
2604
+ "$ref": "#/components/responses/NotFound"
2605
+ },
2606
+ "409": {
2607
+ "$ref": "#/components/responses/ConflictOrIdempotencyKeyReusedOrOperationInProgressOrOperationExpiredOrOutputNotRetained"
2608
+ },
2609
+ "412": {
2610
+ "$ref": "#/components/responses/RevisionConflict"
2558
2611
  },
2559
2612
  "422": {
2560
2613
  "$ref": "#/components/responses/ValidationFailed"
@@ -2566,14 +2619,14 @@
2566
2619
  "$ref": "#/components/responses/Internal"
2567
2620
  }
2568
2621
  },
2569
- "x-catalyst-effect": "reading",
2570
- "x-catalyst-rate-class": "read"
2622
+ "x-catalyst-effect": "changing",
2623
+ "x-catalyst-rate-class": "write"
2571
2624
  }
2572
2625
  },
2573
- "/api/v1/assets/{kind}/default": {
2626
+ "/api/v1/assets/sync": {
2574
2627
  "post": {
2575
- "operationId": "assets.set_default",
2576
- "summary": "Set or clear the instance's default asset of one kind",
2628
+ "operationId": "assets.sync",
2629
+ "summary": "Apply puts and deletes among the assets of one owner, all of them or none",
2577
2630
  "tags": [
2578
2631
  "Assets"
2579
2632
  ],
@@ -2595,14 +2648,6 @@
2595
2648
  }
2596
2649
  ],
2597
2650
  "parameters": [
2598
- {
2599
- "name": "kind",
2600
- "in": "path",
2601
- "required": true,
2602
- "schema": {
2603
- "type": "string"
2604
- }
2605
- },
2606
2651
  {
2607
2652
  "name": "Idempotency-Key",
2608
2653
  "in": "header",
@@ -2631,7 +2676,7 @@
2631
2676
  "content": {
2632
2677
  "application/json": {
2633
2678
  "schema": {
2634
- "$ref": "#/components/schemas/SetAssetDefaultRequest"
2679
+ "$ref": "#/components/schemas/SyncAssetsRequest"
2635
2680
  }
2636
2681
  }
2637
2682
  }
@@ -2642,7 +2687,7 @@
2642
2687
  "content": {
2643
2688
  "application/json": {
2644
2689
  "schema": {
2645
- "$ref": "#/components/schemas/SetAssetDefaultResponse"
2690
+ "$ref": "#/components/schemas/SyncAssetsResponse"
2646
2691
  }
2647
2692
  }
2648
2693
  },
@@ -2688,9 +2733,15 @@
2688
2733
  "409": {
2689
2734
  "$ref": "#/components/responses/ConflictOrIdempotencyKeyReusedOrOperationInProgressOrOperationExpiredOrOutputNotRetained"
2690
2735
  },
2736
+ "412": {
2737
+ "$ref": "#/components/responses/RevisionConflict"
2738
+ },
2691
2739
  "422": {
2692
2740
  "$ref": "#/components/responses/ValidationFailed"
2693
2741
  },
2742
+ "428": {
2743
+ "$ref": "#/components/responses/PreconditionRequired"
2744
+ },
2694
2745
  "429": {
2695
2746
  "$ref": "#/components/responses/RateLimited"
2696
2747
  },
@@ -2702,46 +2753,37 @@
2702
2753
  "x-catalyst-rate-class": "write"
2703
2754
  }
2704
2755
  },
2705
- "/api/v1/assets/{kind}/validate": {
2756
+ "/api/v1/assets/sync/check": {
2706
2757
  "post": {
2707
- "operationId": "assets.validate",
2708
- "summary": "Check one definition against the instance without writing it",
2758
+ "operationId": "assets.sync_check",
2759
+ "summary": "Check a batch as a sync would, without applying it",
2709
2760
  "tags": [
2710
2761
  "Assets"
2711
2762
  ],
2712
2763
  "security": [
2713
2764
  {
2714
2765
  "sessionCookie": [
2715
- "config_assets:read"
2766
+ "config_assets:write"
2716
2767
  ]
2717
2768
  },
2718
2769
  {
2719
2770
  "sessionToken": [
2720
- "config_assets:read"
2771
+ "config_assets:write"
2721
2772
  ]
2722
2773
  },
2723
2774
  {
2724
2775
  "accessToken": [
2725
- "config_assets:read"
2776
+ "config_assets:write"
2726
2777
  ]
2727
2778
  }
2728
2779
  ],
2729
- "parameters": [
2730
- {
2731
- "name": "kind",
2732
- "in": "path",
2733
- "required": true,
2734
- "schema": {
2735
- "type": "string"
2736
- }
2737
- }
2738
- ],
2780
+ "parameters": [],
2739
2781
  "requestBody": {
2740
2782
  "required": true,
2741
2783
  "content": {
2742
2784
  "application/json": {
2743
2785
  "schema": {
2744
- "$ref": "#/components/schemas/ValidateAssetRequest"
2786
+ "$ref": "#/components/schemas/SyncAssetsRequest"
2745
2787
  }
2746
2788
  }
2747
2789
  }
@@ -2752,7 +2794,7 @@
2752
2794
  "content": {
2753
2795
  "application/json": {
2754
2796
  "schema": {
2755
- "$ref": "#/components/schemas/ValidateAssetResponse"
2797
+ "$ref": "#/components/schemas/CheckAssetSyncResponse"
2756
2798
  }
2757
2799
  }
2758
2800
  },
@@ -2771,9 +2813,18 @@
2771
2813
  "403": {
2772
2814
  "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
2773
2815
  },
2816
+ "409": {
2817
+ "$ref": "#/components/responses/Conflict"
2818
+ },
2819
+ "412": {
2820
+ "$ref": "#/components/responses/RevisionConflict"
2821
+ },
2774
2822
  "422": {
2775
2823
  "$ref": "#/components/responses/ValidationFailed"
2776
2824
  },
2825
+ "428": {
2826
+ "$ref": "#/components/responses/PreconditionRequired"
2827
+ },
2777
2828
  "429": {
2778
2829
  "$ref": "#/components/responses/RateLimited"
2779
2830
  },
@@ -2785,10 +2836,453 @@
2785
2836
  "x-catalyst-rate-class": "read"
2786
2837
  }
2787
2838
  },
2788
- "/api/v1/assets/{kind}/{name}": {
2839
+ "/api/v1/assets/{kind}": {
2789
2840
  "get": {
2790
- "operationId": "assets.get",
2791
- "summary": "Read one asset, or one revision of it with its source files",
2841
+ "operationId": "assets.list",
2842
+ "summary": "List the assets of one kind the caller may read, by name",
2843
+ "tags": [
2844
+ "Assets"
2845
+ ],
2846
+ "security": [
2847
+ {
2848
+ "sessionCookie": [
2849
+ "config_assets:read"
2850
+ ]
2851
+ },
2852
+ {
2853
+ "sessionToken": [
2854
+ "config_assets:read"
2855
+ ]
2856
+ },
2857
+ {
2858
+ "accessToken": [
2859
+ "config_assets:read"
2860
+ ]
2861
+ }
2862
+ ],
2863
+ "parameters": [
2864
+ {
2865
+ "name": "kind",
2866
+ "in": "path",
2867
+ "required": true,
2868
+ "schema": {
2869
+ "type": "string"
2870
+ }
2871
+ },
2872
+ {
2873
+ "name": "limit",
2874
+ "in": "query",
2875
+ "required": false,
2876
+ "schema": {
2877
+ "default": 50,
2878
+ "type": "integer",
2879
+ "minimum": 1,
2880
+ "maximum": 200
2881
+ }
2882
+ },
2883
+ {
2884
+ "name": "cursor",
2885
+ "in": "query",
2886
+ "required": false,
2887
+ "schema": {
2888
+ "type": "string",
2889
+ "minLength": 1
2890
+ }
2891
+ },
2892
+ {
2893
+ "name": "prefix",
2894
+ "in": "query",
2895
+ "required": false,
2896
+ "schema": {
2897
+ "type": "string",
2898
+ "minLength": 1,
2899
+ "maxLength": 200
2900
+ }
2901
+ },
2902
+ {
2903
+ "name": "text",
2904
+ "in": "query",
2905
+ "required": false,
2906
+ "schema": {
2907
+ "type": "string",
2908
+ "minLength": 1,
2909
+ "maxLength": 200
2910
+ }
2911
+ },
2912
+ {
2913
+ "name": "workspaceId",
2914
+ "in": "query",
2915
+ "required": false,
2916
+ "schema": {
2917
+ "type": "string",
2918
+ "minLength": 1
2919
+ }
2920
+ },
2921
+ {
2922
+ "name": "locale",
2923
+ "in": "query",
2924
+ "required": false,
2925
+ "schema": {
2926
+ "type": "string",
2927
+ "maxLength": 35
2928
+ }
2929
+ }
2930
+ ],
2931
+ "responses": {
2932
+ "200": {
2933
+ "description": "One page of the list",
2934
+ "content": {
2935
+ "application/json": {
2936
+ "schema": {
2937
+ "type": "object",
2938
+ "properties": {
2939
+ "items": {
2940
+ "type": "array",
2941
+ "items": {
2942
+ "$ref": "#/components/schemas/AssetSummary"
2943
+ }
2944
+ },
2945
+ "nextCursor": {
2946
+ "type": "string"
2947
+ }
2948
+ },
2949
+ "required": [
2950
+ "items"
2951
+ ]
2952
+ }
2953
+ }
2954
+ },
2955
+ "headers": {
2956
+ "Operation-Run-Id": {
2957
+ "$ref": "#/components/headers/OperationRunId"
2958
+ }
2959
+ }
2960
+ },
2961
+ "400": {
2962
+ "$ref": "#/components/responses/BadRequest"
2963
+ },
2964
+ "401": {
2965
+ "$ref": "#/components/responses/Unauthenticated"
2966
+ },
2967
+ "403": {
2968
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
2969
+ },
2970
+ "422": {
2971
+ "$ref": "#/components/responses/ValidationFailed"
2972
+ },
2973
+ "429": {
2974
+ "$ref": "#/components/responses/RateLimited"
2975
+ },
2976
+ "500": {
2977
+ "$ref": "#/components/responses/Internal"
2978
+ }
2979
+ },
2980
+ "x-catalyst-effect": "reading",
2981
+ "x-catalyst-rate-class": "read"
2982
+ }
2983
+ },
2984
+ "/api/v1/assets/{kind}/check-name": {
2985
+ "post": {
2986
+ "operationId": "assets.check_name",
2987
+ "summary": "Check whether a new asset could take a name, without creating it",
2988
+ "tags": [
2989
+ "Assets"
2990
+ ],
2991
+ "security": [
2992
+ {
2993
+ "sessionCookie": [
2994
+ "config_assets:write"
2995
+ ]
2996
+ },
2997
+ {
2998
+ "sessionToken": [
2999
+ "config_assets:write"
3000
+ ]
3001
+ },
3002
+ {
3003
+ "accessToken": [
3004
+ "config_assets:write"
3005
+ ]
3006
+ }
3007
+ ],
3008
+ "parameters": [
3009
+ {
3010
+ "name": "kind",
3011
+ "in": "path",
3012
+ "required": true,
3013
+ "schema": {
3014
+ "type": "string"
3015
+ }
3016
+ }
3017
+ ],
3018
+ "requestBody": {
3019
+ "required": true,
3020
+ "content": {
3021
+ "application/json": {
3022
+ "schema": {
3023
+ "$ref": "#/components/schemas/CheckAssetNameRequest"
3024
+ }
3025
+ }
3026
+ }
3027
+ },
3028
+ "responses": {
3029
+ "200": {
3030
+ "description": "The result",
3031
+ "content": {
3032
+ "application/json": {
3033
+ "schema": {
3034
+ "$ref": "#/components/schemas/CheckAssetNameResponse"
3035
+ }
3036
+ }
3037
+ },
3038
+ "headers": {
3039
+ "Operation-Run-Id": {
3040
+ "$ref": "#/components/headers/OperationRunId"
3041
+ }
3042
+ }
3043
+ },
3044
+ "400": {
3045
+ "$ref": "#/components/responses/BadRequest"
3046
+ },
3047
+ "401": {
3048
+ "$ref": "#/components/responses/Unauthenticated"
3049
+ },
3050
+ "403": {
3051
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
3052
+ },
3053
+ "422": {
3054
+ "$ref": "#/components/responses/ValidationFailed"
3055
+ },
3056
+ "429": {
3057
+ "$ref": "#/components/responses/RateLimited"
3058
+ },
3059
+ "500": {
3060
+ "$ref": "#/components/responses/Internal"
3061
+ }
3062
+ },
3063
+ "x-catalyst-effect": "reading",
3064
+ "x-catalyst-rate-class": "read"
3065
+ }
3066
+ },
3067
+ "/api/v1/assets/{kind}/default": {
3068
+ "post": {
3069
+ "operationId": "assets.set_default",
3070
+ "summary": "Set or clear the instance's default asset of one kind",
3071
+ "tags": [
3072
+ "Assets"
3073
+ ],
3074
+ "security": [
3075
+ {
3076
+ "sessionCookie": [
3077
+ "config_assets:write"
3078
+ ]
3079
+ },
3080
+ {
3081
+ "sessionToken": [
3082
+ "config_assets:write"
3083
+ ]
3084
+ },
3085
+ {
3086
+ "accessToken": [
3087
+ "config_assets:write"
3088
+ ]
3089
+ }
3090
+ ],
3091
+ "parameters": [
3092
+ {
3093
+ "name": "kind",
3094
+ "in": "path",
3095
+ "required": true,
3096
+ "schema": {
3097
+ "type": "string"
3098
+ }
3099
+ },
3100
+ {
3101
+ "name": "Idempotency-Key",
3102
+ "in": "header",
3103
+ "description": "A key the caller chooses for one changing call, up to 255 characters. The same key with the same input answers what the first call answered instead of acting twice. A key belongs to its caller: another caller's same key is another call.",
3104
+ "required": false,
3105
+ "schema": {
3106
+ "type": "string",
3107
+ "minLength": 1,
3108
+ "maxLength": 255
3109
+ }
3110
+ },
3111
+ {
3112
+ "name": "Catalyst-Unattended",
3113
+ "in": "header",
3114
+ "description": "`1` on a call of an API credential when nobody watches its terminal, such as `catalyst <kind> publish --yes`. The call is then not its caller's own confirmation: a call that needs one waits in the caller's Inbox and answers `202` with its run, status `pending_confirmation`. It only ever makes a call stricter; a browser session's call ignores it.",
3115
+ "required": false,
3116
+ "schema": {
3117
+ "type": "string",
3118
+ "minLength": 1,
3119
+ "maxLength": 255
3120
+ }
3121
+ }
3122
+ ],
3123
+ "requestBody": {
3124
+ "required": true,
3125
+ "content": {
3126
+ "application/json": {
3127
+ "schema": {
3128
+ "$ref": "#/components/schemas/SetAssetDefaultRequest"
3129
+ }
3130
+ }
3131
+ }
3132
+ },
3133
+ "responses": {
3134
+ "200": {
3135
+ "description": "The result",
3136
+ "content": {
3137
+ "application/json": {
3138
+ "schema": {
3139
+ "$ref": "#/components/schemas/SetAssetDefaultResponse"
3140
+ }
3141
+ }
3142
+ },
3143
+ "headers": {
3144
+ "Operation-Run-Id": {
3145
+ "$ref": "#/components/headers/OperationRunId"
3146
+ },
3147
+ "Idempotent-Replayed": {
3148
+ "$ref": "#/components/headers/IdempotentReplayed"
3149
+ }
3150
+ }
3151
+ },
3152
+ "202": {
3153
+ "description": "The call waits for somebody else to approve it. This is its Operation Run; read it again at `Location`.",
3154
+ "content": {
3155
+ "application/json": {
3156
+ "schema": {
3157
+ "$ref": "#/components/schemas/OperationRun"
3158
+ }
3159
+ }
3160
+ },
3161
+ "headers": {
3162
+ "Operation-Run-Id": {
3163
+ "$ref": "#/components/headers/OperationRunId"
3164
+ },
3165
+ "Location": {
3166
+ "$ref": "#/components/headers/Location"
3167
+ },
3168
+ "Idempotent-Replayed": {
3169
+ "$ref": "#/components/headers/IdempotentReplayed"
3170
+ }
3171
+ }
3172
+ },
3173
+ "400": {
3174
+ "$ref": "#/components/responses/BadRequest"
3175
+ },
3176
+ "401": {
3177
+ "$ref": "#/components/responses/Unauthenticated"
3178
+ },
3179
+ "403": {
3180
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlockedOrDeclined"
3181
+ },
3182
+ "409": {
3183
+ "$ref": "#/components/responses/ConflictOrIdempotencyKeyReusedOrOperationInProgressOrOperationExpiredOrOutputNotRetained"
3184
+ },
3185
+ "422": {
3186
+ "$ref": "#/components/responses/ValidationFailed"
3187
+ },
3188
+ "429": {
3189
+ "$ref": "#/components/responses/RateLimited"
3190
+ },
3191
+ "500": {
3192
+ "$ref": "#/components/responses/Internal"
3193
+ }
3194
+ },
3195
+ "x-catalyst-effect": "changing",
3196
+ "x-catalyst-rate-class": "write"
3197
+ }
3198
+ },
3199
+ "/api/v1/assets/{kind}/validate": {
3200
+ "post": {
3201
+ "operationId": "assets.validate",
3202
+ "summary": "Check one definition against the instance without writing it",
3203
+ "tags": [
3204
+ "Assets"
3205
+ ],
3206
+ "security": [
3207
+ {
3208
+ "sessionCookie": [
3209
+ "config_assets:read"
3210
+ ]
3211
+ },
3212
+ {
3213
+ "sessionToken": [
3214
+ "config_assets:read"
3215
+ ]
3216
+ },
3217
+ {
3218
+ "accessToken": [
3219
+ "config_assets:read"
3220
+ ]
3221
+ }
3222
+ ],
3223
+ "parameters": [
3224
+ {
3225
+ "name": "kind",
3226
+ "in": "path",
3227
+ "required": true,
3228
+ "schema": {
3229
+ "type": "string"
3230
+ }
3231
+ }
3232
+ ],
3233
+ "requestBody": {
3234
+ "required": true,
3235
+ "content": {
3236
+ "application/json": {
3237
+ "schema": {
3238
+ "$ref": "#/components/schemas/ValidateAssetRequest"
3239
+ }
3240
+ }
3241
+ }
3242
+ },
3243
+ "responses": {
3244
+ "200": {
3245
+ "description": "The result",
3246
+ "content": {
3247
+ "application/json": {
3248
+ "schema": {
3249
+ "$ref": "#/components/schemas/ValidateAssetResponse"
3250
+ }
3251
+ }
3252
+ },
3253
+ "headers": {
3254
+ "Operation-Run-Id": {
3255
+ "$ref": "#/components/headers/OperationRunId"
3256
+ }
3257
+ }
3258
+ },
3259
+ "400": {
3260
+ "$ref": "#/components/responses/BadRequest"
3261
+ },
3262
+ "401": {
3263
+ "$ref": "#/components/responses/Unauthenticated"
3264
+ },
3265
+ "403": {
3266
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
3267
+ },
3268
+ "422": {
3269
+ "$ref": "#/components/responses/ValidationFailed"
3270
+ },
3271
+ "429": {
3272
+ "$ref": "#/components/responses/RateLimited"
3273
+ },
3274
+ "500": {
3275
+ "$ref": "#/components/responses/Internal"
3276
+ }
3277
+ },
3278
+ "x-catalyst-effect": "reading",
3279
+ "x-catalyst-rate-class": "read"
3280
+ }
3281
+ },
3282
+ "/api/v1/assets/{kind}/{name}": {
3283
+ "get": {
3284
+ "operationId": "assets.get",
3285
+ "summary": "Read one asset, or one revision of it with its source files",
2792
3286
  "tags": [
2793
3287
  "Assets"
2794
3288
  ],
@@ -5293,6 +5787,97 @@
5293
5787
  "x-catalyst-rate-class": "write"
5294
5788
  }
5295
5789
  },
5790
+ "/api/v1/connections/{name}/oauth/sign-ins/{signInId}": {
5791
+ "get": {
5792
+ "operationId": "connections.oauth_sign_in",
5793
+ "summary": "Read whether a shared OAuth sign-in the caller started still waits for the browser to come back",
5794
+ "tags": [
5795
+ "Connections"
5796
+ ],
5797
+ "security": [
5798
+ {
5799
+ "sessionCookie": [
5800
+ "config_assets:read"
5801
+ ]
5802
+ },
5803
+ {
5804
+ "sessionToken": [
5805
+ "config_assets:read"
5806
+ ]
5807
+ }
5808
+ ],
5809
+ "parameters": [
5810
+ {
5811
+ "name": "name",
5812
+ "in": "path",
5813
+ "required": true,
5814
+ "schema": {
5815
+ "type": "string"
5816
+ }
5817
+ },
5818
+ {
5819
+ "name": "signInId",
5820
+ "in": "path",
5821
+ "required": true,
5822
+ "schema": {
5823
+ "type": "string"
5824
+ }
5825
+ }
5826
+ ],
5827
+ "responses": {
5828
+ "200": {
5829
+ "description": "The result",
5830
+ "content": {
5831
+ "application/json": {
5832
+ "schema": {
5833
+ "type": "object",
5834
+ "properties": {
5835
+ "state": {
5836
+ "type": "string",
5837
+ "enum": [
5838
+ "waiting",
5839
+ "ended"
5840
+ ]
5841
+ }
5842
+ },
5843
+ "required": [
5844
+ "state"
5845
+ ]
5846
+ }
5847
+ }
5848
+ },
5849
+ "headers": {
5850
+ "Operation-Run-Id": {
5851
+ "$ref": "#/components/headers/OperationRunId"
5852
+ }
5853
+ }
5854
+ },
5855
+ "400": {
5856
+ "$ref": "#/components/responses/BadRequest"
5857
+ },
5858
+ "401": {
5859
+ "$ref": "#/components/responses/Unauthenticated"
5860
+ },
5861
+ "403": {
5862
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
5863
+ },
5864
+ "404": {
5865
+ "$ref": "#/components/responses/NotFound"
5866
+ },
5867
+ "422": {
5868
+ "$ref": "#/components/responses/ValidationFailed"
5869
+ },
5870
+ "429": {
5871
+ "$ref": "#/components/responses/RateLimited"
5872
+ },
5873
+ "500": {
5874
+ "$ref": "#/components/responses/Internal"
5875
+ }
5876
+ },
5877
+ "x-catalyst-effect": "reading",
5878
+ "x-catalyst-rate-class": "read"
5879
+ }
5880
+ },
5296
5881
  "/api/v1/connections/{name}/oauth/start": {
5297
5882
  "post": {
5298
5883
  "operationId": "connections.oauth_start",
@@ -5341,6 +5926,9 @@
5341
5926
  "schema": {
5342
5927
  "type": "object",
5343
5928
  "properties": {
5929
+ "signInId": {
5930
+ "type": "string"
5931
+ },
5344
5932
  "authorizationUrl": {
5345
5933
  "type": "string",
5346
5934
  "format": "uri"
@@ -5359,6 +5947,7 @@
5359
5947
  }
5360
5948
  },
5361
5949
  "required": [
5950
+ "signInId",
5362
5951
  "authorizationUrl",
5363
5952
  "providerHost",
5364
5953
  "scopes",
@@ -5788,11 +6377,17 @@
5788
6377
  "type": "null"
5789
6378
  }
5790
6379
  ]
6380
+ },
6381
+ "expectedRevision": {
6382
+ "type": "integer",
6383
+ "exclusiveMinimum": 0,
6384
+ "maximum": 9007199254740991
5791
6385
  }
5792
6386
  },
5793
6387
  "required": [
5794
6388
  "value",
5795
- "expectedVersion"
6389
+ "expectedVersion",
6390
+ "expectedRevision"
5796
6391
  ]
5797
6392
  }
5798
6393
  }
@@ -6008,6 +6603,559 @@
6008
6603
  "x-catalyst-rate-class": "write"
6009
6604
  }
6010
6605
  },
6606
+ "/api/v1/connector-types": {
6607
+ "get": {
6608
+ "operationId": "connections.connector_types",
6609
+ "summary": "List the Connector types a person who may make a Connection can connect from a form",
6610
+ "tags": [
6611
+ "Connections"
6612
+ ],
6613
+ "security": [
6614
+ {
6615
+ "sessionCookie": [
6616
+ "config_assets:read"
6617
+ ]
6618
+ },
6619
+ {
6620
+ "sessionToken": [
6621
+ "config_assets:read"
6622
+ ]
6623
+ },
6624
+ {
6625
+ "accessToken": [
6626
+ "config_assets:read"
6627
+ ]
6628
+ }
6629
+ ],
6630
+ "parameters": [],
6631
+ "responses": {
6632
+ "200": {
6633
+ "description": "The result",
6634
+ "content": {
6635
+ "application/json": {
6636
+ "schema": {
6637
+ "type": "object",
6638
+ "properties": {
6639
+ "types": {
6640
+ "type": "array",
6641
+ "items": {
6642
+ "type": "object",
6643
+ "properties": {
6644
+ "type": {
6645
+ "type": "string"
6646
+ },
6647
+ "title": {
6648
+ "anyOf": [
6649
+ {
6650
+ "type": "string"
6651
+ },
6652
+ {
6653
+ "type": "object",
6654
+ "properties": {
6655
+ "en": {
6656
+ "type": "string"
6657
+ },
6658
+ "de": {
6659
+ "type": "string"
6660
+ }
6661
+ }
6662
+ }
6663
+ ]
6664
+ },
6665
+ "description": {
6666
+ "anyOf": [
6667
+ {
6668
+ "type": "string"
6669
+ },
6670
+ {
6671
+ "type": "object",
6672
+ "properties": {
6673
+ "en": {
6674
+ "type": "string"
6675
+ },
6676
+ "de": {
6677
+ "type": "string"
6678
+ }
6679
+ }
6680
+ }
6681
+ ]
6682
+ },
6683
+ "service": {
6684
+ "type": "string"
6685
+ },
6686
+ "documentSource": {
6687
+ "type": "boolean"
6688
+ },
6689
+ "authScheme": {
6690
+ "type": "string"
6691
+ },
6692
+ "settings": {
6693
+ "type": "object",
6694
+ "propertyNames": {
6695
+ "type": "string"
6696
+ },
6697
+ "additionalProperties": {}
6698
+ },
6699
+ "fields": {
6700
+ "type": "array",
6701
+ "items": {
6702
+ "type": "object",
6703
+ "properties": {
6704
+ "label": {
6705
+ "anyOf": [
6706
+ {
6707
+ "type": "string"
6708
+ },
6709
+ {
6710
+ "type": "object",
6711
+ "properties": {
6712
+ "en": {
6713
+ "type": "string"
6714
+ },
6715
+ "de": {
6716
+ "type": "string"
6717
+ }
6718
+ }
6719
+ }
6720
+ ]
6721
+ },
6722
+ "help": {
6723
+ "anyOf": [
6724
+ {
6725
+ "type": "string"
6726
+ },
6727
+ {
6728
+ "type": "object",
6729
+ "properties": {
6730
+ "en": {
6731
+ "type": "string"
6732
+ },
6733
+ "de": {
6734
+ "type": "string"
6735
+ }
6736
+ }
6737
+ }
6738
+ ]
6739
+ },
6740
+ "optional": {
6741
+ "type": "boolean"
6742
+ },
6743
+ "setting": {
6744
+ "type": "string"
6745
+ },
6746
+ "secret": {
6747
+ "type": "boolean"
6748
+ }
6749
+ },
6750
+ "required": [
6751
+ "label",
6752
+ "optional",
6753
+ "secret"
6754
+ ]
6755
+ }
6756
+ }
6757
+ },
6758
+ "required": [
6759
+ "type",
6760
+ "title",
6761
+ "description",
6762
+ "documentSource",
6763
+ "authScheme",
6764
+ "settings",
6765
+ "fields"
6766
+ ]
6767
+ }
6768
+ },
6769
+ "entries": {
6770
+ "default": [],
6771
+ "type": "array",
6772
+ "items": {
6773
+ "type": "object",
6774
+ "properties": {
6775
+ "id": {
6776
+ "type": "string"
6777
+ },
6778
+ "version": {
6779
+ "type": "integer",
6780
+ "minimum": -9007199254740991,
6781
+ "maximum": 9007199254740991
6782
+ },
6783
+ "service": {
6784
+ "type": "string"
6785
+ },
6786
+ "title": {
6787
+ "anyOf": [
6788
+ {
6789
+ "type": "string"
6790
+ },
6791
+ {
6792
+ "type": "object",
6793
+ "properties": {
6794
+ "en": {
6795
+ "type": "string"
6796
+ },
6797
+ "de": {
6798
+ "type": "string"
6799
+ }
6800
+ }
6801
+ }
6802
+ ]
6803
+ },
6804
+ "description": {
6805
+ "anyOf": [
6806
+ {
6807
+ "type": "string"
6808
+ },
6809
+ {
6810
+ "type": "object",
6811
+ "properties": {
6812
+ "en": {
6813
+ "type": "string"
6814
+ },
6815
+ "de": {
6816
+ "type": "string"
6817
+ }
6818
+ }
6819
+ }
6820
+ ]
6821
+ },
6822
+ "category": {
6823
+ "type": "string",
6824
+ "enum": [
6825
+ "mail",
6826
+ "files",
6827
+ "accounting",
6828
+ "databases",
6829
+ "other"
6830
+ ]
6831
+ },
6832
+ "examplePrompts": {
6833
+ "type": "array",
6834
+ "items": {
6835
+ "anyOf": [
6836
+ {
6837
+ "type": "string"
6838
+ },
6839
+ {
6840
+ "type": "object",
6841
+ "properties": {
6842
+ "en": {
6843
+ "type": "string"
6844
+ },
6845
+ "de": {
6846
+ "type": "string"
6847
+ }
6848
+ }
6849
+ }
6850
+ ]
6851
+ }
6852
+ },
6853
+ "mark": {
6854
+ "type": "object",
6855
+ "properties": {
6856
+ "color": {
6857
+ "type": "string"
6858
+ },
6859
+ "logo": {
6860
+ "type": "string"
6861
+ }
6862
+ }
6863
+ },
6864
+ "offered": {
6865
+ "type": "boolean"
6866
+ },
6867
+ "parts": {
6868
+ "type": "array",
6869
+ "items": {
6870
+ "type": "object",
6871
+ "properties": {
6872
+ "part": {
6873
+ "type": "string",
6874
+ "enum": [
6875
+ "tools",
6876
+ "source"
6877
+ ]
6878
+ },
6879
+ "connectorType": {
6880
+ "type": "string"
6881
+ },
6882
+ "name": {
6883
+ "type": "string"
6884
+ },
6885
+ "title": {
6886
+ "anyOf": [
6887
+ {
6888
+ "type": "string"
6889
+ },
6890
+ {
6891
+ "type": "object",
6892
+ "properties": {
6893
+ "en": {
6894
+ "type": "string"
6895
+ },
6896
+ "de": {
6897
+ "type": "string"
6898
+ }
6899
+ }
6900
+ }
6901
+ ]
6902
+ },
6903
+ "description": {
6904
+ "anyOf": [
6905
+ {
6906
+ "type": "string"
6907
+ },
6908
+ {
6909
+ "type": "object",
6910
+ "properties": {
6911
+ "en": {
6912
+ "type": "string"
6913
+ },
6914
+ "de": {
6915
+ "type": "string"
6916
+ }
6917
+ }
6918
+ }
6919
+ ]
6920
+ },
6921
+ "authScheme": {
6922
+ "type": "string"
6923
+ },
6924
+ "settings": {
6925
+ "type": "object",
6926
+ "propertyNames": {
6927
+ "type": "string"
6928
+ },
6929
+ "additionalProperties": {}
6930
+ },
6931
+ "fields": {
6932
+ "type": "array",
6933
+ "items": {
6934
+ "type": "object",
6935
+ "properties": {
6936
+ "label": {
6937
+ "anyOf": [
6938
+ {
6939
+ "type": "string"
6940
+ },
6941
+ {
6942
+ "type": "object",
6943
+ "properties": {
6944
+ "en": {
6945
+ "type": "string"
6946
+ },
6947
+ "de": {
6948
+ "type": "string"
6949
+ }
6950
+ }
6951
+ }
6952
+ ]
6953
+ },
6954
+ "help": {
6955
+ "anyOf": [
6956
+ {
6957
+ "type": "string"
6958
+ },
6959
+ {
6960
+ "type": "object",
6961
+ "properties": {
6962
+ "en": {
6963
+ "type": "string"
6964
+ },
6965
+ "de": {
6966
+ "type": "string"
6967
+ }
6968
+ }
6969
+ }
6970
+ ]
6971
+ },
6972
+ "optional": {
6973
+ "type": "boolean"
6974
+ },
6975
+ "setting": {
6976
+ "type": "string"
6977
+ },
6978
+ "secret": {
6979
+ "type": "boolean"
6980
+ },
6981
+ "default": {
6982
+ "type": "string"
6983
+ }
6984
+ },
6985
+ "required": [
6986
+ "label",
6987
+ "optional",
6988
+ "secret"
6989
+ ]
6990
+ }
6991
+ },
6992
+ "prerequisites": {
6993
+ "type": "array",
6994
+ "items": {
6995
+ "type": "object",
6996
+ "properties": {
6997
+ "text": {
6998
+ "anyOf": [
6999
+ {
7000
+ "type": "string"
7001
+ },
7002
+ {
7003
+ "type": "object",
7004
+ "properties": {
7005
+ "en": {
7006
+ "type": "string"
7007
+ },
7008
+ "de": {
7009
+ "type": "string"
7010
+ }
7011
+ }
7012
+ }
7013
+ ]
7014
+ },
7015
+ "value": {
7016
+ "type": "string"
7017
+ }
7018
+ },
7019
+ "required": [
7020
+ "text"
7021
+ ]
7022
+ }
7023
+ },
7024
+ "hosts": {
7025
+ "type": "array",
7026
+ "items": {
7027
+ "type": "string"
7028
+ }
7029
+ },
7030
+ "operations": {
7031
+ "type": "array",
7032
+ "items": {
7033
+ "type": "object",
7034
+ "properties": {
7035
+ "name": {
7036
+ "type": "string"
7037
+ },
7038
+ "title": {
7039
+ "type": "string"
7040
+ },
7041
+ "description": {
7042
+ "type": "string"
7043
+ },
7044
+ "effect": {
7045
+ "type": "string",
7046
+ "enum": [
7047
+ "reading",
7048
+ "changing"
7049
+ ]
7050
+ },
7051
+ "recommended": {
7052
+ "type": "boolean"
7053
+ },
7054
+ "declaration": {
7055
+ "type": "object",
7056
+ "propertyNames": {
7057
+ "type": "string"
7058
+ },
7059
+ "additionalProperties": {}
7060
+ }
7061
+ },
7062
+ "required": [
7063
+ "name",
7064
+ "effect",
7065
+ "recommended"
7066
+ ]
7067
+ }
7068
+ },
7069
+ "sharedAccountNote": {
7070
+ "anyOf": [
7071
+ {
7072
+ "type": "string"
7073
+ },
7074
+ {
7075
+ "type": "object",
7076
+ "properties": {
7077
+ "en": {
7078
+ "type": "string"
7079
+ },
7080
+ "de": {
7081
+ "type": "string"
7082
+ }
7083
+ }
7084
+ }
7085
+ ]
7086
+ },
7087
+ "documentSource": {
7088
+ "type": "boolean"
7089
+ }
7090
+ },
7091
+ "required": [
7092
+ "part",
7093
+ "connectorType",
7094
+ "name",
7095
+ "description",
7096
+ "authScheme",
7097
+ "settings",
7098
+ "fields",
7099
+ "prerequisites",
7100
+ "hosts",
7101
+ "operations",
7102
+ "sharedAccountNote",
7103
+ "documentSource"
7104
+ ]
7105
+ }
7106
+ }
7107
+ },
7108
+ "required": [
7109
+ "id",
7110
+ "version",
7111
+ "service",
7112
+ "title",
7113
+ "description",
7114
+ "category",
7115
+ "examplePrompts",
7116
+ "mark",
7117
+ "offered",
7118
+ "parts"
7119
+ ]
7120
+ }
7121
+ }
7122
+ },
7123
+ "required": [
7124
+ "types",
7125
+ "entries"
7126
+ ]
7127
+ }
7128
+ }
7129
+ },
7130
+ "headers": {
7131
+ "Operation-Run-Id": {
7132
+ "$ref": "#/components/headers/OperationRunId"
7133
+ }
7134
+ }
7135
+ },
7136
+ "400": {
7137
+ "$ref": "#/components/responses/BadRequest"
7138
+ },
7139
+ "401": {
7140
+ "$ref": "#/components/responses/Unauthenticated"
7141
+ },
7142
+ "403": {
7143
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
7144
+ },
7145
+ "422": {
7146
+ "$ref": "#/components/responses/ValidationFailed"
7147
+ },
7148
+ "429": {
7149
+ "$ref": "#/components/responses/RateLimited"
7150
+ },
7151
+ "500": {
7152
+ "$ref": "#/components/responses/Internal"
7153
+ }
7154
+ },
7155
+ "x-catalyst-effect": "reading",
7156
+ "x-catalyst-rate-class": "read"
7157
+ }
7158
+ },
6011
7159
  "/api/v1/context": {
6012
7160
  "get": {
6013
7161
  "operationId": "platform.context.get",
@@ -7947,6 +9095,102 @@
7947
9095
  "x-catalyst-rate-class": "write"
7948
9096
  }
7949
9097
  },
9098
+ "/api/v1/conversations/{conversationId}/follow-ups/{followUpId}/steer": {
9099
+ "post": {
9100
+ "operationId": "conversations.follow_ups.steer",
9101
+ "summary": "Hand your pending follow-up message to your running turn after its current step",
9102
+ "tags": [
9103
+ "Conversations"
9104
+ ],
9105
+ "security": [
9106
+ {
9107
+ "sessionCookie": [
9108
+ "conversation:write"
9109
+ ]
9110
+ },
9111
+ {
9112
+ "sessionToken": [
9113
+ "conversation:write"
9114
+ ]
9115
+ }
9116
+ ],
9117
+ "parameters": [
9118
+ {
9119
+ "name": "conversationId",
9120
+ "in": "path",
9121
+ "required": true,
9122
+ "schema": {
9123
+ "type": "string"
9124
+ }
9125
+ },
9126
+ {
9127
+ "name": "followUpId",
9128
+ "in": "path",
9129
+ "required": true,
9130
+ "schema": {
9131
+ "type": "string"
9132
+ }
9133
+ }
9134
+ ],
9135
+ "requestBody": {
9136
+ "required": true,
9137
+ "content": {
9138
+ "application/json": {
9139
+ "schema": {
9140
+ "type": "object",
9141
+ "properties": {}
9142
+ }
9143
+ }
9144
+ }
9145
+ },
9146
+ "responses": {
9147
+ "200": {
9148
+ "description": "The result",
9149
+ "content": {
9150
+ "application/json": {
9151
+ "schema": {
9152
+ "type": "object",
9153
+ "properties": {
9154
+ "followUp": {
9155
+ "$ref": "#/components/schemas/ConversationFollowUp"
9156
+ }
9157
+ },
9158
+ "required": [
9159
+ "followUp"
9160
+ ]
9161
+ }
9162
+ }
9163
+ }
9164
+ },
9165
+ "400": {
9166
+ "$ref": "#/components/responses/BadRequest"
9167
+ },
9168
+ "401": {
9169
+ "$ref": "#/components/responses/Unauthenticated"
9170
+ },
9171
+ "403": {
9172
+ "$ref": "#/components/responses/Forbidden"
9173
+ },
9174
+ "404": {
9175
+ "$ref": "#/components/responses/NotFound"
9176
+ },
9177
+ "409": {
9178
+ "$ref": "#/components/responses/Conflict"
9179
+ },
9180
+ "422": {
9181
+ "$ref": "#/components/responses/ValidationFailed"
9182
+ },
9183
+ "429": {
9184
+ "$ref": "#/components/responses/RateLimited"
9185
+ },
9186
+ "500": {
9187
+ "$ref": "#/components/responses/Internal"
9188
+ }
9189
+ },
9190
+ "x-catalyst-effect": "changing",
9191
+ "x-catalyst-rate-class": "write"
9192
+ }
9193
+ },
7950
9194
  "/api/v1/conversations/{conversationId}/follow-ups/{followUpId}/withdraw": {
7951
9195
  "post": {
7952
9196
  "operationId": "conversations.follow_ups.withdraw",
@@ -13588,6 +14832,103 @@
13588
14832
  "x-catalyst-rate-class": "write"
13589
14833
  }
13590
14834
  },
14835
+ "/api/v1/instance/access/check": {
14836
+ "get": {
14837
+ "operationId": "permissions.check",
14838
+ "summary": "Decide what one holder may do with one asset, with the entry that decides each right",
14839
+ "tags": [
14840
+ "Access"
14841
+ ],
14842
+ "security": [
14843
+ {
14844
+ "sessionCookie": [
14845
+ "user_admin:read"
14846
+ ]
14847
+ },
14848
+ {
14849
+ "sessionToken": [
14850
+ "user_admin:read"
14851
+ ]
14852
+ }
14853
+ ],
14854
+ "parameters": [
14855
+ {
14856
+ "name": "holderKind",
14857
+ "in": "query",
14858
+ "required": true,
14859
+ "schema": {
14860
+ "type": "string",
14861
+ "enum": [
14862
+ "user",
14863
+ "service_principal"
14864
+ ]
14865
+ }
14866
+ },
14867
+ {
14868
+ "name": "holderId",
14869
+ "in": "query",
14870
+ "required": true,
14871
+ "schema": {
14872
+ "type": "string",
14873
+ "minLength": 1
14874
+ }
14875
+ },
14876
+ {
14877
+ "name": "kind",
14878
+ "in": "query",
14879
+ "required": true,
14880
+ "schema": {
14881
+ "type": "string",
14882
+ "minLength": 1
14883
+ }
14884
+ },
14885
+ {
14886
+ "name": "assetId",
14887
+ "in": "query",
14888
+ "required": false,
14889
+ "schema": {
14890
+ "type": "string",
14891
+ "minLength": 1
14892
+ }
14893
+ }
14894
+ ],
14895
+ "responses": {
14896
+ "200": {
14897
+ "description": "The result",
14898
+ "content": {
14899
+ "application/json": {
14900
+ "schema": {
14901
+ "$ref": "#/components/schemas/AssetRightsCheck"
14902
+ }
14903
+ }
14904
+ }
14905
+ },
14906
+ "400": {
14907
+ "$ref": "#/components/responses/BadRequest"
14908
+ },
14909
+ "401": {
14910
+ "$ref": "#/components/responses/Unauthenticated"
14911
+ },
14912
+ "403": {
14913
+ "$ref": "#/components/responses/Forbidden"
14914
+ },
14915
+ "404": {
14916
+ "$ref": "#/components/responses/NotFound"
14917
+ },
14918
+ "422": {
14919
+ "$ref": "#/components/responses/ValidationFailed"
14920
+ },
14921
+ "429": {
14922
+ "$ref": "#/components/responses/RateLimited"
14923
+ },
14924
+ "500": {
14925
+ "$ref": "#/components/responses/Internal"
14926
+ }
14927
+ },
14928
+ "x-catalyst-effect": "reading",
14929
+ "x-catalyst-rate-class": "read"
14930
+ }
14931
+ },
13591
14932
  "/api/v1/instance/access/effective": {
13592
14933
  "get": {
13593
14934
  "operationId": "permissions.effective",
@@ -14049,6 +15390,85 @@
14049
15390
  "x-catalyst-rate-class": "write"
14050
15391
  }
14051
15392
  },
15393
+ "/api/v1/instance/access/rights": {
15394
+ "get": {
15395
+ "operationId": "permissions.rights",
15396
+ "summary": "List what one holder holds and is refused, each right decided with where it comes from",
15397
+ "tags": [
15398
+ "Access"
15399
+ ],
15400
+ "security": [
15401
+ {
15402
+ "sessionCookie": [
15403
+ "user_admin:read"
15404
+ ]
15405
+ },
15406
+ {
15407
+ "sessionToken": [
15408
+ "user_admin:read"
15409
+ ]
15410
+ }
15411
+ ],
15412
+ "parameters": [
15413
+ {
15414
+ "name": "holderKind",
15415
+ "in": "query",
15416
+ "required": true,
15417
+ "schema": {
15418
+ "type": "string",
15419
+ "enum": [
15420
+ "user",
15421
+ "service_principal"
15422
+ ]
15423
+ }
15424
+ },
15425
+ {
15426
+ "name": "holderId",
15427
+ "in": "query",
15428
+ "required": true,
15429
+ "schema": {
15430
+ "type": "string",
15431
+ "minLength": 1
15432
+ }
15433
+ }
15434
+ ],
15435
+ "responses": {
15436
+ "200": {
15437
+ "description": "The result",
15438
+ "content": {
15439
+ "application/json": {
15440
+ "schema": {
15441
+ "$ref": "#/components/schemas/HolderRights"
15442
+ }
15443
+ }
15444
+ }
15445
+ },
15446
+ "400": {
15447
+ "$ref": "#/components/responses/BadRequest"
15448
+ },
15449
+ "401": {
15450
+ "$ref": "#/components/responses/Unauthenticated"
15451
+ },
15452
+ "403": {
15453
+ "$ref": "#/components/responses/Forbidden"
15454
+ },
15455
+ "404": {
15456
+ "$ref": "#/components/responses/NotFound"
15457
+ },
15458
+ "422": {
15459
+ "$ref": "#/components/responses/ValidationFailed"
15460
+ },
15461
+ "429": {
15462
+ "$ref": "#/components/responses/RateLimited"
15463
+ },
15464
+ "500": {
15465
+ "$ref": "#/components/responses/Internal"
15466
+ }
15467
+ },
15468
+ "x-catalyst-effect": "reading",
15469
+ "x-catalyst-rate-class": "read"
15470
+ }
15471
+ },
14052
15472
  "/api/v1/instance/access/roles": {
14053
15473
  "get": {
14054
15474
  "operationId": "roles.list",
@@ -14304,7 +15724,7 @@
14304
15724
  },
14305
15725
  "patch": {
14306
15726
  "operationId": "roles.update",
14307
- "summary": "Change a role's name, description or grants. Only a superadmin edits `user` and `admin`; `superadmin` is never edited.",
15727
+ "summary": "Change a role's name, description or grants. Editing `user` and `admin` also needs `roles.edit_built_in`; `superadmin` is never edited.",
14308
15728
  "tags": [
14309
15729
  "Access"
14310
15730
  ],
@@ -14552,7 +15972,7 @@
14552
15972
  "/api/v1/instance/access/roles/{roleId}/pending": {
14553
15973
  "post": {
14554
15974
  "operationId": "roles.pending.decide",
14555
- "summary": "Decide one action a release changed in the default of an edited `user` or `admin`: apply it or dismiss it. Only a superadmin decides.",
15975
+ "summary": "Decide one action a release changed in the default of an edited `user` or `admin`: apply it or dismiss it. Needs `users.manage` and `roles.edit_built_in`.",
14556
15976
  "tags": [
14557
15977
  "Access"
14558
15978
  ],
@@ -14682,7 +16102,7 @@
14682
16102
  "/api/v1/instance/access/roles/{roleId}/reset": {
14683
16103
  "post": {
14684
16104
  "operationId": "roles.reset",
14685
- "summary": "Reset `user` or `admin` to the release's default, which also settles every pending action. Only a superadmin resets.",
16105
+ "summary": "Reset `user` or `admin` to the release's default, which also settles every pending action. Needs `users.manage` and `roles.edit_built_in`.",
14686
16106
  "tags": [
14687
16107
  "Access"
14688
16108
  ],
@@ -15214,6 +16634,63 @@
15214
16634
  "x-catalyst-rate-class": "write"
15215
16635
  }
15216
16636
  },
16637
+ "/api/v1/instance/access/scope-assignments/overview": {
16638
+ "get": {
16639
+ "operationId": "scope_assignments.overview",
16640
+ "summary": "Read the declared data scope, every assignment the reader may see, and each active person's groups and effective values",
16641
+ "tags": [
16642
+ "Access"
16643
+ ],
16644
+ "security": [
16645
+ {
16646
+ "sessionCookie": [
16647
+ "user_admin:read"
16648
+ ]
16649
+ },
16650
+ {
16651
+ "sessionToken": [
16652
+ "user_admin:read"
16653
+ ]
16654
+ }
16655
+ ],
16656
+ "parameters": [],
16657
+ "responses": {
16658
+ "200": {
16659
+ "description": "The result",
16660
+ "content": {
16661
+ "application/json": {
16662
+ "schema": {
16663
+ "$ref": "#/components/schemas/ScopeAssignmentsOverview"
16664
+ }
16665
+ }
16666
+ }
16667
+ },
16668
+ "400": {
16669
+ "$ref": "#/components/responses/BadRequest"
16670
+ },
16671
+ "401": {
16672
+ "$ref": "#/components/responses/Unauthenticated"
16673
+ },
16674
+ "403": {
16675
+ "$ref": "#/components/responses/Forbidden"
16676
+ },
16677
+ "422": {
16678
+ "$ref": "#/components/responses/ValidationFailed"
16679
+ },
16680
+ "429": {
16681
+ "$ref": "#/components/responses/RateLimited"
16682
+ },
16683
+ "500": {
16684
+ "$ref": "#/components/responses/Internal"
16685
+ }
16686
+ },
16687
+ "x-catalyst-effect": "reading",
16688
+ "x-catalyst-requires": [
16689
+ "users.manage"
16690
+ ],
16691
+ "x-catalyst-rate-class": "read"
16692
+ }
16693
+ },
15217
16694
  "/api/v1/instance/access/workspaces": {
15218
16695
  "get": {
15219
16696
  "operationId": "workspaces.limits.list",
@@ -22834,6 +24311,194 @@
22834
24311
  "x-catalyst-rate-class": "read"
22835
24312
  }
22836
24313
  },
24314
+ "/api/v1/operations/callable": {
24315
+ "get": {
24316
+ "operationId": "operations.list_callable",
24317
+ "summary": "List a page of the operations a step of a Workflow may call, as far as the caller may call them",
24318
+ "tags": [
24319
+ "Operations"
24320
+ ],
24321
+ "security": [
24322
+ {
24323
+ "sessionCookie": [
24324
+ "config_assets:read"
24325
+ ]
24326
+ },
24327
+ {
24328
+ "sessionToken": [
24329
+ "config_assets:read"
24330
+ ]
24331
+ },
24332
+ {
24333
+ "accessToken": [
24334
+ "config_assets:read"
24335
+ ]
24336
+ }
24337
+ ],
24338
+ "parameters": [
24339
+ {
24340
+ "name": "for",
24341
+ "in": "query",
24342
+ "required": false,
24343
+ "schema": {
24344
+ "default": "workflow",
24345
+ "type": "string",
24346
+ "enum": [
24347
+ "workflow"
24348
+ ]
24349
+ }
24350
+ },
24351
+ {
24352
+ "name": "cursor",
24353
+ "in": "query",
24354
+ "required": false,
24355
+ "schema": {
24356
+ "type": "string",
24357
+ "minLength": 1
24358
+ }
24359
+ },
24360
+ {
24361
+ "name": "name",
24362
+ "in": "query",
24363
+ "required": false,
24364
+ "schema": {
24365
+ "type": "string",
24366
+ "minLength": 1
24367
+ }
24368
+ },
24369
+ {
24370
+ "name": "prefix",
24371
+ "in": "query",
24372
+ "required": false,
24373
+ "schema": {
24374
+ "type": "string",
24375
+ "minLength": 1
24376
+ }
24377
+ }
24378
+ ],
24379
+ "responses": {
24380
+ "200": {
24381
+ "description": "The result",
24382
+ "content": {
24383
+ "application/json": {
24384
+ "schema": {
24385
+ "type": "object",
24386
+ "properties": {
24387
+ "operations": {
24388
+ "type": "array",
24389
+ "items": {
24390
+ "type": "object",
24391
+ "properties": {
24392
+ "name": {
24393
+ "type": "string"
24394
+ },
24395
+ "effect": {
24396
+ "type": "string",
24397
+ "enum": [
24398
+ "reading",
24399
+ "changing"
24400
+ ]
24401
+ },
24402
+ "title": {
24403
+ "type": "string"
24404
+ },
24405
+ "description": {
24406
+ "type": "string"
24407
+ },
24408
+ "source": {
24409
+ "type": "object",
24410
+ "properties": {
24411
+ "kind": {
24412
+ "type": "string",
24413
+ "enum": [
24414
+ "connection",
24415
+ "data_store",
24416
+ "knowledge_base",
24417
+ "workflow",
24418
+ "other"
24419
+ ]
24420
+ },
24421
+ "title": {
24422
+ "type": "string"
24423
+ },
24424
+ "service": {
24425
+ "type": "string"
24426
+ }
24427
+ },
24428
+ "required": [
24429
+ "kind"
24430
+ ]
24431
+ },
24432
+ "available": {
24433
+ "type": "boolean"
24434
+ },
24435
+ "inputSchema": {
24436
+ "type": "object",
24437
+ "propertyNames": {
24438
+ "type": "string"
24439
+ },
24440
+ "additionalProperties": {}
24441
+ },
24442
+ "outputSchema": {
24443
+ "type": "object",
24444
+ "propertyNames": {
24445
+ "type": "string"
24446
+ },
24447
+ "additionalProperties": {}
24448
+ }
24449
+ },
24450
+ "required": [
24451
+ "name",
24452
+ "effect",
24453
+ "title",
24454
+ "source",
24455
+ "available"
24456
+ ]
24457
+ }
24458
+ },
24459
+ "nextCursor": {
24460
+ "type": "string"
24461
+ },
24462
+ "truncated": {
24463
+ "type": "boolean"
24464
+ }
24465
+ },
24466
+ "required": [
24467
+ "operations",
24468
+ "truncated"
24469
+ ]
24470
+ }
24471
+ }
24472
+ },
24473
+ "headers": {
24474
+ "Operation-Run-Id": {
24475
+ "$ref": "#/components/headers/OperationRunId"
24476
+ }
24477
+ }
24478
+ },
24479
+ "400": {
24480
+ "$ref": "#/components/responses/BadRequest"
24481
+ },
24482
+ "401": {
24483
+ "$ref": "#/components/responses/Unauthenticated"
24484
+ },
24485
+ "403": {
24486
+ "$ref": "#/components/responses/ForbiddenOrPolicyDeniedOrGuardrailBlocked"
24487
+ },
24488
+ "422": {
24489
+ "$ref": "#/components/responses/ValidationFailed"
24490
+ },
24491
+ "429": {
24492
+ "$ref": "#/components/responses/RateLimited"
24493
+ },
24494
+ "500": {
24495
+ "$ref": "#/components/responses/Internal"
24496
+ }
24497
+ },
24498
+ "x-catalyst-effect": "reading",
24499
+ "x-catalyst-rate-class": "read"
24500
+ }
24501
+ },
22837
24502
  "/api/v1/operations/runs": {
22838
24503
  "get": {
22839
24504
  "operationId": "operations.list_runs",
@@ -24991,6 +26656,38 @@
24991
26656
  "operationRunId": {
24992
26657
  "type": "string"
24993
26658
  },
26659
+ "startedFrom": {
26660
+ "type": "object",
26661
+ "properties": {
26662
+ "kind": {
26663
+ "type": "string",
26664
+ "const": "app"
26665
+ },
26666
+ "app": {
26667
+ "type": "string"
26668
+ },
26669
+ "appRevisionId": {
26670
+ "type": "string"
26671
+ },
26672
+ "action": {
26673
+ "type": "string"
26674
+ },
26675
+ "workflowRevision": {
26676
+ "type": "string",
26677
+ "enum": [
26678
+ "draft",
26679
+ "published"
26680
+ ]
26681
+ }
26682
+ },
26683
+ "required": [
26684
+ "kind",
26685
+ "app",
26686
+ "appRevisionId",
26687
+ "action",
26688
+ "workflowRevision"
26689
+ ]
26690
+ },
24994
26691
  "parentRunId": {
24995
26692
  "type": "string"
24996
26693
  },
@@ -25376,6 +27073,38 @@
25376
27073
  "operationRunId": {
25377
27074
  "type": "string"
25378
27075
  },
27076
+ "startedFrom": {
27077
+ "type": "object",
27078
+ "properties": {
27079
+ "kind": {
27080
+ "type": "string",
27081
+ "const": "app"
27082
+ },
27083
+ "app": {
27084
+ "type": "string"
27085
+ },
27086
+ "appRevisionId": {
27087
+ "type": "string"
27088
+ },
27089
+ "action": {
27090
+ "type": "string"
27091
+ },
27092
+ "workflowRevision": {
27093
+ "type": "string",
27094
+ "enum": [
27095
+ "draft",
27096
+ "published"
27097
+ ]
27098
+ }
27099
+ },
27100
+ "required": [
27101
+ "kind",
27102
+ "app",
27103
+ "appRevisionId",
27104
+ "action",
27105
+ "workflowRevision"
27106
+ ]
27107
+ },
25379
27108
  "parentRunId": {
25380
27109
  "type": "string"
25381
27110
  },
@@ -26434,6 +28163,9 @@
26434
28163
  "definitionRevisionId": {
26435
28164
  "type": "string"
26436
28165
  },
28166
+ "workspaceId": {
28167
+ "type": "string"
28168
+ },
26437
28169
  "runnable": {
26438
28170
  "type": "boolean"
26439
28171
  },
@@ -26468,6 +28200,12 @@
26468
28200
  },
26469
28201
  "additionalProperties": {}
26470
28202
  },
28203
+ "triggers": {
28204
+ "type": "array",
28205
+ "items": {
28206
+ "type": "string"
28207
+ }
28208
+ },
26471
28209
  "runsAs": {
26472
28210
  "type": "string"
26473
28211
  },
@@ -26991,6 +28729,38 @@
26991
28729
  "operationRunId": {
26992
28730
  "type": "string"
26993
28731
  },
28732
+ "startedFrom": {
28733
+ "type": "object",
28734
+ "properties": {
28735
+ "kind": {
28736
+ "type": "string",
28737
+ "const": "app"
28738
+ },
28739
+ "app": {
28740
+ "type": "string"
28741
+ },
28742
+ "appRevisionId": {
28743
+ "type": "string"
28744
+ },
28745
+ "action": {
28746
+ "type": "string"
28747
+ },
28748
+ "workflowRevision": {
28749
+ "type": "string",
28750
+ "enum": [
28751
+ "draft",
28752
+ "published"
28753
+ ]
28754
+ }
28755
+ },
28756
+ "required": [
28757
+ "kind",
28758
+ "app",
28759
+ "appRevisionId",
28760
+ "action",
28761
+ "workflowRevision"
28762
+ ]
28763
+ },
26994
28764
  "parentRunId": {
26995
28765
  "type": "string"
26996
28766
  },
@@ -27404,6 +29174,38 @@
27404
29174
  "operationRunId": {
27405
29175
  "type": "string"
27406
29176
  },
29177
+ "startedFrom": {
29178
+ "type": "object",
29179
+ "properties": {
29180
+ "kind": {
29181
+ "type": "string",
29182
+ "const": "app"
29183
+ },
29184
+ "app": {
29185
+ "type": "string"
29186
+ },
29187
+ "appRevisionId": {
29188
+ "type": "string"
29189
+ },
29190
+ "action": {
29191
+ "type": "string"
29192
+ },
29193
+ "workflowRevision": {
29194
+ "type": "string",
29195
+ "enum": [
29196
+ "draft",
29197
+ "published"
29198
+ ]
29199
+ }
29200
+ },
29201
+ "required": [
29202
+ "kind",
29203
+ "app",
29204
+ "appRevisionId",
29205
+ "action",
29206
+ "workflowRevision"
29207
+ ]
29208
+ },
27407
29209
  "parentRunId": {
27408
29210
  "type": "string"
27409
29211
  },
@@ -27840,6 +29642,38 @@
27840
29642
  "operationRunId": {
27841
29643
  "type": "string"
27842
29644
  },
29645
+ "startedFrom": {
29646
+ "type": "object",
29647
+ "properties": {
29648
+ "kind": {
29649
+ "type": "string",
29650
+ "const": "app"
29651
+ },
29652
+ "app": {
29653
+ "type": "string"
29654
+ },
29655
+ "appRevisionId": {
29656
+ "type": "string"
29657
+ },
29658
+ "action": {
29659
+ "type": "string"
29660
+ },
29661
+ "workflowRevision": {
29662
+ "type": "string",
29663
+ "enum": [
29664
+ "draft",
29665
+ "published"
29666
+ ]
29667
+ }
29668
+ },
29669
+ "required": [
29670
+ "kind",
29671
+ "app",
29672
+ "appRevisionId",
29673
+ "action",
29674
+ "workflowRevision"
29675
+ ]
29676
+ },
27843
29677
  "parentRunId": {
27844
29678
  "type": "string"
27845
29679
  },
@@ -28123,11 +29957,18 @@
28123
29957
  "type": "integer",
28124
29958
  "exclusiveMinimum": 0,
28125
29959
  "maximum": 9007199254740991
29960
+ },
29961
+ "warnings": {
29962
+ "type": "array",
29963
+ "items": {
29964
+ "$ref": "#/components/schemas/AssetWarning"
29965
+ }
28126
29966
  }
28127
29967
  },
28128
29968
  "required": [
28129
29969
  "draftRevision",
28130
- "unpublishedRevision"
29970
+ "unpublishedRevision",
29971
+ "warnings"
28131
29972
  ]
28132
29973
  }
28133
29974
  }
@@ -30615,6 +32456,91 @@
30615
32456
  }
30616
32457
  },
30617
32458
  "schemas": {
32459
+ "AccessOrigin": {
32460
+ "type": "object",
32461
+ "properties": {
32462
+ "effect": {
32463
+ "$ref": "#/components/schemas/GrantEffect"
32464
+ },
32465
+ "scopeKind": {
32466
+ "$ref": "#/components/schemas/GrantScopeKind"
32467
+ },
32468
+ "scopeId": {
32469
+ "type": "string"
32470
+ },
32471
+ "source": {
32472
+ "type": "string",
32473
+ "enum": [
32474
+ "role",
32475
+ "legacy_ref",
32476
+ "grant",
32477
+ "membership"
32478
+ ]
32479
+ },
32480
+ "roleId": {
32481
+ "type": "string"
32482
+ },
32483
+ "scopeAsset": {
32484
+ "type": "object",
32485
+ "properties": {
32486
+ "kind": {
32487
+ "type": "string"
32488
+ },
32489
+ "name": {
32490
+ "type": "string"
32491
+ },
32492
+ "title": {
32493
+ "type": "string"
32494
+ },
32495
+ "active": {
32496
+ "type": "boolean"
32497
+ }
32498
+ },
32499
+ "required": [
32500
+ "kind",
32501
+ "active"
32502
+ ]
32503
+ },
32504
+ "scopeWorkspace": {
32505
+ "type": "object",
32506
+ "properties": {
32507
+ "personal": {
32508
+ "type": "boolean"
32509
+ },
32510
+ "name": {
32511
+ "type": "string"
32512
+ }
32513
+ },
32514
+ "required": [
32515
+ "personal"
32516
+ ]
32517
+ }
32518
+ },
32519
+ "required": [
32520
+ "effect",
32521
+ "scopeKind",
32522
+ "source"
32523
+ ]
32524
+ },
32525
+ "AccessOriginRole": {
32526
+ "type": "object",
32527
+ "properties": {
32528
+ "id": {
32529
+ "type": "string"
32530
+ },
32531
+ "name": {
32532
+ "type": "string"
32533
+ },
32534
+ "builtIn": {
32535
+ "type": "boolean"
32536
+ }
32537
+ },
32538
+ "required": [
32539
+ "id",
32540
+ "name",
32541
+ "builtIn"
32542
+ ]
32543
+ },
30618
32544
  "ActiveRunSummary": {
30619
32545
  "type": "object",
30620
32546
  "properties": {
@@ -31348,6 +33274,30 @@
31348
33274
  "open"
31349
33275
  ]
31350
33276
  },
33277
+ {
33278
+ "type": "object",
33279
+ "properties": {
33280
+ "type": {
33281
+ "type": "string",
33282
+ "const": "user_message"
33283
+ },
33284
+ "messageId": {
33285
+ "type": "string"
33286
+ },
33287
+ "text": {
33288
+ "type": "string"
33289
+ },
33290
+ "createdAt": {
33291
+ "$ref": "#/components/schemas/Timestamp"
33292
+ }
33293
+ },
33294
+ "required": [
33295
+ "type",
33296
+ "messageId",
33297
+ "text",
33298
+ "createdAt"
33299
+ ]
33300
+ },
31351
33301
  {
31352
33302
  "type": "object",
31353
33303
  "properties": {
@@ -31598,6 +33548,66 @@
31598
33548
  "message"
31599
33549
  ]
31600
33550
  },
33551
+ {
33552
+ "type": "object",
33553
+ "properties": {
33554
+ "type": {
33555
+ "type": "string",
33556
+ "const": "user_message_steered"
33557
+ },
33558
+ "runId": {
33559
+ "type": "string"
33560
+ },
33561
+ "sequence": {
33562
+ "type": "number"
33563
+ },
33564
+ "createdAt": {
33565
+ "$ref": "#/components/schemas/Timestamp"
33566
+ },
33567
+ "followUpId": {
33568
+ "type": "string"
33569
+ },
33570
+ "message": {
33571
+ "type": "object",
33572
+ "properties": {
33573
+ "id": {
33574
+ "type": "string"
33575
+ },
33576
+ "role": {
33577
+ "type": "string",
33578
+ "const": "user"
33579
+ },
33580
+ "text": {
33581
+ "type": "string"
33582
+ },
33583
+ "createdAt": {
33584
+ "$ref": "#/components/schemas/Timestamp"
33585
+ },
33586
+ "metadata": {
33587
+ "type": "object",
33588
+ "propertyNames": {
33589
+ "type": "string"
33590
+ },
33591
+ "additionalProperties": {}
33592
+ }
33593
+ },
33594
+ "required": [
33595
+ "id",
33596
+ "role",
33597
+ "text",
33598
+ "createdAt"
33599
+ ]
33600
+ }
33601
+ },
33602
+ "required": [
33603
+ "type",
33604
+ "runId",
33605
+ "sequence",
33606
+ "createdAt",
33607
+ "followUpId",
33608
+ "message"
33609
+ ]
33610
+ },
31601
33611
  {
31602
33612
  "type": "object",
31603
33613
  "properties": {
@@ -32101,6 +34111,48 @@
32101
34111
  "preview"
32102
34112
  ]
32103
34113
  },
34114
+ "AgentUse": {
34115
+ "type": "string",
34116
+ "enum": [
34117
+ "everyone",
34118
+ "granted"
34119
+ ]
34120
+ },
34121
+ "AllowDraftHostRequest": {
34122
+ "type": "object",
34123
+ "properties": {
34124
+ "fileSetId": {
34125
+ "type": "string",
34126
+ "minLength": 1,
34127
+ "maxLength": 200
34128
+ },
34129
+ "host": {
34130
+ "type": "string",
34131
+ "minLength": 1,
34132
+ "maxLength": 253
34133
+ }
34134
+ },
34135
+ "required": [
34136
+ "fileSetId",
34137
+ "host"
34138
+ ]
34139
+ },
34140
+ "AllowDraftHostResponse": {
34141
+ "type": "object",
34142
+ "properties": {
34143
+ "host": {
34144
+ "type": "string"
34145
+ },
34146
+ "allowed": {
34147
+ "type": "boolean",
34148
+ "const": true
34149
+ }
34150
+ },
34151
+ "required": [
34152
+ "host",
34153
+ "allowed"
34154
+ ]
34155
+ },
32104
34156
  "AnnotateFeedbackRequest": {
32105
34157
  "type": "object",
32106
34158
  "properties": {
@@ -32222,6 +34274,13 @@
32222
34274
  "locale": {
32223
34275
  "$ref": "#/components/schemas/LocaleCode"
32224
34276
  },
34277
+ "followUpMode": {
34278
+ "type": "string",
34279
+ "enum": [
34280
+ "queue",
34281
+ "steer"
34282
+ ]
34283
+ },
32225
34284
  "instanceAdminName": {
32226
34285
  "type": "string"
32227
34286
  },
@@ -32807,6 +34866,15 @@
32807
34866
  "pageSessionId": {
32808
34867
  "type": "string"
32809
34868
  },
34869
+ "heldBackHosts": {
34870
+ "type": "array",
34871
+ "items": {
34872
+ "type": "string"
34873
+ }
34874
+ },
34875
+ "draftHosts": {
34876
+ "$ref": "#/components/schemas/DraftHosts"
34877
+ },
32810
34878
  "unassignedScopes": {
32811
34879
  "type": "array",
32812
34880
  "items": {
@@ -32820,12 +34888,6 @@
32820
34888
  },
32821
34889
  "interfacePath": {
32822
34890
  "type": "string"
32823
- },
32824
- "heldBackHosts": {
32825
- "type": "array",
32826
- "items": {
32827
- "type": "string"
32828
- }
32829
34891
  }
32830
34892
  },
32831
34893
  "required": [
@@ -32834,9 +34896,9 @@
32834
34896
  "fileSetId",
32835
34897
  "number",
32836
34898
  "pageSessionId",
34899
+ "heldBackHosts",
32837
34900
  "revision",
32838
- "interfacePath",
32839
- "heldBackHosts"
34901
+ "interfacePath"
32840
34902
  ]
32841
34903
  },
32842
34904
  "AppPreviewRequest": {
@@ -32850,6 +34912,166 @@
32850
34912
  "mode"
32851
34913
  ]
32852
34914
  },
34915
+ "AppPublishRefusal": {
34916
+ "type": "object",
34917
+ "properties": {
34918
+ "reason": {
34919
+ "type": "string"
34920
+ },
34921
+ "message": {
34922
+ "type": "string"
34923
+ },
34924
+ "right": {
34925
+ "type": "string"
34926
+ }
34927
+ },
34928
+ "required": [
34929
+ "reason",
34930
+ "message"
34931
+ ]
34932
+ },
34933
+ "AppPublishReview": {
34934
+ "type": "object",
34935
+ "properties": {
34936
+ "app": {
34937
+ "type": "object",
34938
+ "properties": {
34939
+ "name": {
34940
+ "type": "string"
34941
+ },
34942
+ "title": {
34943
+ "type": "string"
34944
+ },
34945
+ "draftRevision": {
34946
+ "type": "integer",
34947
+ "exclusiveMinimum": 0,
34948
+ "maximum": 9007199254740991
34949
+ },
34950
+ "publishedRevision": {
34951
+ "type": "integer",
34952
+ "exclusiveMinimum": 0,
34953
+ "maximum": 9007199254740991
34954
+ },
34955
+ "pending": {
34956
+ "type": "boolean"
34957
+ },
34958
+ "narrative": {
34959
+ "$ref": "#/components/schemas/PublishNarrative"
34960
+ },
34961
+ "lastChangedBy": {
34962
+ "type": "string"
34963
+ },
34964
+ "refusals": {
34965
+ "type": "array",
34966
+ "items": {
34967
+ "$ref": "#/components/schemas/AppPublishRefusal"
34968
+ }
34969
+ }
34970
+ },
34971
+ "required": [
34972
+ "name",
34973
+ "title",
34974
+ "draftRevision",
34975
+ "pending",
34976
+ "refusals"
34977
+ ]
34978
+ },
34979
+ "workflows": {
34980
+ "type": "array",
34981
+ "items": {
34982
+ "type": "object",
34983
+ "properties": {
34984
+ "name": {
34985
+ "type": "string"
34986
+ },
34987
+ "title": {
34988
+ "type": "string"
34989
+ },
34990
+ "draftRevision": {
34991
+ "type": "integer",
34992
+ "exclusiveMinimum": 0,
34993
+ "maximum": 9007199254740991
34994
+ },
34995
+ "publishedRevision": {
34996
+ "type": "integer",
34997
+ "exclusiveMinimum": 0,
34998
+ "maximum": 9007199254740991
34999
+ },
35000
+ "pending": {
35001
+ "type": "boolean"
35002
+ },
35003
+ "narrative": {
35004
+ "$ref": "#/components/schemas/PublishNarrative"
35005
+ },
35006
+ "lastChangedBy": {
35007
+ "type": "string"
35008
+ },
35009
+ "refusals": {
35010
+ "type": "array",
35011
+ "items": {
35012
+ "$ref": "#/components/schemas/AppPublishRefusal"
35013
+ }
35014
+ },
35015
+ "actions": {
35016
+ "type": "array",
35017
+ "items": {
35018
+ "type": "string"
35019
+ }
35020
+ },
35021
+ "lastTestRun": {
35022
+ "type": "object",
35023
+ "properties": {
35024
+ "runId": {
35025
+ "type": "string"
35026
+ },
35027
+ "status": {
35028
+ "type": "string",
35029
+ "enum": [
35030
+ "continued",
35031
+ "queued",
35032
+ "running",
35033
+ "waiting",
35034
+ "done",
35035
+ "failed",
35036
+ "cancelled",
35037
+ "limit_reached"
35038
+ ]
35039
+ },
35040
+ "at": {
35041
+ "type": "string"
35042
+ }
35043
+ },
35044
+ "required": [
35045
+ "runId",
35046
+ "status",
35047
+ "at"
35048
+ ]
35049
+ }
35050
+ },
35051
+ "required": [
35052
+ "name",
35053
+ "title",
35054
+ "draftRevision",
35055
+ "pending",
35056
+ "refusals",
35057
+ "actions"
35058
+ ]
35059
+ }
35060
+ },
35061
+ "publishesTogether": {
35062
+ "type": "boolean"
35063
+ },
35064
+ "ready": {
35065
+ "type": "boolean"
35066
+ }
35067
+ },
35068
+ "required": [
35069
+ "app",
35070
+ "workflows",
35071
+ "publishesTogether",
35072
+ "ready"
35073
+ ]
35074
+ },
32853
35075
  "AppSessionContext": {
32854
35076
  "type": "object",
32855
35077
  "properties": {
@@ -33015,6 +35237,96 @@
33015
35237
  "saved"
33016
35238
  ]
33017
35239
  },
35240
+ "AppTryActionRequestInput": {
35241
+ "type": "object",
35242
+ "properties": {
35243
+ "input": {
35244
+ "default": {},
35245
+ "type": "object",
35246
+ "propertyNames": {
35247
+ "type": "string"
35248
+ },
35249
+ "additionalProperties": {}
35250
+ }
35251
+ },
35252
+ "additionalProperties": false
35253
+ },
35254
+ "AppTryActionResult": {
35255
+ "type": "object",
35256
+ "properties": {
35257
+ "operationRunId": {
35258
+ "type": "string"
35259
+ },
35260
+ "status": {
35261
+ "type": "string",
35262
+ "enum": [
35263
+ "done",
35264
+ "pending_approval",
35265
+ "dry_run"
35266
+ ]
35267
+ },
35268
+ "target": {
35269
+ "$ref": "#/components/schemas/OperationTarget"
35270
+ },
35271
+ "result": {},
35272
+ "message": {
35273
+ "type": "string"
35274
+ },
35275
+ "workflowRun": {
35276
+ "type": "object",
35277
+ "properties": {
35278
+ "runId": {
35279
+ "type": "string"
35280
+ },
35281
+ "workflow": {
35282
+ "type": "string"
35283
+ },
35284
+ "status": {
35285
+ "type": "string",
35286
+ "enum": [
35287
+ "continued",
35288
+ "queued",
35289
+ "running",
35290
+ "waiting",
35291
+ "done",
35292
+ "failed",
35293
+ "cancelled",
35294
+ "limit_reached"
35295
+ ]
35296
+ },
35297
+ "revision": {
35298
+ "type": "object",
35299
+ "properties": {
35300
+ "kind": {
35301
+ "type": "string",
35302
+ "enum": [
35303
+ "draft",
35304
+ "published"
35305
+ ]
35306
+ },
35307
+ "number": {
35308
+ "type": "integer",
35309
+ "exclusiveMinimum": 0,
35310
+ "maximum": 9007199254740991
35311
+ }
35312
+ },
35313
+ "required": [
35314
+ "kind"
35315
+ ]
35316
+ }
35317
+ },
35318
+ "required": [
35319
+ "runId",
35320
+ "workflow",
35321
+ "status",
35322
+ "revision"
35323
+ ]
35324
+ }
35325
+ },
35326
+ "required": [
35327
+ "status"
35328
+ ]
35329
+ },
33018
35330
  "AppWorkflowActionUnavailable": {
33019
35331
  "type": "string",
33020
35332
  "enum": [
@@ -33741,6 +36053,9 @@
33741
36053
  "canSetAvailability": {
33742
36054
  "type": "boolean"
33743
36055
  },
36056
+ "agentUse": {
36057
+ "$ref": "#/components/schemas/AgentUse"
36058
+ },
33744
36059
  "unavailableTools": {
33745
36060
  "type": "array",
33746
36061
  "items": {
@@ -33895,6 +36210,36 @@
33895
36210
  "type": "integer",
33896
36211
  "exclusiveMinimum": 0,
33897
36212
  "maximum": 9007199254740991
36213
+ },
36214
+ "publishedWith": {
36215
+ "type": "array",
36216
+ "items": {
36217
+ "type": "object",
36218
+ "properties": {
36219
+ "kind": {
36220
+ "type": "string",
36221
+ "const": "workflow"
36222
+ },
36223
+ "name": {
36224
+ "type": "string"
36225
+ },
36226
+ "publishedRevision": {
36227
+ "type": "integer",
36228
+ "exclusiveMinimum": 0,
36229
+ "maximum": 9007199254740991
36230
+ },
36231
+ "replacedRevision": {
36232
+ "type": "integer",
36233
+ "exclusiveMinimum": 0,
36234
+ "maximum": 9007199254740991
36235
+ }
36236
+ },
36237
+ "required": [
36238
+ "kind",
36239
+ "name",
36240
+ "publishedRevision"
36241
+ ]
36242
+ }
33898
36243
  }
33899
36244
  },
33900
36245
  "required": [
@@ -33906,6 +36251,98 @@
33906
36251
  "type": "string",
33907
36252
  "pattern": "^(?:draft|published|[1-9]\\d{0,8})$"
33908
36253
  },
36254
+ "AssetRightsCheck": {
36255
+ "type": "object",
36256
+ "properties": {
36257
+ "holderActive": {
36258
+ "type": "boolean"
36259
+ },
36260
+ "roles": {
36261
+ "type": "array",
36262
+ "items": {
36263
+ "$ref": "#/components/schemas/AccessOriginRole"
36264
+ }
36265
+ },
36266
+ "actions": {
36267
+ "type": "array",
36268
+ "items": {
36269
+ "type": "object",
36270
+ "properties": {
36271
+ "availability": {
36272
+ "type": "string",
36273
+ "enum": [
36274
+ "self",
36275
+ "workspace",
36276
+ "instance"
36277
+ ]
36278
+ },
36279
+ "onlyInWorkspaces": {
36280
+ "type": "array",
36281
+ "items": {
36282
+ "type": "object",
36283
+ "properties": {
36284
+ "personal": {
36285
+ "type": "boolean"
36286
+ },
36287
+ "name": {
36288
+ "type": "string"
36289
+ }
36290
+ },
36291
+ "required": [
36292
+ "personal"
36293
+ ]
36294
+ }
36295
+ },
36296
+ "verb": {
36297
+ "type": "string",
36298
+ "enum": [
36299
+ "read",
36300
+ "use",
36301
+ "write",
36302
+ "delete"
36303
+ ]
36304
+ },
36305
+ "action": {
36306
+ "type": "string"
36307
+ },
36308
+ "allowed": {
36309
+ "type": "boolean"
36310
+ },
36311
+ "reason": {
36312
+ "type": "string",
36313
+ "enum": [
36314
+ "denied",
36315
+ "no_grant",
36316
+ "holder_inactive"
36317
+ ]
36318
+ },
36319
+ "decidedBy": {
36320
+ "$ref": "#/components/schemas/AccessOrigin"
36321
+ },
36322
+ "deniedThrough": {
36323
+ "type": "string",
36324
+ "enum": [
36325
+ "read",
36326
+ "use",
36327
+ "write",
36328
+ "delete"
36329
+ ]
36330
+ }
36331
+ },
36332
+ "required": [
36333
+ "verb",
36334
+ "action",
36335
+ "allowed"
36336
+ ]
36337
+ }
36338
+ }
36339
+ },
36340
+ "required": [
36341
+ "holderActive",
36342
+ "roles",
36343
+ "actions"
36344
+ ]
36345
+ },
33909
36346
  "AssetScope": {
33910
36347
  "oneOf": [
33911
36348
  {
@@ -34407,7 +36844,10 @@
34407
36844
  "at": {
34408
36845
  "$ref": "#/components/schemas/Timestamp"
34409
36846
  },
34410
- "label": {
36847
+ "type": {
36848
+ "type": "string"
36849
+ },
36850
+ "action": {
34411
36851
  "type": "string"
34412
36852
  },
34413
36853
  "tier": {
@@ -34457,7 +36897,7 @@
34457
36897
  "required": [
34458
36898
  "correlationId",
34459
36899
  "at",
34460
- "label",
36900
+ "type",
34461
36901
  "tier",
34462
36902
  "outcome",
34463
36903
  "actor",
@@ -35799,7 +38239,8 @@
35799
38239
  "mode": {
35800
38240
  "type": "string",
35801
38241
  "enum": [
35802
- "queue"
38242
+ "queue",
38243
+ "steer"
35803
38244
  ]
35804
38245
  },
35805
38246
  "status": {
@@ -35807,6 +38248,7 @@
35807
38248
  "enum": [
35808
38249
  "pending",
35809
38250
  "dispatched",
38251
+ "consumed",
35810
38252
  "cancelled"
35811
38253
  ]
35812
38254
  },
@@ -36617,9 +39059,12 @@
36617
39059
  "type": "object",
36618
39060
  "properties": {
36619
39061
  "followUp": {
36620
- "description": "Queue the message when this conversation has an active run. Without this option, an active run still returns CONFLICT.",
39062
+ "description": "What happens when this conversation has an active run. `queue` sends the message as the next turn. `steer` hands it to the running turn at its next step when the run is the caller's own under the same credential and the message has no attachments, and queues it otherwise. Without this option, an active run still returns CONFLICT.",
36621
39063
  "type": "string",
36622
- "const": "queue"
39064
+ "enum": [
39065
+ "queue",
39066
+ "steer"
39067
+ ]
36623
39068
  },
36624
39069
  "idempotencyKey": {
36625
39070
  "type": "string",
@@ -37142,6 +39587,24 @@
37142
39587
  "attachments"
37143
39588
  ]
37144
39589
  },
39590
+ "DraftHosts": {
39591
+ "type": "object",
39592
+ "properties": {
39593
+ "allowable": {
39594
+ "type": "array",
39595
+ "items": {
39596
+ "type": "string"
39597
+ }
39598
+ },
39599
+ "readsData": {
39600
+ "type": "boolean"
39601
+ }
39602
+ },
39603
+ "required": [
39604
+ "allowable",
39605
+ "readsData"
39606
+ ]
39607
+ },
37145
39608
  "EffectivePermissions": {
37146
39609
  "type": "object",
37147
39610
  "properties": {
@@ -37378,6 +39841,128 @@
37378
39841
  "asset"
37379
39842
  ]
37380
39843
  },
39844
+ "HolderRights": {
39845
+ "type": "object",
39846
+ "properties": {
39847
+ "holderActive": {
39848
+ "type": "boolean"
39849
+ },
39850
+ "roles": {
39851
+ "type": "array",
39852
+ "items": {
39853
+ "$ref": "#/components/schemas/AccessOriginRole"
39854
+ }
39855
+ },
39856
+ "rights": {
39857
+ "type": "array",
39858
+ "items": {
39859
+ "type": "object",
39860
+ "properties": {
39861
+ "action": {
39862
+ "type": "string"
39863
+ },
39864
+ "scopeKind": {
39865
+ "$ref": "#/components/schemas/GrantScopeKind"
39866
+ },
39867
+ "scopeId": {
39868
+ "type": "string"
39869
+ },
39870
+ "allowed": {
39871
+ "type": "boolean"
39872
+ },
39873
+ "reason": {
39874
+ "type": "string",
39875
+ "enum": [
39876
+ "denied",
39877
+ "no_grant",
39878
+ "holder_inactive"
39879
+ ]
39880
+ },
39881
+ "grantedBy": {
39882
+ "type": "array",
39883
+ "items": {
39884
+ "$ref": "#/components/schemas/AccessOrigin"
39885
+ }
39886
+ },
39887
+ "deniedBy": {
39888
+ "$ref": "#/components/schemas/AccessOrigin"
39889
+ },
39890
+ "scopeAsset": {
39891
+ "type": "object",
39892
+ "properties": {
39893
+ "kind": {
39894
+ "type": "string"
39895
+ },
39896
+ "name": {
39897
+ "type": "string"
39898
+ },
39899
+ "title": {
39900
+ "type": "string"
39901
+ },
39902
+ "active": {
39903
+ "type": "boolean"
39904
+ }
39905
+ },
39906
+ "required": [
39907
+ "kind",
39908
+ "active"
39909
+ ]
39910
+ },
39911
+ "scopeWorkspace": {
39912
+ "type": "object",
39913
+ "properties": {
39914
+ "personal": {
39915
+ "type": "boolean"
39916
+ },
39917
+ "name": {
39918
+ "type": "string"
39919
+ }
39920
+ },
39921
+ "required": [
39922
+ "personal"
39923
+ ]
39924
+ },
39925
+ "availability": {
39926
+ "type": "string",
39927
+ "enum": [
39928
+ "self",
39929
+ "workspace",
39930
+ "instance"
39931
+ ]
39932
+ },
39933
+ "onlyInWorkspaces": {
39934
+ "type": "array",
39935
+ "items": {
39936
+ "type": "object",
39937
+ "properties": {
39938
+ "personal": {
39939
+ "type": "boolean"
39940
+ },
39941
+ "name": {
39942
+ "type": "string"
39943
+ }
39944
+ },
39945
+ "required": [
39946
+ "personal"
39947
+ ]
39948
+ }
39949
+ }
39950
+ },
39951
+ "required": [
39952
+ "action",
39953
+ "scopeKind",
39954
+ "allowed",
39955
+ "grantedBy"
39956
+ ]
39957
+ }
39958
+ }
39959
+ },
39960
+ "required": [
39961
+ "holderActive",
39962
+ "roles",
39963
+ "rights"
39964
+ ]
39965
+ },
37381
39966
  "Infrastructure": {
37382
39967
  "type": "object",
37383
39968
  "properties": {
@@ -39613,6 +42198,15 @@
39613
42198
  },
39614
42199
  "pageSessionId": {
39615
42200
  "type": "string"
42201
+ },
42202
+ "heldBackHosts": {
42203
+ "type": "array",
42204
+ "items": {
42205
+ "type": "string"
42206
+ }
42207
+ },
42208
+ "draftHosts": {
42209
+ "$ref": "#/components/schemas/DraftHosts"
39616
42210
  }
39617
42211
  },
39618
42212
  "required": [
@@ -40215,6 +42809,28 @@
40215
42809
  "workspaceId": {
40216
42810
  "type": "string",
40217
42811
  "minLength": 1
42812
+ },
42813
+ "workflows": {
42814
+ "maxItems": 20,
42815
+ "type": "array",
42816
+ "items": {
42817
+ "type": "object",
42818
+ "properties": {
42819
+ "name": {
42820
+ "type": "string",
42821
+ "minLength": 1
42822
+ },
42823
+ "revision": {
42824
+ "type": "integer",
42825
+ "exclusiveMinimum": 0,
42826
+ "maximum": 9007199254740991
42827
+ }
42828
+ },
42829
+ "required": [
42830
+ "name",
42831
+ "revision"
42832
+ ]
42833
+ }
40218
42834
  }
40219
42835
  },
40220
42836
  "required": [
@@ -41309,6 +43925,143 @@
41309
43925
  "approverNames"
41310
43926
  ]
41311
43927
  },
43928
+ "ScopeAssignmentsOverview": {
43929
+ "type": "object",
43930
+ "properties": {
43931
+ "dimensions": {
43932
+ "type": "object",
43933
+ "propertyNames": {
43934
+ "type": "string",
43935
+ "pattern": "^[a-z][a-z0-9_]{0,62}$"
43936
+ },
43937
+ "additionalProperties": {
43938
+ "type": "object",
43939
+ "properties": {
43940
+ "label": {
43941
+ "type": "string",
43942
+ "minLength": 1,
43943
+ "maxLength": 120
43944
+ },
43945
+ "valueType": {
43946
+ "type": "string",
43947
+ "const": "text"
43948
+ }
43949
+ },
43950
+ "required": [
43951
+ "label",
43952
+ "valueType"
43953
+ ]
43954
+ }
43955
+ },
43956
+ "assignments": {
43957
+ "type": "array",
43958
+ "items": {
43959
+ "type": "object",
43960
+ "properties": {
43961
+ "dimension": {
43962
+ "type": "string",
43963
+ "pattern": "^[a-z][a-z0-9_]{0,62}$"
43964
+ },
43965
+ "holderKind": {
43966
+ "type": "string",
43967
+ "enum": [
43968
+ "user",
43969
+ "group",
43970
+ "service_principal"
43971
+ ]
43972
+ },
43973
+ "holderId": {
43974
+ "type": "string",
43975
+ "minLength": 1,
43976
+ "maxLength": 200
43977
+ },
43978
+ "effect": {
43979
+ "type": "string",
43980
+ "enum": [
43981
+ "allow",
43982
+ "deny"
43983
+ ]
43984
+ },
43985
+ "values": {
43986
+ "anyOf": [
43987
+ {
43988
+ "type": "string",
43989
+ "const": "all"
43990
+ },
43991
+ {
43992
+ "maxItems": 10000,
43993
+ "type": "array",
43994
+ "items": {
43995
+ "type": "string",
43996
+ "minLength": 1,
43997
+ "maxLength": 200
43998
+ }
43999
+ }
44000
+ ]
44001
+ }
44002
+ },
44003
+ "required": [
44004
+ "dimension",
44005
+ "holderKind",
44006
+ "holderId",
44007
+ "effect",
44008
+ "values"
44009
+ ]
44010
+ }
44011
+ },
44012
+ "people": {
44013
+ "type": "array",
44014
+ "items": {
44015
+ "type": "object",
44016
+ "properties": {
44017
+ "id": {
44018
+ "type": "string"
44019
+ },
44020
+ "displayLabel": {
44021
+ "type": "string"
44022
+ },
44023
+ "groups": {
44024
+ "type": "array",
44025
+ "items": {
44026
+ "type": "string"
44027
+ }
44028
+ },
44029
+ "effective": {
44030
+ "type": "object",
44031
+ "propertyNames": {
44032
+ "type": "string"
44033
+ },
44034
+ "additionalProperties": {
44035
+ "anyOf": [
44036
+ {
44037
+ "type": "string",
44038
+ "const": "all"
44039
+ },
44040
+ {
44041
+ "type": "array",
44042
+ "items": {
44043
+ "type": "string"
44044
+ }
44045
+ }
44046
+ ]
44047
+ }
44048
+ }
44049
+ },
44050
+ "required": [
44051
+ "id",
44052
+ "displayLabel",
44053
+ "groups",
44054
+ "effective"
44055
+ ]
44056
+ }
44057
+ }
44058
+ },
44059
+ "required": [
44060
+ "dimensions",
44061
+ "assignments",
44062
+ "people"
44063
+ ]
44064
+ },
41312
44065
  "SendAdministeredUserInvitationResponse": {
41313
44066
  "type": "object",
41314
44067
  "properties": {
@@ -41480,6 +44233,32 @@
41480
44233
  "authSource"
41481
44234
  ]
41482
44235
  },
44236
+ "SetAgentUseRequest": {
44237
+ "type": "object",
44238
+ "properties": {
44239
+ "use": {
44240
+ "$ref": "#/components/schemas/AgentUse"
44241
+ },
44242
+ "expectedAssetId": {
44243
+ "type": "string",
44244
+ "minLength": 1
44245
+ }
44246
+ },
44247
+ "required": [
44248
+ "use"
44249
+ ]
44250
+ },
44251
+ "SetAgentUseResponse": {
44252
+ "type": "object",
44253
+ "properties": {
44254
+ "use": {
44255
+ "$ref": "#/components/schemas/AgentUse"
44256
+ }
44257
+ },
44258
+ "required": [
44259
+ "use"
44260
+ ]
44261
+ },
41483
44262
  "SetAssetAvailabilityRequest": {
41484
44263
  "type": "object",
41485
44264
  "properties": {
@@ -41606,9 +44385,12 @@
41606
44385
  "type": "object",
41607
44386
  "properties": {
41608
44387
  "followUp": {
41609
- "description": "Queue the message when this conversation has an active run. Without this option, an active run still returns CONFLICT.",
44388
+ "description": "What happens when this conversation has an active run. `queue` sends the message as the next turn. `steer` hands it to the running turn at its next step when the run is the caller's own under the same credential and the message has no attachments, and queues it otherwise. Without this option, an active run still returns CONFLICT.",
41610
44389
  "type": "string",
41611
- "const": "queue"
44390
+ "enum": [
44391
+ "queue",
44392
+ "steer"
44393
+ ]
41612
44394
  },
41613
44395
  "idempotencyKey": {
41614
44396
  "type": "string",
@@ -42272,6 +45054,13 @@
42272
45054
  "type": "null"
42273
45055
  }
42274
45056
  ]
45057
+ },
45058
+ "followUpMode": {
45059
+ "type": "string",
45060
+ "enum": [
45061
+ "queue",
45062
+ "steer"
45063
+ ]
42275
45064
  }
42276
45065
  }
42277
45066
  },
@@ -42574,7 +45363,30 @@
42574
45363
  "source"
42575
45364
  ]
42576
45365
  },
42577
- "attachmentManifest": {}
45366
+ "attachmentManifest": {},
45367
+ "steered": {
45368
+ "type": "object",
45369
+ "properties": {
45370
+ "runId": {
45371
+ "type": "string"
45372
+ },
45373
+ "followUpId": {
45374
+ "type": "string"
45375
+ },
45376
+ "authorUserId": {
45377
+ "type": "string"
45378
+ },
45379
+ "typedAt": {
45380
+ "$ref": "#/components/schemas/Timestamp"
45381
+ }
45382
+ },
45383
+ "required": [
45384
+ "runId",
45385
+ "followUpId",
45386
+ "authorUserId",
45387
+ "typedAt"
45388
+ ]
45389
+ }
42578
45390
  },
42579
45391
  "required": [
42580
45392
  "version",