@thinkai/tai-api-contract 2.185.0 → 2.187.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -221,6 +221,79 @@ export interface paths {
221
221
  patch?: never;
222
222
  trace?: never;
223
223
  };
224
+ "/admin/automation-cost/summary": {
225
+ parameters: {
226
+ query?: never;
227
+ header?: never;
228
+ path?: never;
229
+ cookie?: never;
230
+ };
231
+ /**
232
+ * Estimated Agent automation spend by workspace and operation
233
+ * @description Rolls up `tai_readiness_token_usage` for the given UTC range (defaults to the current UTC calendar month when `from`/`to` are omitted). Each row is one `(workspaceId, operation)` with token totals, invocation count, and `estimatedSpendCents` from `workers.automationCost.pricing` (Cursor Auto pool list-rate defaults when keys are missing). Portfolio `totals` are sums of the returned rows.
234
+ * **Authorization:** Bearer JWT required. Caller email must appear in `PLATFORM_ADMIN_EMAILS`. Separate from customer Insights AI Usage & Spend / `ai_cost_budget`.
235
+ */
236
+ get: operations["adminGetAutomationCostSummary"];
237
+ put?: never;
238
+ post?: never;
239
+ delete?: never;
240
+ options?: never;
241
+ head?: never;
242
+ patch?: never;
243
+ trace?: never;
244
+ };
245
+ "/admin/workspaces/{workspaceId}/automation-cost/budget": {
246
+ parameters: {
247
+ query?: never;
248
+ header?: never;
249
+ path?: never;
250
+ cookie?: never;
251
+ };
252
+ /**
253
+ * Get automation-cost budget and month status for a workspace
254
+ * @description Returns budget rows for `readiness_analysis` and/or `readiness_fix` with `monthSpendCents` (estimated from token rows in the current UTC month) and `status` (`ok` | `warn` | `hard_stopped` | `paused`). When no budget is configured, `monthlyBudgetCents` is null and status is `ok` (unlimited) unless paused.
255
+ * **Authorization:** Bearer JWT + `PLATFORM_ADMIN_EMAILS`.
256
+ */
257
+ get: operations["adminGetAutomationCostBudget"];
258
+ /**
259
+ * Upsert automation-cost budget for one operation
260
+ * @description Upserts `{ operation, monthlyBudgetCents, warnThresholdPct, hardEnabled }` into workspace `automation_cost_budget` (not `ai_cost_budget`). Default `warnThresholdPct` is 80. `monthlyBudgetCents: 0` with `hardEnabled: true` is an immediate hard stop. Returns the refreshed budget view for that operation.
261
+ * **Authorization:** Bearer JWT + `PLATFORM_ADMIN_EMAILS`.
262
+ */
263
+ put: operations["adminPutAutomationCostBudget"];
264
+ post?: never;
265
+ delete?: never;
266
+ options?: never;
267
+ head?: never;
268
+ patch?: never;
269
+ trace?: never;
270
+ };
271
+ "/admin/workspaces/{workspaceId}/automation-cost/pause": {
272
+ parameters: {
273
+ query?: never;
274
+ header?: never;
275
+ path?: never;
276
+ cookie?: never;
277
+ };
278
+ get?: never;
279
+ put?: never;
280
+ /**
281
+ * Pause Agent automation for selected operations
282
+ * @description Sets a per-workspace pause kill-switch for the listed operations. Workers honor pause the same as a hard budget stop (enforcement is a follow-up slice). Empty `operations` → `400`.
283
+ * **Authorization:** Bearer JWT + `PLATFORM_ADMIN_EMAILS`.
284
+ */
285
+ post: operations["adminPostAutomationCostPause"];
286
+ /**
287
+ * Clear automation-cost pause for a workspace
288
+ * @description Clears `automation_cost_pause` for the workspace so workers may resume when under hard cap.
289
+ * **Authorization:** Bearer JWT + `PLATFORM_ADMIN_EMAILS`.
290
+ */
291
+ delete: operations["adminDeleteAutomationCostPause"];
292
+ options?: never;
293
+ head?: never;
294
+ patch?: never;
295
+ trace?: never;
296
+ };
224
297
  "/privacy-requests": {
225
298
  parameters: {
226
299
  query?: never;
@@ -6882,13 +6955,52 @@ export interface components {
6882
6955
  generatedAt: string;
6883
6956
  contributors: components["schemas"]["AiUsageSpendAggregatedContributorRowDto"][];
6884
6957
  };
6958
+ /** @description Numeric evidence for `id=model_right_sizing` (Cost-to-Value insight #2). Premium share is `premiumSpendCents / totalModelSpendCents` against `thresholdPct` (Phase A default 40). */
6959
+ AiUsageSpendKeyInsightModelRightSizingEvidenceDto: {
6960
+ /** @description Premium-model share of model spend in the window (0–100). */
6961
+ premiumSharePct: number;
6962
+ /** @description Sum of spend_cents on premium-classified models (cents). */
6963
+ premiumSpendCents: number;
6964
+ /** @description Sum of spend_cents across all models in the window (cents). */
6965
+ totalModelSpendCents: number;
6966
+ /** @description Effective premium-share threshold used for this card (0–100). */
6967
+ thresholdPct: number;
6968
+ /** @description Distinct mapped person_id rows contributing to this card's sample (workspace rollup or the single person for a person-scoped card). */
6969
+ personCount: number;
6970
+ };
6971
+ /** @description Optional member drill-down for person-scoped `model_right_sizing` cards. Links to `GET …/integrations/ai-tool/{provider}/members/{externalId}`. */
6972
+ AiUsageSpendKeyInsightDrilldownDto: {
6973
+ /**
6974
+ * @description AI tool provider for the member detail route.
6975
+ * @enum {string}
6976
+ */
6977
+ provider: "cursor" | "claude";
6978
+ /** @description Provider member external id for the member detail route. */
6979
+ externalId: string;
6980
+ };
6981
+ /** @description One Key Insights panel card. Base fields (`id`, `tone`, `text`) apply to all insights. When `id` is `model_right_sizing`, clients MUST treat `dataQuality`, `limitation`, `recommendedAction`, and `evidence` as required; `scope` and `drilldown` are optional (person cards may set both). */
6885
6982
  AiUsageSpendKeyInsightItemDto: {
6886
- /** @description Stable insight key (e.g. spend-leader, spend-vs-output). */
6983
+ /** @description Stable insight key (e.g. spend-leader, spend-vs-output, model_right_sizing). */
6887
6984
  id: string;
6888
6985
  /** @enum {string} */
6889
6986
  tone: "positive" | "warning" | "neutral";
6890
6987
  /** @description Human-readable insight sentence for the UI panel. */
6891
6988
  text: string;
6989
+ /** @description Required when `id=model_right_sizing`. Phase A/B always `estimated` (model-mix heuristic; no task-complexity telemetry until Phase 3). */
6990
+ dataQuality?: components["schemas"]["AiAssistedCodeDataQuality"];
6991
+ /** @description Required when `id=model_right_sizing`. Fixed honesty string that the model mix is heuristic and does not encode task complexity. */
6992
+ limitation?: string;
6993
+ /** @description Required when `id=model_right_sizing`. Coaching copy for the card CTA (advisory only; not vendor enforcement). */
6994
+ recommendedAction?: string;
6995
+ /** @description Required when `id=model_right_sizing`. */
6996
+ evidence?: components["schemas"]["AiUsageSpendKeyInsightModelRightSizingEvidenceDto"];
6997
+ /**
6998
+ * @description Optional scope for `model_right_sizing` cards. Workspace default vs per-person personalized item.
6999
+ * @enum {string}
7000
+ */
7001
+ scope?: "workspace" | "person";
7002
+ /** @description Optional when `scope=person` for `model_right_sizing`; omitted on workspace cards. */
7003
+ drilldown?: components["schemas"]["AiUsageSpendKeyInsightDrilldownDto"];
6892
7004
  };
6893
7005
  AiUsageSpendKeyInsightsDto: {
6894
7006
  /** Format: uuid */
@@ -10540,6 +10652,83 @@ export interface components {
10540
10652
  ActivityLogPageDto: components["schemas"]["PageMetaDto"] & {
10541
10653
  items: components["schemas"]["ActivityLogEntryDto"][];
10542
10654
  };
10655
+ /**
10656
+ * @description Platform Agent job type in the readiness token ledger.
10657
+ * @enum {string}
10658
+ */
10659
+ AutomationCostOperationDto: "readiness_analysis" | "readiness_fix";
10660
+ AutomationCostSummaryRowDto: {
10661
+ /** Format: uuid */
10662
+ workspaceId: string;
10663
+ operation: components["schemas"]["AutomationCostOperationDto"];
10664
+ /** Format: int64 */
10665
+ inputTokens: number;
10666
+ /** Format: int64 */
10667
+ outputTokens: number;
10668
+ /** Format: int64 */
10669
+ cacheReadTokens: number;
10670
+ /** Format: int64 */
10671
+ cacheWriteTokens: number;
10672
+ /** @description Ops estimate from token totals × runtime-config pricing (integer cents). */
10673
+ estimatedSpendCents: number;
10674
+ invocationCount: number;
10675
+ };
10676
+ AutomationCostSummaryTotalsDto: {
10677
+ /** Format: int64 */
10678
+ inputTokens: number;
10679
+ /** Format: int64 */
10680
+ outputTokens: number;
10681
+ /** Format: int64 */
10682
+ cacheReadTokens: number;
10683
+ /** Format: int64 */
10684
+ cacheWriteTokens: number;
10685
+ estimatedSpendCents: number;
10686
+ invocationCount: number;
10687
+ };
10688
+ AutomationCostSummaryDto: {
10689
+ rows: components["schemas"]["AutomationCostSummaryRowDto"][];
10690
+ totals: components["schemas"]["AutomationCostSummaryTotalsDto"];
10691
+ };
10692
+ /** @enum {string} */
10693
+ AutomationCostBudgetStatusDto: "ok" | "warn" | "hard_stopped" | "paused";
10694
+ AutomationCostBudgetViewDto: {
10695
+ operation: components["schemas"]["AutomationCostOperationDto"];
10696
+ /** @description Null when no budget is configured (unlimited). */
10697
+ monthlyBudgetCents: number | null;
10698
+ warnThresholdPct: number;
10699
+ hardEnabled: boolean;
10700
+ /** @description Estimated spend for this operation in the current UTC calendar month. */
10701
+ monthSpendCents: number;
10702
+ status: components["schemas"]["AutomationCostBudgetStatusDto"];
10703
+ paused: boolean;
10704
+ pauseReason?: string | null;
10705
+ };
10706
+ AutomationCostBudgetListDto: {
10707
+ budgets: components["schemas"]["AutomationCostBudgetViewDto"][];
10708
+ };
10709
+ AutomationCostBudgetUpsertDto: {
10710
+ operation: components["schemas"]["AutomationCostOperationDto"];
10711
+ monthlyBudgetCents: number;
10712
+ /** @default 80 */
10713
+ warnThresholdPct: number;
10714
+ /** @default false */
10715
+ hardEnabled: boolean;
10716
+ };
10717
+ AutomationCostPauseBodyDto: {
10718
+ operations: components["schemas"]["AutomationCostOperationDto"][];
10719
+ reason: string;
10720
+ };
10721
+ AutomationCostPauseStateDto: {
10722
+ operations: components["schemas"]["AutomationCostOperationDto"][];
10723
+ reason: string;
10724
+ /** Format: date-time */
10725
+ pausedAt: string;
10726
+ /** @description Platform admin email that set the pause, when known. */
10727
+ pausedBy?: string | null;
10728
+ };
10729
+ AutomationCostPauseResponseDto: {
10730
+ pause: components["schemas"]["AutomationCostPauseStateDto"];
10731
+ };
10543
10732
  ReadinessTokenUsageRowDto: {
10544
10733
  /**
10545
10734
  * Format: uuid
@@ -12750,6 +12939,8 @@ export type AiUsageSpendAggregatedTeamsDto = components['schemas']['AiUsageSpend
12750
12939
  export type AiUsageSpendAggregatedContributorRowDto = components['schemas']['AiUsageSpendAggregatedContributorRowDto'];
12751
12940
  export type AiUsageSpendAggregatedContributorsDto = components['schemas']['AiUsageSpendAggregatedContributorsDto'];
12752
12941
  export type AiUsageSpendContributorToolHeatmapDto = components['schemas']['AiUsageSpendContributorToolHeatmapDto'];
12942
+ export type AiUsageSpendKeyInsightModelRightSizingEvidenceDto = components['schemas']['AiUsageSpendKeyInsightModelRightSizingEvidenceDto'];
12943
+ export type AiUsageSpendKeyInsightDrilldownDto = components['schemas']['AiUsageSpendKeyInsightDrilldownDto'];
12753
12944
  export type AiUsageSpendKeyInsightItemDto = components['schemas']['AiUsageSpendKeyInsightItemDto'];
12754
12945
  export type AiUsageSpendKeyInsightsDto = components['schemas']['AiUsageSpendKeyInsightsDto'];
12755
12946
  export type AiAssistedCodeDataQuality = components['schemas']['AiAssistedCodeDataQuality'];
@@ -13073,6 +13264,17 @@ export type ZenHrBranchSelectionResultDto = components['schemas']['ZenHrBranchSe
13073
13264
  export type HrisTriggerSyncResultDto = components['schemas']['HrisTriggerSyncResultDto'];
13074
13265
  export type HrisProviderSyncResultDto = components['schemas']['HrisProviderSyncResultDto'];
13075
13266
  export type ActivityLogPageDto = components['schemas']['ActivityLogPageDto'];
13267
+ export type AutomationCostOperationDto = components['schemas']['AutomationCostOperationDto'];
13268
+ export type AutomationCostSummaryRowDto = components['schemas']['AutomationCostSummaryRowDto'];
13269
+ export type AutomationCostSummaryTotalsDto = components['schemas']['AutomationCostSummaryTotalsDto'];
13270
+ export type AutomationCostSummaryDto = components['schemas']['AutomationCostSummaryDto'];
13271
+ export type AutomationCostBudgetStatusDto = components['schemas']['AutomationCostBudgetStatusDto'];
13272
+ export type AutomationCostBudgetViewDto = components['schemas']['AutomationCostBudgetViewDto'];
13273
+ export type AutomationCostBudgetListDto = components['schemas']['AutomationCostBudgetListDto'];
13274
+ export type AutomationCostBudgetUpsertDto = components['schemas']['AutomationCostBudgetUpsertDto'];
13275
+ export type AutomationCostPauseBodyDto = components['schemas']['AutomationCostPauseBodyDto'];
13276
+ export type AutomationCostPauseStateDto = components['schemas']['AutomationCostPauseStateDto'];
13277
+ export type AutomationCostPauseResponseDto = components['schemas']['AutomationCostPauseResponseDto'];
13076
13278
  export type ReadinessTokenUsageRowDto = components['schemas']['ReadinessTokenUsageRowDto'];
13077
13279
  export type ReadinessTokenUsageByDimensionRowDto = components['schemas']['ReadinessTokenUsageByDimensionRowDto'];
13078
13280
  export type SdlcModuleId = components['schemas']['SdlcModuleId'];
@@ -14106,6 +14308,328 @@ export interface operations {
14106
14308
  };
14107
14309
  };
14108
14310
  };
14311
+ adminGetAutomationCostSummary: {
14312
+ parameters: {
14313
+ query?: {
14314
+ /** @description Filter by workspace UUID. */
14315
+ workspaceId?: string;
14316
+ /** @description Inclusive start (ISO-8601). Defaults to start of current UTC month. */
14317
+ from?: string;
14318
+ /** @description Inclusive end (ISO-8601). Defaults to end of current UTC month. */
14319
+ to?: string;
14320
+ };
14321
+ header?: never;
14322
+ path?: never;
14323
+ cookie?: never;
14324
+ };
14325
+ requestBody?: never;
14326
+ responses: {
14327
+ /** @description Summary rows and portfolio totals (empty rows / zero totals when no usage). */
14328
+ 200: {
14329
+ headers: {
14330
+ [name: string]: unknown;
14331
+ };
14332
+ content: {
14333
+ "application/json": components["schemas"]["AutomationCostSummaryDto"];
14334
+ };
14335
+ };
14336
+ /** @description Missing or invalid JWT. */
14337
+ 401: {
14338
+ headers: {
14339
+ [name: string]: unknown;
14340
+ };
14341
+ content: {
14342
+ "application/json": components["schemas"]["ErrorMessageDto"];
14343
+ };
14344
+ };
14345
+ /** @description Caller is not a platform admin. */
14346
+ 403: {
14347
+ headers: {
14348
+ [name: string]: unknown;
14349
+ };
14350
+ content: {
14351
+ /**
14352
+ * @example {
14353
+ * "error": "Forbidden",
14354
+ * "code": "forbidden"
14355
+ * }
14356
+ */
14357
+ "application/json": components["schemas"]["ErrorMessageDto"];
14358
+ };
14359
+ };
14360
+ };
14361
+ };
14362
+ adminGetAutomationCostBudget: {
14363
+ parameters: {
14364
+ query?: {
14365
+ /** @description Limit to one operation; omit for both. */
14366
+ operation?: "readiness_analysis" | "readiness_fix";
14367
+ };
14368
+ header?: never;
14369
+ path: {
14370
+ workspaceId: components["parameters"]["WorkspaceId"];
14371
+ };
14372
+ cookie?: never;
14373
+ };
14374
+ requestBody?: never;
14375
+ responses: {
14376
+ /** @description Budget views for the requested operations. */
14377
+ 200: {
14378
+ headers: {
14379
+ [name: string]: unknown;
14380
+ };
14381
+ content: {
14382
+ "application/json": components["schemas"]["AutomationCostBudgetListDto"];
14383
+ };
14384
+ };
14385
+ /** @description Missing or invalid JWT. */
14386
+ 401: {
14387
+ headers: {
14388
+ [name: string]: unknown;
14389
+ };
14390
+ content: {
14391
+ "application/json": components["schemas"]["ErrorMessageDto"];
14392
+ };
14393
+ };
14394
+ /** @description Caller is not a platform admin. */
14395
+ 403: {
14396
+ headers: {
14397
+ [name: string]: unknown;
14398
+ };
14399
+ content: {
14400
+ /**
14401
+ * @example {
14402
+ * "error": "Forbidden",
14403
+ * "code": "forbidden"
14404
+ * }
14405
+ */
14406
+ "application/json": components["schemas"]["ErrorMessageDto"];
14407
+ };
14408
+ };
14409
+ /** @description Workspace not found. */
14410
+ 404: {
14411
+ headers: {
14412
+ [name: string]: unknown;
14413
+ };
14414
+ content: {
14415
+ /**
14416
+ * @example {
14417
+ * "error": "Workspace not found",
14418
+ * "code": "workspace_not_found"
14419
+ * }
14420
+ */
14421
+ "application/json": components["schemas"]["ErrorMessageDto"];
14422
+ };
14423
+ };
14424
+ };
14425
+ };
14426
+ adminPutAutomationCostBudget: {
14427
+ parameters: {
14428
+ query?: never;
14429
+ header?: never;
14430
+ path: {
14431
+ workspaceId: components["parameters"]["WorkspaceId"];
14432
+ };
14433
+ cookie?: never;
14434
+ };
14435
+ requestBody: {
14436
+ content: {
14437
+ "application/json": components["schemas"]["AutomationCostBudgetUpsertDto"];
14438
+ };
14439
+ };
14440
+ responses: {
14441
+ /** @description Updated budget view(s). */
14442
+ 200: {
14443
+ headers: {
14444
+ [name: string]: unknown;
14445
+ };
14446
+ content: {
14447
+ "application/json": components["schemas"]["AutomationCostBudgetListDto"];
14448
+ };
14449
+ };
14450
+ /** @description Invalid body. */
14451
+ 400: {
14452
+ headers: {
14453
+ [name: string]: unknown;
14454
+ };
14455
+ content: {
14456
+ "application/json": components["schemas"]["ErrorMessageDto"];
14457
+ };
14458
+ };
14459
+ /** @description Missing or invalid JWT. */
14460
+ 401: {
14461
+ headers: {
14462
+ [name: string]: unknown;
14463
+ };
14464
+ content: {
14465
+ "application/json": components["schemas"]["ErrorMessageDto"];
14466
+ };
14467
+ };
14468
+ /** @description Caller is not a platform admin. */
14469
+ 403: {
14470
+ headers: {
14471
+ [name: string]: unknown;
14472
+ };
14473
+ content: {
14474
+ /**
14475
+ * @example {
14476
+ * "error": "Forbidden",
14477
+ * "code": "forbidden"
14478
+ * }
14479
+ */
14480
+ "application/json": components["schemas"]["ErrorMessageDto"];
14481
+ };
14482
+ };
14483
+ /** @description Workspace not found. */
14484
+ 404: {
14485
+ headers: {
14486
+ [name: string]: unknown;
14487
+ };
14488
+ content: {
14489
+ /**
14490
+ * @example {
14491
+ * "error": "Workspace not found",
14492
+ * "code": "workspace_not_found"
14493
+ * }
14494
+ */
14495
+ "application/json": components["schemas"]["ErrorMessageDto"];
14496
+ };
14497
+ };
14498
+ };
14499
+ };
14500
+ adminPostAutomationCostPause: {
14501
+ parameters: {
14502
+ query?: never;
14503
+ header?: never;
14504
+ path: {
14505
+ workspaceId: components["parameters"]["WorkspaceId"];
14506
+ };
14507
+ cookie?: never;
14508
+ };
14509
+ requestBody: {
14510
+ content: {
14511
+ "application/json": components["schemas"]["AutomationCostPauseBodyDto"];
14512
+ };
14513
+ };
14514
+ responses: {
14515
+ /** @description Pause state stored. */
14516
+ 200: {
14517
+ headers: {
14518
+ [name: string]: unknown;
14519
+ };
14520
+ content: {
14521
+ "application/json": components["schemas"]["AutomationCostPauseResponseDto"];
14522
+ };
14523
+ };
14524
+ /** @description Empty or invalid operations list. */
14525
+ 400: {
14526
+ headers: {
14527
+ [name: string]: unknown;
14528
+ };
14529
+ content: {
14530
+ "application/json": components["schemas"]["ErrorMessageDto"];
14531
+ };
14532
+ };
14533
+ /** @description Missing or invalid JWT. */
14534
+ 401: {
14535
+ headers: {
14536
+ [name: string]: unknown;
14537
+ };
14538
+ content: {
14539
+ "application/json": components["schemas"]["ErrorMessageDto"];
14540
+ };
14541
+ };
14542
+ /** @description Caller is not a platform admin. */
14543
+ 403: {
14544
+ headers: {
14545
+ [name: string]: unknown;
14546
+ };
14547
+ content: {
14548
+ /**
14549
+ * @example {
14550
+ * "error": "Forbidden",
14551
+ * "code": "forbidden"
14552
+ * }
14553
+ */
14554
+ "application/json": components["schemas"]["ErrorMessageDto"];
14555
+ };
14556
+ };
14557
+ /** @description Workspace not found. */
14558
+ 404: {
14559
+ headers: {
14560
+ [name: string]: unknown;
14561
+ };
14562
+ content: {
14563
+ /**
14564
+ * @example {
14565
+ * "error": "Workspace not found",
14566
+ * "code": "workspace_not_found"
14567
+ * }
14568
+ */
14569
+ "application/json": components["schemas"]["ErrorMessageDto"];
14570
+ };
14571
+ };
14572
+ };
14573
+ };
14574
+ adminDeleteAutomationCostPause: {
14575
+ parameters: {
14576
+ query?: never;
14577
+ header?: never;
14578
+ path: {
14579
+ workspaceId: components["parameters"]["WorkspaceId"];
14580
+ };
14581
+ cookie?: never;
14582
+ };
14583
+ requestBody?: never;
14584
+ responses: {
14585
+ /** @description Pause cleared. */
14586
+ 204: {
14587
+ headers: {
14588
+ [name: string]: unknown;
14589
+ };
14590
+ content?: never;
14591
+ };
14592
+ /** @description Missing or invalid JWT. */
14593
+ 401: {
14594
+ headers: {
14595
+ [name: string]: unknown;
14596
+ };
14597
+ content: {
14598
+ "application/json": components["schemas"]["ErrorMessageDto"];
14599
+ };
14600
+ };
14601
+ /** @description Caller is not a platform admin. */
14602
+ 403: {
14603
+ headers: {
14604
+ [name: string]: unknown;
14605
+ };
14606
+ content: {
14607
+ /**
14608
+ * @example {
14609
+ * "error": "Forbidden",
14610
+ * "code": "forbidden"
14611
+ * }
14612
+ */
14613
+ "application/json": components["schemas"]["ErrorMessageDto"];
14614
+ };
14615
+ };
14616
+ /** @description Workspace not found. */
14617
+ 404: {
14618
+ headers: {
14619
+ [name: string]: unknown;
14620
+ };
14621
+ content: {
14622
+ /**
14623
+ * @example {
14624
+ * "error": "Workspace not found",
14625
+ * "code": "workspace_not_found"
14626
+ * }
14627
+ */
14628
+ "application/json": components["schemas"]["ErrorMessageDto"];
14629
+ };
14630
+ };
14631
+ };
14632
+ };
14109
14633
  submitPublicPrivacyRequest: {
14110
14634
  parameters: {
14111
14635
  query?: never;