@bodhiapp/ts-client 0.1.17 → 0.1.19

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.
@@ -237,7 +237,7 @@ export interface paths {
237
237
  };
238
238
  get?: never;
239
239
  put?: never;
240
- /** Fetch available models from the API */
240
+ /** Fetch available models from the API. */
241
241
  post: operations["fetchApiModels"];
242
242
  delete?: never;
243
243
  options?: never;
@@ -254,7 +254,7 @@ export interface paths {
254
254
  };
255
255
  get?: never;
256
256
  put?: never;
257
- /** Test API connectivity with a prompt */
257
+ /** Test API connectivity with a prompt. */
258
258
  post: operations["testApiModel"];
259
259
  delete?: never;
260
260
  options?: never;
@@ -364,6 +364,46 @@ export interface paths {
364
364
  patch?: never;
365
365
  trace?: never;
366
366
  };
367
+ "/bodhi/v1/auth/dashboard/callback": {
368
+ parameters: {
369
+ query?: never;
370
+ header?: never;
371
+ path?: never;
372
+ cookie?: never;
373
+ };
374
+ get?: never;
375
+ put?: never;
376
+ /**
377
+ * Complete Dashboard OAuth Authentication
378
+ * @description Completes the dashboard OAuth authentication flow by exchanging authorization code for tokens.
379
+ */
380
+ post: operations["completeDashboardOAuthFlow"];
381
+ delete?: never;
382
+ options?: never;
383
+ head?: never;
384
+ patch?: never;
385
+ trace?: never;
386
+ };
387
+ "/bodhi/v1/auth/dashboard/initiate": {
388
+ parameters: {
389
+ query?: never;
390
+ header?: never;
391
+ path?: never;
392
+ cookie?: never;
393
+ };
394
+ get?: never;
395
+ put?: never;
396
+ /**
397
+ * Initiate Dashboard OAuth Authentication
398
+ * @description Initiates the dashboard OAuth authentication flow using the multi-tenant client. Only available in multi-tenant mode.
399
+ */
400
+ post: operations["initiateDashboardOAuthFlow"];
401
+ delete?: never;
402
+ options?: never;
403
+ head?: never;
404
+ patch?: never;
405
+ trace?: never;
406
+ };
367
407
  "/bodhi/v1/auth/initiate": {
368
408
  parameters: {
369
409
  query?: never;
@@ -927,6 +967,50 @@ export interface paths {
927
967
  patch?: never;
928
968
  trace?: never;
929
969
  };
970
+ "/bodhi/v1/tenants": {
971
+ parameters: {
972
+ query?: never;
973
+ header?: never;
974
+ path?: never;
975
+ cookie?: never;
976
+ };
977
+ /**
978
+ * List Tenants
979
+ * @description Lists all tenants visible to the authenticated dashboard user. Each tenant includes whether it is currently active and whether the user has a valid session for it.
980
+ */
981
+ get: operations["tenantsList"];
982
+ put?: never;
983
+ /**
984
+ * Create Tenant
985
+ * @description Creates a new tenant (Keycloak client) via the Bodhi SPI and registers it locally.
986
+ */
987
+ post: operations["tenantsCreate"];
988
+ delete?: never;
989
+ options?: never;
990
+ head?: never;
991
+ patch?: never;
992
+ trace?: never;
993
+ };
994
+ "/bodhi/v1/tenants/{client_id}/activate": {
995
+ parameters: {
996
+ query?: never;
997
+ header?: never;
998
+ path?: never;
999
+ cookie?: never;
1000
+ };
1001
+ get?: never;
1002
+ put?: never;
1003
+ /**
1004
+ * Activate Tenant
1005
+ * @description Sets the given tenant as the active tenant for the current session. The user must already be logged into this tenant.
1006
+ */
1007
+ post: operations["tenantsActivate"];
1008
+ delete?: never;
1009
+ options?: never;
1010
+ head?: never;
1011
+ patch?: never;
1012
+ trace?: never;
1013
+ };
930
1014
  "/bodhi/v1/tokens": {
931
1015
  parameters: {
932
1016
  query?: never;
@@ -1075,7 +1159,7 @@ export interface paths {
1075
1159
  };
1076
1160
  /**
1077
1161
  * Get Current User Information
1078
- * @description Retrieves information about the currently authenticated user. This endpoint supports optional authentication - returns `logged_out` status if not authenticated, or user details with roles/scopes if authenticated via any method (session, API token, or OAuth exchange).
1162
+ * @description Retrieves information about the currently authenticated user. This endpoint supports optional authentication - returns `logged_out` status if not authenticated, or user details with roles/scopes if authenticated via any method (session, API token, or OAuth exchange). Includes `has_dashboard_session` when the user has an active dashboard session.
1079
1163
  */
1080
1164
  get: operations["getCurrentUser"];
1081
1165
  put?: never;
@@ -1422,33 +1506,24 @@ export interface components {
1422
1506
  };
1423
1507
  /** @description Validated API key wrapper - validates length when Some, allows None for public APIs */
1424
1508
  ApiKey: string | null;
1425
- /** @description Represents an API key update action for API model updates */
1426
- ApiKeyUpdateAction: {
1509
+ /** @description Represents an API key update operation for API model aliases and toolsets. */
1510
+ ApiKeyUpdate: {
1427
1511
  /** @enum {string} */
1428
1512
  action: "keep";
1429
1513
  } | {
1430
- /** @description Set a new API key (or add one if none exists) - can be None for public APIs */
1514
+ /** @description Set a new API key (or add one if none exists) - ApiKey validates length */
1431
1515
  value: components["schemas"]["ApiKey"];
1432
1516
  /** @enum {string} */
1433
1517
  action: "set";
1434
1518
  };
1435
- /** @description API key update enum (mirrors services::db::ApiKeyUpdate) */
1436
- ApiKeyUpdateDto: {
1437
- /** @enum {string} */
1438
- action: "Keep";
1439
- } | {
1440
- /** @description Set a new API key (or clear if None) */
1441
- value: string | null;
1442
- /** @enum {string} */
1443
- action: "Set";
1444
- };
1445
1519
  /**
1446
- * @description Response containing API model configuration
1520
+ * @description Output type for API model configuration.
1447
1521
  * @example {
1448
1522
  * "api_format": "openai",
1449
- * "api_key_masked": "sk-...abc123",
1450
1523
  * "base_url": "https://api.openai.com/v1",
1451
1524
  * "created_at": "2024-01-01T00:00:00Z",
1525
+ * "forward_all_with_prefix": false,
1526
+ * "has_api_key": true,
1452
1527
  * "id": "openai-gpt4",
1453
1528
  * "models": [
1454
1529
  * "gpt-4",
@@ -1458,11 +1533,11 @@ export interface components {
1458
1533
  * "updated_at": "2024-01-01T00:00:00Z"
1459
1534
  * }
1460
1535
  */
1461
- ApiModelResponse: {
1536
+ ApiModelOutput: {
1462
1537
  id: string;
1463
1538
  api_format: components["schemas"]["ApiFormat"];
1464
1539
  base_url: string;
1465
- api_key_masked?: string | null;
1540
+ has_api_key: boolean;
1466
1541
  models: string[];
1467
1542
  prefix?: string | null;
1468
1543
  forward_all_with_prefix: boolean;
@@ -1471,42 +1546,46 @@ export interface components {
1471
1546
  /** Format: date-time */
1472
1547
  updated_at: string;
1473
1548
  };
1474
- ApiToken: {
1475
- id: string;
1476
- user_id: string;
1477
- name: string;
1478
- token_prefix: string;
1479
- token_hash: string;
1480
- scopes: string;
1481
- status: components["schemas"]["TokenStatus"];
1482
- /**
1483
- * Format: date-time
1484
- * @example 2024-11-10T04:52:06.786Z
1485
- */
1486
- created_at: string;
1487
- /**
1488
- * Format: date-time
1489
- * @example 2024-11-10T04:52:06.786Z
1490
- */
1491
- updated_at: string;
1492
- };
1493
- /** @example {
1494
- * "token": "bodhiapp_1234567890abcdef"
1495
- * } */
1496
- ApiTokenResponse: {
1497
- /**
1498
- * @description API token with bodhiapp_ prefix for programmatic access
1499
- * @example bodhiapp_1234567890abcdef
1500
- */
1501
- token: string;
1549
+ /**
1550
+ * @description Input request for creating or updating an API model configuration.
1551
+ * @example {
1552
+ * "api_format": "openai",
1553
+ * "api_key": {
1554
+ * "action": "set",
1555
+ * "value": "sk-..."
1556
+ * },
1557
+ * "base_url": "https://api.openai.com/v1",
1558
+ * "models": [
1559
+ * "gpt-4",
1560
+ * "gpt-3.5-turbo"
1561
+ * ],
1562
+ * "prefix": "openai"
1563
+ * }
1564
+ */
1565
+ ApiModelRequest: {
1566
+ /** @description API format/protocol (e.g., "openai") */
1567
+ api_format: components["schemas"]["ApiFormat"];
1568
+ /** @description API base URL */
1569
+ base_url: string;
1570
+ /** @description API key update action (Keep/Set with Some or None) */
1571
+ api_key?: components["schemas"]["ApiKeyUpdate"];
1572
+ /** @description List of available models */
1573
+ models: string[];
1574
+ /** @description Optional prefix for model namespacing (e.g., "azure/" for "azure/gpt-4") */
1575
+ prefix?: string | null;
1576
+ /** @description Whether to forward all requests with this prefix (true) or only selected models (false) */
1577
+ forward_all_with_prefix?: boolean;
1502
1578
  };
1503
1579
  /** @enum {string} */
1504
1580
  AppAccessRequestStatus: "draft" | "approved" | "denied" | "failed" | "expired";
1505
1581
  /**
1506
1582
  * @description Application information and status
1507
1583
  * @example {
1584
+ * "client_id": "my-client-id",
1508
1585
  * "commit_sha": "abc1234",
1586
+ * "deployment": "standalone",
1509
1587
  * "status": "ready",
1588
+ * "url": "https://example.com",
1510
1589
  * "version": "0.1.0"
1511
1590
  * }
1512
1591
  */
@@ -1523,13 +1602,25 @@ export interface components {
1523
1602
  commit_sha: string;
1524
1603
  /** @description Current application setup and operational status */
1525
1604
  status: components["schemas"]["AppStatus"];
1605
+ /** @description Deployment mode: "standalone" or "multi_tenant" */
1606
+ deployment: components["schemas"]["DeploymentMode"];
1607
+ /**
1608
+ * @description Active tenant's OAuth client_id (present when authenticated with an active tenant)
1609
+ * @example my-client-id
1610
+ */
1611
+ client_id?: string | null;
1612
+ /**
1613
+ * @description Public URL of the server
1614
+ * @example https://example.com
1615
+ */
1616
+ url: string;
1526
1617
  };
1527
1618
  AppRole: components["schemas"]["ResourceRole"] | components["schemas"]["TokenScope"] | components["schemas"]["UserScope"];
1528
1619
  /**
1529
1620
  * @example ready
1530
1621
  * @enum {string}
1531
1622
  */
1532
- AppStatus: "setup" | "ready" | "resource_admin";
1623
+ AppStatus: "setup" | "ready" | "resource_admin" | "tenant_selection";
1533
1624
  /** @description Application-level toolset configuration */
1534
1625
  AppToolsetConfig: {
1535
1626
  /** @description Toolset type identifier (e.g., "builtin-exa-search") */
@@ -1557,7 +1648,9 @@ export interface components {
1557
1648
  };
1558
1649
  /** @enum {string} */
1559
1650
  ApprovalStatus: "approved" | "denied";
1560
- /** @example {
1651
+ /**
1652
+ * @description Request for approving an app access request
1653
+ * @example {
1561
1654
  * "approved": {
1562
1655
  * "mcps": [
1563
1656
  * {
@@ -1579,8 +1672,9 @@ export interface components {
1579
1672
  * ]
1580
1673
  * },
1581
1674
  * "approved_role": "scope_user_user"
1582
- * } */
1583
- ApproveAccessRequestBody: {
1675
+ * }
1676
+ */
1677
+ ApproveAccessRequest: {
1584
1678
  /** @description Role to grant for the approved request (scope_user_user or scope_user_power_user) */
1585
1679
  approved_role: components["schemas"]["UserScope"];
1586
1680
  /** @description Approved resources with selections */
@@ -1628,13 +1722,23 @@ export interface components {
1628
1722
  } & {
1629
1723
  [key: string]: string;
1630
1724
  };
1631
- /** @description Change user role request */
1632
- ChangeRoleRequest: {
1725
+ /**
1726
+ * @description Request body for initiating OAuth authentication
1727
+ * @example {
1728
+ * "client_id": "my-client-id"
1729
+ * }
1730
+ */
1731
+ AuthInitiateRequest: {
1633
1732
  /**
1634
- * @description Role to assign to the user
1635
- * @example resource_manager
1733
+ * @description The OAuth client_id of the tenant to authenticate with
1734
+ * @example my-client-id
1636
1735
  */
1637
- role: string;
1736
+ client_id: string;
1737
+ };
1738
+ /** @description Change user role request */
1739
+ ChangeRoleRequest: {
1740
+ /** @description Role to assign to the user */
1741
+ role: components["schemas"]["ResourceRole"];
1638
1742
  };
1639
1743
  ChatChoice: {
1640
1744
  /**
@@ -2032,7 +2136,9 @@ export interface components {
2032
2136
  CopyAliasRequest: {
2033
2137
  alias: string;
2034
2138
  };
2035
- /** @example {
2139
+ /**
2140
+ * @description Request for creating an app access request
2141
+ * @example {
2036
2142
  * "app_client_id": "my-app-client",
2037
2143
  * "flow_type": "redirect",
2038
2144
  * "redirect_url": "https://myapp.com/callback",
@@ -2044,8 +2150,9 @@ export interface components {
2044
2150
  * ]
2045
2151
  * },
2046
2152
  * "requested_role": "scope_user_user"
2047
- * } */
2048
- CreateAccessRequestBody: {
2153
+ * }
2154
+ */
2155
+ CreateAccessRequest: {
2049
2156
  /** @description App client ID from Keycloak */
2050
2157
  app_client_id: string;
2051
2158
  /** @description Flow type: "redirect" or "popup" */
@@ -2069,59 +2176,8 @@ export interface components {
2069
2176
  /** @description Review URL for user to approve/deny */
2070
2177
  review_url: string;
2071
2178
  };
2072
- CreateAliasRequest: {
2073
- alias: string;
2074
- repo: string;
2075
- filename: string;
2076
- snapshot?: string | null;
2077
- request_params?: null | components["schemas"]["OAIRequestParams"];
2078
- context_params?: string[] | null;
2079
- };
2080
- /**
2081
- * @description Request to create a new API model configuration
2082
- * @example {
2083
- * "api_format": "openai",
2084
- * "api_key": "sk-...",
2085
- * "base_url": "https://api.openai.com/v1",
2086
- * "models": [
2087
- * "gpt-4",
2088
- * "gpt-3.5-turbo"
2089
- * ],
2090
- * "prefix": "openai"
2091
- * }
2092
- */
2093
- CreateApiModelRequest: {
2094
- /** @description API format/protocol (e.g., "openai") */
2095
- api_format: components["schemas"]["ApiFormat"];
2096
- /** @description API base URL */
2097
- base_url: string;
2098
- /** @description API key for authentication (null for public APIs) */
2099
- api_key?: components["schemas"]["ApiKey"];
2100
- /** @description List of available models */
2101
- models: string[];
2102
- /** @description Optional prefix for model namespacing (e.g., "azure/" for "azure/gpt-4", "openai:" for "openai:gpt-4") */
2103
- prefix?: string | null;
2104
- /** @description Whether to forward all requests with this prefix (true) or only selected models (false) */
2105
- forward_all_with_prefix?: boolean;
2106
- };
2107
- /**
2108
- * @description Request to create a new API token
2109
- * @example {
2110
- * "name": "My Integration Token",
2111
- * "scope": "scope_token_user"
2112
- * }
2113
- */
2114
- CreateApiTokenRequest: {
2115
- /**
2116
- * @description Descriptive name for the API token (minimum 3 characters)
2117
- * @example My Integration Token
2118
- */
2119
- name?: string | null;
2120
- /** @description Token scope defining access level */
2121
- scope: components["schemas"]["TokenScope"];
2122
- };
2123
2179
  /** @description Wrapper for creating auth configs with server_id in body instead of path */
2124
- CreateAuthConfigBody: components["schemas"]["CreateMcpAuthConfigRequest"] & {
2180
+ CreateAuthConfig: components["schemas"]["CreateMcpAuthConfigRequest"] & {
2125
2181
  mcp_server_id: string;
2126
2182
  };
2127
2183
  CreateChatCompletionRequest: {
@@ -2399,36 +2455,25 @@ export interface components {
2399
2455
  /** @enum {string} */
2400
2456
  type: "oauth";
2401
2457
  };
2402
- CreateMcpRequest: {
2458
+ CreateTenantRequest: {
2403
2459
  name: string;
2404
- slug: string;
2405
- mcp_server_id: string;
2406
2460
  description?: string | null;
2407
- enabled: boolean;
2408
- tools_cache?: components["schemas"]["McpTool"][] | null;
2409
- tools_filter?: string[] | null;
2410
- auth_type?: components["schemas"]["McpAuthType"];
2411
- auth_uuid?: string | null;
2412
2461
  };
2413
- CreateMcpServerRequest: {
2414
- url: string;
2415
- name: string;
2416
- description?: string | null;
2417
- enabled: boolean;
2418
- auth_config?: null | components["schemas"]["CreateMcpAuthConfigRequest"];
2462
+ CreateTenantResponse: {
2463
+ client_id: string;
2419
2464
  };
2420
- /** @description Request to create a toolset */
2421
- CreateToolsetRequest: {
2422
- /** @description Toolset type identifier (e.g., "builtin-exa-search") */
2423
- toolset_type: string;
2424
- /** @description User-defined slug for this toolset (1-24 chars, alphanumeric + hyphens) */
2425
- slug: string;
2426
- /** @description Optional description for this toolset */
2427
- description?: string | null;
2428
- /** @description Whether this toolset is enabled */
2429
- enabled?: boolean;
2430
- /** @description API key for the toolset */
2431
- api_key: string;
2465
+ /** @example {
2466
+ * "name": "My Integration Token",
2467
+ * "scope": "scope_token_user"
2468
+ * } */
2469
+ CreateTokenRequest: {
2470
+ /**
2471
+ * @description Descriptive name for the API token
2472
+ * @example My Integration Token
2473
+ */
2474
+ name?: string | null;
2475
+ /** @description Token scope defining access level */
2476
+ scope: components["schemas"]["TokenScope"];
2432
2477
  };
2433
2478
  CustomGrammarFormatParam: {
2434
2479
  /** @description The grammar definition. */
@@ -2465,31 +2510,24 @@ export interface components {
2465
2510
  /** @enum {string} */
2466
2511
  type: "grammar";
2467
2512
  };
2513
+ /** @enum {string} */
2514
+ DeploymentMode: "standalone" | "multi_tenant";
2468
2515
  DownloadRequest: {
2469
2516
  id: string;
2470
2517
  repo: string;
2471
2518
  filename: string;
2472
2519
  status: components["schemas"]["DownloadStatus"];
2473
2520
  error?: string | null;
2474
- /**
2475
- * Format: date-time
2476
- * @example 2024-11-10T04:52:06.786Z
2477
- */
2478
- created_at: string;
2479
- /**
2480
- * Format: date-time
2481
- * @example 2024-11-10T04:52:06.786Z
2482
- */
2483
- updated_at: string;
2484
2521
  /** Format: int64 */
2485
2522
  total_bytes?: number | null;
2486
2523
  /** Format: int64 */
2487
- downloaded_bytes?: number;
2488
- /**
2489
- * Format: date-time
2490
- * @example 2024-11-10T04:52:06.786Z
2491
- */
2492
- started_at: string;
2524
+ downloaded_bytes: number;
2525
+ /** Format: date-time */
2526
+ started_at?: string | null;
2527
+ /** Format: date-time */
2528
+ created_at: string;
2529
+ /** Format: date-time */
2530
+ updated_at: string;
2493
2531
  };
2494
2532
  /** @enum {string} */
2495
2533
  DownloadStatus: "pending" | "completed" | "error";
@@ -2689,7 +2727,7 @@ export interface components {
2689
2727
  mcp_servers: components["schemas"]["McpServerResponse"][];
2690
2728
  };
2691
2729
  ListMcpsResponse: {
2692
- mcps: components["schemas"]["McpResponse"][];
2730
+ mcps: components["schemas"]["Mcp"][];
2693
2731
  };
2694
2732
  ListModelResponse: {
2695
2733
  object: string;
@@ -2704,7 +2742,8 @@ export interface components {
2704
2742
  toolsets: components["schemas"]["ToolsetResponse"][];
2705
2743
  toolset_types: components["schemas"]["AppToolsetConfig"][];
2706
2744
  };
2707
- /** @description List users query parameters */
2745
+ /** @description List users query parameters. Intentionally omits sort fields (unlike PaginationSortParams)
2746
+ * because user listing is fetched from the auth service which handles its own ordering. */
2708
2747
  ListUsersParams: {
2709
2748
  /**
2710
2749
  * Format: int32
@@ -2717,6 +2756,7 @@ export interface components {
2717
2756
  */
2718
2757
  page_size?: number | null;
2719
2758
  };
2759
+ /** @description Local model file response */
2720
2760
  LocalModelResponse: {
2721
2761
  repo: string;
2722
2762
  filename: string;
@@ -2784,7 +2824,6 @@ export interface components {
2784
2824
  mcp_server_id: string;
2785
2825
  header_key: string;
2786
2826
  has_header_value: boolean;
2787
- created_by: string;
2788
2827
  /** Format: date-time */
2789
2828
  created_at: string;
2790
2829
  /** Format: date-time */
@@ -2806,7 +2845,6 @@ export interface components {
2806
2845
  token_endpoint_auth_method?: string | null;
2807
2846
  has_client_secret: boolean;
2808
2847
  has_registration_access_token: boolean;
2809
- created_by: string;
2810
2848
  /** Format: date-time */
2811
2849
  created_at: string;
2812
2850
  /** Format: date-time */
@@ -2830,19 +2868,26 @@ export interface components {
2830
2868
  McpInstance: {
2831
2869
  id: string;
2832
2870
  };
2833
- McpResponse: {
2834
- id: string;
2835
- mcp_server: components["schemas"]["McpServerInfo"];
2836
- slug: string;
2871
+ /** @description Input for creating or updating an MCP instance. */
2872
+ McpRequest: {
2873
+ /** @description Human-readable name (required) */
2837
2874
  name: string;
2875
+ /** @description User-defined slug for this instance (1-24 chars, alphanumeric + hyphens) */
2876
+ slug: string;
2877
+ /** @description MCP server ID (required for create, ignored for update) */
2878
+ mcp_server_id?: string | null;
2879
+ /** @description Optional description */
2838
2880
  description?: string | null;
2881
+ /** @description Whether this instance is enabled */
2839
2882
  enabled: boolean;
2883
+ /** @description Cached tool schemas from the MCP server (JSON array) */
2840
2884
  tools_cache?: components["schemas"]["McpTool"][] | null;
2885
+ /** @description Whitelisted tool names */
2841
2886
  tools_filter?: string[] | null;
2842
- auth_type: components["schemas"]["McpAuthType"];
2887
+ /** @description Authentication type */
2888
+ auth_type?: components["schemas"]["McpAuthType"];
2889
+ /** @description Reference to auth config */
2843
2890
  auth_uuid?: string | null;
2844
- created_at: string;
2845
- updated_at: string;
2846
2891
  };
2847
2892
  /** @description Admin-managed MCP server registry entry.
2848
2893
  * Admins/managers register MCP server URLs that users can then create instances of. */
@@ -2881,23 +2926,24 @@ export interface components {
2881
2926
  name: string;
2882
2927
  enabled: boolean;
2883
2928
  };
2929
+ /** @description Input for creating or updating an MCP server. */
2884
2930
  McpServerRequest: {
2931
+ /** @description MCP server endpoint URL (trimmed, case-insensitive unique) */
2885
2932
  url: string;
2886
- };
2887
- McpServerResponse: {
2888
- id: string;
2889
- url: string;
2933
+ /** @description Human-readable display name */
2890
2934
  name: string;
2935
+ /** @description Optional description */
2891
2936
  description?: string | null;
2937
+ /** @description Whether this MCP server is enabled */
2892
2938
  enabled: boolean;
2893
- created_by: string;
2894
- updated_by: string;
2939
+ auth_config?: null | components["schemas"]["CreateMcpAuthConfigRequest"];
2940
+ };
2941
+ /** @description MCP server response with computed mcp counts and optional auth config. */
2942
+ McpServerResponse: components["schemas"]["McpServer"] & {
2895
2943
  /** Format: int64 */
2896
2944
  enabled_mcp_count: number;
2897
2945
  /** Format: int64 */
2898
2946
  disabled_mcp_count: number;
2899
- created_at: string;
2900
- updated_at: string;
2901
2947
  auth_config?: null | components["schemas"]["McpAuthConfigResponse"];
2902
2948
  };
2903
2949
  McpServerReviewInfo: {
@@ -2992,7 +3038,7 @@ export interface components {
2992
3038
  models: components["schemas"]["OllamaModel"][];
2993
3039
  };
2994
3040
  /**
2995
- * @description Request to pull a model file from HuggingFace
3041
+ * @description Request for creating a new download request
2996
3042
  * @example {
2997
3043
  * "filename": "mistral-7b-instruct-v0.1.Q4_K_M.gguf",
2998
3044
  * "repo": "TheBloke/Mistral-7B-Instruct-v0.1-GGUF"
@@ -3064,7 +3110,7 @@ export interface components {
3064
3110
  expires_at?: number | null;
3065
3111
  has_access_token: boolean;
3066
3112
  has_refresh_token: boolean;
3067
- created_by: string;
3113
+ user_id: string;
3068
3114
  created_at: string;
3069
3115
  updated_at: string;
3070
3116
  };
@@ -3143,6 +3189,7 @@ export interface components {
3143
3189
  /** Format: int32 */
3144
3190
  num_thread?: number | null;
3145
3191
  };
3192
+ /** @description Paginated list of all model aliases (user, model, and API) */
3146
3193
  PaginatedAliasResponse: {
3147
3194
  data: components["schemas"]["AliasResponse"][];
3148
3195
  total: number;
@@ -3150,30 +3197,32 @@ export interface components {
3150
3197
  page_size: number;
3151
3198
  };
3152
3199
  /** @description Paginated response for API model listings */
3153
- PaginatedApiModelResponse: {
3154
- data: components["schemas"]["ApiModelResponse"][];
3155
- total: number;
3156
- page: number;
3157
- page_size: number;
3158
- };
3159
- PaginatedApiTokenResponse: {
3160
- data: components["schemas"]["ApiToken"][];
3200
+ PaginatedApiModelOutput: {
3201
+ data: components["schemas"]["ApiModelOutput"][];
3161
3202
  total: number;
3162
3203
  page: number;
3163
3204
  page_size: number;
3164
3205
  };
3206
+ /** @description Paginated list of download requests */
3165
3207
  PaginatedDownloadResponse: {
3166
3208
  data: components["schemas"]["DownloadRequest"][];
3167
3209
  total: number;
3168
3210
  page: number;
3169
3211
  page_size: number;
3170
3212
  };
3213
+ /** @description Paginated list of local model files */
3171
3214
  PaginatedLocalModelResponse: {
3172
3215
  data: components["schemas"]["LocalModelResponse"][];
3173
3216
  total: number;
3174
3217
  page: number;
3175
3218
  page_size: number;
3176
3219
  };
3220
+ PaginatedTokenResponse: {
3221
+ data: components["schemas"]["TokenDetail"][];
3222
+ total: number;
3223
+ page: number;
3224
+ page_size: number;
3225
+ };
3177
3226
  /**
3178
3227
  * @description Paginated response for access requests
3179
3228
  * @example {
@@ -3182,11 +3231,11 @@ export interface components {
3182
3231
  * "requests": [
3183
3232
  * {
3184
3233
  * "created_at": "2024-01-01T12:00:00Z",
3185
- * "email": "user@example.com",
3186
- * "id": 1,
3187
- * "reviewer": null,
3234
+ * "id": "01HXXXXXX",
3188
3235
  * "status": "pending",
3189
- * "updated_at": "2024-01-01T12:00:00Z"
3236
+ * "updated_at": "2024-01-01T12:00:00Z",
3237
+ * "user_id": "auth0|123",
3238
+ * "username": "user@example.com"
3190
3239
  * }
3191
3240
  * ],
3192
3241
  * "total": 1
@@ -3202,6 +3251,7 @@ export interface components {
3202
3251
  /** @description Number of items per page */
3203
3252
  page_size: number;
3204
3253
  };
3254
+ /** @description Paginated list of user-defined model aliases */
3205
3255
  PaginatedUserAliasResponse: {
3206
3256
  data: components["schemas"]["UserAliasResponse"][];
3207
3257
  total: number;
@@ -3324,9 +3374,12 @@ export interface components {
3324
3374
  * @enum {string}
3325
3375
  */
3326
3376
  RegistrationType: "pre_registered" | "dynamic_registration";
3377
+ RequestedMcpServer: {
3378
+ url: string;
3379
+ };
3327
3380
  RequestedResources: {
3328
3381
  toolset_types?: components["schemas"]["ToolsetTypeRequest"][];
3329
- mcp_servers?: components["schemas"]["McpServerRequest"][];
3382
+ mcp_servers?: components["schemas"]["RequestedMcpServer"][];
3330
3383
  };
3331
3384
  /** @enum {string} */
3332
3385
  ResourceRole: "resource_user" | "resource_power_user" | "resource_manager" | "resource_admin";
@@ -3442,6 +3495,17 @@ export interface components {
3442
3495
  template: string;
3443
3496
  };
3444
3497
  StopConfiguration: string | string[];
3498
+ TenantListItem: {
3499
+ client_id: string;
3500
+ name: string;
3501
+ description?: string | null;
3502
+ status: components["schemas"]["AppStatus"];
3503
+ is_active: boolean;
3504
+ logged_in: boolean;
3505
+ };
3506
+ TenantListResponse: {
3507
+ tenants: components["schemas"]["TenantListItem"][];
3508
+ };
3445
3509
  /** @description Credentials for test/fetch operations */
3446
3510
  TestCreds: {
3447
3511
  /** @description Look up credentials from stored API model */
@@ -3489,6 +3553,28 @@ export interface components {
3489
3553
  response?: string | null;
3490
3554
  error?: string | null;
3491
3555
  };
3556
+ /** @example {
3557
+ * "token": "bodhiapp_1234567890abcdef"
3558
+ * } */
3559
+ TokenCreated: {
3560
+ /**
3561
+ * @description API token with bodhiapp_ prefix for programmatic access
3562
+ * @example bodhiapp_1234567890abcdef
3563
+ */
3564
+ token: string;
3565
+ };
3566
+ TokenDetail: {
3567
+ id: string;
3568
+ user_id: string;
3569
+ name: string;
3570
+ token_prefix: string;
3571
+ scopes: string;
3572
+ status: components["schemas"]["TokenStatus"];
3573
+ /** Format: date-time */
3574
+ created_at: string;
3575
+ /** Format: date-time */
3576
+ updated_at: string;
3577
+ };
3492
3578
  /** @description API Token information response */
3493
3579
  TokenInfo: {
3494
3580
  role: components["schemas"]["TokenScope"];
@@ -3577,6 +3663,19 @@ export interface components {
3577
3663
  ToolsetInstance: {
3578
3664
  id: string;
3579
3665
  };
3666
+ /** @description Input for creating or updating a toolset instance. */
3667
+ ToolsetRequest: {
3668
+ /** @description Toolset type identifier (required for create, ignored for update) */
3669
+ toolset_type?: string | null;
3670
+ /** @description User-defined slug for this instance (1-24 chars, alphanumeric + hyphens) */
3671
+ slug: string;
3672
+ /** @description Optional description for this instance */
3673
+ description?: string | null;
3674
+ /** @description Whether this instance is enabled */
3675
+ enabled?: boolean;
3676
+ /** @description API key update action (Keep or Set) */
3677
+ api_key?: components["schemas"]["ApiKeyUpdate"];
3678
+ };
3580
3679
  /** @description Toolset response */
3581
3680
  ToolsetResponse: {
3582
3681
  /** @description Unique instance identifier (UUID) */
@@ -3618,95 +3717,29 @@ export interface components {
3618
3717
  /** @description A list of integers representing the UTF-8 bytes representation of the token. Useful in instances where characters are represented by multiple tokens and their byte representations must be combined to generate the correct text representation. Can be `null` if there is no bytes representation for the token. */
3619
3718
  bytes?: number[] | null;
3620
3719
  };
3621
- UpdateAliasRequest: {
3622
- repo: string;
3623
- filename: string;
3624
- snapshot?: string | null;
3625
- request_params?: null | components["schemas"]["OAIRequestParams"];
3626
- context_params?: string[] | null;
3627
- };
3628
3720
  /**
3629
- * @description Request to update an existing API model configuration
3721
+ * @description Request to update a setting value
3630
3722
  * @example {
3631
- * "api_format": "openai",
3632
- * "api_key": {
3633
- * "action": "keep"
3634
- * },
3635
- * "base_url": "https://api.openai.com/v1",
3636
- * "models": [
3637
- * "gpt-4-turbo",
3638
- * "gpt-3.5-turbo"
3639
- * ],
3640
- * "prefix": "openai"
3723
+ * "value": "debug"
3641
3724
  * }
3642
3725
  */
3643
- UpdateApiModelRequest: {
3644
- /** @description API format/protocol (required) */
3645
- api_format: components["schemas"]["ApiFormat"];
3646
- /** @description API base URL (required) */
3647
- base_url: string;
3648
- /** @description API key update action (Keep/Set with Some or None) */
3649
- api_key?: components["schemas"]["ApiKeyUpdateAction"];
3650
- /** @description List of available models (required) */
3651
- models: string[];
3652
- /** @description Optional prefix for model namespacing */
3653
- prefix?: string | null;
3654
- /** @description Whether to forward all requests with this prefix (true) or only selected models (false) */
3655
- forward_all_with_prefix?: boolean;
3726
+ UpdateSettingRequest: {
3727
+ /** @description New value for the setting (type depends on setting metadata) */
3728
+ value: unknown;
3656
3729
  };
3657
- /**
3658
- * @description Request to update an existing API token
3659
- * @example {
3730
+ /** @example {
3660
3731
  * "name": "Updated Token Name",
3661
3732
  * "status": "inactive"
3662
- * }
3663
- */
3664
- UpdateApiTokenRequest: {
3733
+ * } */
3734
+ UpdateTokenRequest: {
3665
3735
  /**
3666
- * @description New descriptive name for the token (minimum 3 characters)
3736
+ * @description New descriptive name for the token
3667
3737
  * @example Updated Token Name
3668
3738
  */
3669
3739
  name: string;
3670
3740
  /** @description New status for the token (active/inactive) */
3671
3741
  status: components["schemas"]["TokenStatus"];
3672
3742
  };
3673
- UpdateMcpRequest: {
3674
- name: string;
3675
- slug: string;
3676
- description?: string | null;
3677
- enabled: boolean;
3678
- tools_filter?: string[] | null;
3679
- tools_cache?: components["schemas"]["McpTool"][] | null;
3680
- auth_type?: null | components["schemas"]["McpAuthType"];
3681
- auth_uuid?: string | null;
3682
- };
3683
- UpdateMcpServerRequest: {
3684
- url: string;
3685
- name: string;
3686
- description?: string | null;
3687
- enabled: boolean;
3688
- };
3689
- /**
3690
- * @description Request to update a setting value
3691
- * @example {
3692
- * "value": "debug"
3693
- * }
3694
- */
3695
- UpdateSettingRequest: {
3696
- /** @description New value for the setting (type depends on setting metadata) */
3697
- value: unknown;
3698
- };
3699
- /** @description Request to update a toolset (full PUT - all fields required except api_key) */
3700
- UpdateToolsetRequest: {
3701
- /** @description User-defined slug for this toolset */
3702
- slug: string;
3703
- /** @description Optional description for this toolset */
3704
- description?: string | null;
3705
- /** @description Whether this toolset is enabled */
3706
- enabled: boolean;
3707
- /** @description API key update action (Keep or Set) */
3708
- api_key?: components["schemas"]["ApiKeyUpdateDto"];
3709
- };
3710
3743
  UrlCitation: {
3711
3744
  /**
3712
3745
  * Format: int32
@@ -3723,6 +3756,7 @@ export interface components {
3723
3756
  /** @description The URL of the web resource. */
3724
3757
  url: string;
3725
3758
  };
3759
+ /** @description User access request output type for API responses */
3726
3760
  UserAccessRequest: {
3727
3761
  id: string;
3728
3762
  username: string;
@@ -3740,7 +3774,9 @@ export interface components {
3740
3774
  * @description Response for checking access request status
3741
3775
  * @example {
3742
3776
  * "created_at": "2024-01-01T12:00:00Z",
3743
- * "status": "pending"
3777
+ * "status": "pending",
3778
+ * "updated_at": "2024-01-01T12:00:00Z",
3779
+ * "username": "user@example.com"
3744
3780
  * }
3745
3781
  */
3746
3782
  UserAccessStatusResponse: {
@@ -3773,6 +3809,34 @@ export interface components {
3773
3809
  /** Format: date-time */
3774
3810
  updated_at: string;
3775
3811
  };
3812
+ /**
3813
+ * @description Input request for creating or updating a user model alias.
3814
+ * @example {
3815
+ * "alias": "llama3:instruct",
3816
+ * "context_params": [
3817
+ * "--ctx-size 4096"
3818
+ * ],
3819
+ * "filename": "Meta-Llama-3-8B-Instruct.Q4_K_M.gguf",
3820
+ * "repo": "QuantFactory/Meta-Llama-3-8B-Instruct-GGUF",
3821
+ * "request_params": {
3822
+ * "temperature": 0.7
3823
+ * }
3824
+ * }
3825
+ */
3826
+ UserAliasRequest: {
3827
+ /** @description Alias name — unique per (tenant_id, user_id) scope */
3828
+ alias: string;
3829
+ /** @description Repository in format "user/repo" */
3830
+ repo: string;
3831
+ /** @description Filename of the GGUF model */
3832
+ filename: string;
3833
+ /** @description Snapshot/commit identifier (optional — defaults to latest available) */
3834
+ snapshot?: string | null;
3835
+ request_params?: null | components["schemas"]["OAIRequestParams"];
3836
+ /** @description Context parameters for the model */
3837
+ context_params?: string[] | null;
3838
+ };
3839
+ /** @description User-defined model alias response */
3776
3840
  UserAliasResponse: {
3777
3841
  id: string;
3778
3842
  alias: string;
@@ -3802,6 +3866,11 @@ export interface components {
3802
3866
  last_name?: string | null;
3803
3867
  role?: null | components["schemas"]["AppRole"];
3804
3868
  };
3869
+ /** @description Envelope wrapping UserResponse with additional session info */
3870
+ UserInfoEnvelope: components["schemas"]["UserResponse"] & {
3871
+ /** @description Whether the user has an active dashboard session (only present when true) */
3872
+ has_dashboard_session?: boolean;
3873
+ };
3805
3874
  UserListResponse: {
3806
3875
  /** @example resource-abc123def456 */
3807
3876
  client_id: string;
@@ -4310,7 +4379,7 @@ export interface operations {
4310
4379
  /** @description Approval details with tool selections */
4311
4380
  requestBody: {
4312
4381
  content: {
4313
- "application/json": components["schemas"]["ApproveAccessRequestBody"];
4382
+ "application/json": components["schemas"]["ApproveAccessRequest"];
4314
4383
  };
4315
4384
  };
4316
4385
  responses: {
@@ -4698,8 +4767,8 @@ export interface operations {
4698
4767
  * "data": [
4699
4768
  * {
4700
4769
  * "api_format": "openai",
4701
- * "api_key": "sk-****",
4702
4770
  * "base_url": "https://api.openai.com/v1",
4771
+ * "has_api_key": true,
4703
4772
  * "id": "openai-gpt4"
4704
4773
  * }
4705
4774
  * ],
@@ -4707,7 +4776,7 @@ export interface operations {
4707
4776
  * "page_size": 10,
4708
4777
  * "total": 1
4709
4778
  * } */
4710
- "application/json": components["schemas"]["PaginatedApiModelResponse"];
4779
+ "application/json": components["schemas"]["PaginatedApiModelOutput"];
4711
4780
  };
4712
4781
  };
4713
4782
  /** @description Invalid request parameters */
@@ -4757,7 +4826,7 @@ export interface operations {
4757
4826
  };
4758
4827
  requestBody: {
4759
4828
  content: {
4760
- "application/json": components["schemas"]["CreateApiModelRequest"];
4829
+ "application/json": components["schemas"]["ApiModelRequest"];
4761
4830
  };
4762
4831
  };
4763
4832
  responses: {
@@ -4767,7 +4836,7 @@ export interface operations {
4767
4836
  [name: string]: unknown;
4768
4837
  };
4769
4838
  content: {
4770
- "application/json": components["schemas"]["ApiModelResponse"];
4839
+ "application/json": components["schemas"]["ApiModelOutput"];
4771
4840
  };
4772
4841
  };
4773
4842
  /** @description Invalid request parameters */
@@ -5021,12 +5090,14 @@ export interface operations {
5021
5090
  content: {
5022
5091
  /** @example {
5023
5092
  * "api_format": "openai",
5024
- * "api_key": "sk-****",
5025
5093
  * "base_url": "https://api.openai.com/v1",
5094
+ * "has_api_key": true,
5026
5095
  * "id": "openai-gpt4",
5027
- * "model": "gpt-4"
5096
+ * "models": [
5097
+ * "gpt-4"
5098
+ * ]
5028
5099
  * } */
5029
- "application/json": components["schemas"]["ApiModelResponse"];
5100
+ "application/json": components["schemas"]["ApiModelOutput"];
5030
5101
  };
5031
5102
  };
5032
5103
  /** @description Invalid request parameters */
@@ -5095,7 +5166,7 @@ export interface operations {
5095
5166
  };
5096
5167
  requestBody: {
5097
5168
  content: {
5098
- "application/json": components["schemas"]["UpdateApiModelRequest"];
5169
+ "application/json": components["schemas"]["ApiModelRequest"];
5099
5170
  };
5100
5171
  };
5101
5172
  responses: {
@@ -5105,7 +5176,7 @@ export interface operations {
5105
5176
  [name: string]: unknown;
5106
5177
  };
5107
5178
  content: {
5108
- "application/json": components["schemas"]["ApiModelResponse"];
5179
+ "application/json": components["schemas"]["ApiModelOutput"];
5109
5180
  };
5110
5181
  };
5111
5182
  /** @description Invalid request parameters */
@@ -5244,10 +5315,10 @@ export interface operations {
5244
5315
  content: {
5245
5316
  /** @example {
5246
5317
  * "api_format": "openai",
5247
- * "api_key_masked": "sk-****1234",
5248
5318
  * "base_url": "https://api.openai.com/v1",
5249
5319
  * "created_at": "2024-01-01T00:00:00Z",
5250
5320
  * "forward_all_with_prefix": false,
5321
+ * "has_api_key": true,
5251
5322
  * "id": "openai-gpt4",
5252
5323
  * "models": [
5253
5324
  * "gpt-4",
@@ -5257,7 +5328,7 @@ export interface operations {
5257
5328
  * "prefix": null,
5258
5329
  * "updated_at": "2024-01-01T00:00:00Z"
5259
5330
  * } */
5260
- "application/json": components["schemas"]["ApiModelResponse"];
5331
+ "application/json": components["schemas"]["ApiModelOutput"];
5261
5332
  };
5262
5333
  };
5263
5334
  /** @description Invalid request parameters */
@@ -5312,21 +5383,168 @@ export interface operations {
5312
5383
  app_client_id: string;
5313
5384
  };
5314
5385
  header?: never;
5315
- path: {
5316
- /** @description Access request ID */
5317
- id: string;
5318
- };
5386
+ path: {
5387
+ /** @description Access request ID */
5388
+ id: string;
5389
+ };
5390
+ cookie?: never;
5391
+ };
5392
+ requestBody?: never;
5393
+ responses: {
5394
+ /** @description Status retrieved */
5395
+ 200: {
5396
+ headers: {
5397
+ [name: string]: unknown;
5398
+ };
5399
+ content: {
5400
+ "application/json": components["schemas"]["AccessRequestStatusResponse"];
5401
+ };
5402
+ };
5403
+ /** @description Invalid request parameters */
5404
+ 400: {
5405
+ headers: {
5406
+ [name: string]: unknown;
5407
+ };
5408
+ content: {
5409
+ "application/json": components["schemas"]["OpenAIApiError"];
5410
+ };
5411
+ };
5412
+ /** @description Not authenticated */
5413
+ 401: {
5414
+ headers: {
5415
+ [name: string]: unknown;
5416
+ };
5417
+ content: {
5418
+ "application/json": components["schemas"]["OpenAIApiError"];
5419
+ };
5420
+ };
5421
+ /** @description Insufficient permissions */
5422
+ 403: {
5423
+ headers: {
5424
+ [name: string]: unknown;
5425
+ };
5426
+ content: {
5427
+ "application/json": components["schemas"]["OpenAIApiError"];
5428
+ };
5429
+ };
5430
+ /** @description Not found or app_client_id mismatch */
5431
+ 404: {
5432
+ headers: {
5433
+ [name: string]: unknown;
5434
+ };
5435
+ content: {
5436
+ "application/json": components["schemas"]["OpenAIApiError"];
5437
+ };
5438
+ };
5439
+ /** @description Internal server error */
5440
+ 500: {
5441
+ headers: {
5442
+ [name: string]: unknown;
5443
+ };
5444
+ content: {
5445
+ "application/json": components["schemas"]["OpenAIApiError"];
5446
+ };
5447
+ };
5448
+ };
5449
+ };
5450
+ createAccessRequest: {
5451
+ parameters: {
5452
+ query?: never;
5453
+ header?: never;
5454
+ path?: never;
5455
+ cookie?: never;
5456
+ };
5457
+ /** @description Access request details */
5458
+ requestBody: {
5459
+ content: {
5460
+ "application/json": components["schemas"]["CreateAccessRequest"];
5461
+ };
5462
+ };
5463
+ responses: {
5464
+ /** @description Access request created */
5465
+ 201: {
5466
+ headers: {
5467
+ [name: string]: unknown;
5468
+ };
5469
+ content: {
5470
+ "application/json": components["schemas"]["CreateAccessRequestResponse"];
5471
+ };
5472
+ };
5473
+ /** @description Invalid request parameters */
5474
+ 400: {
5475
+ headers: {
5476
+ [name: string]: unknown;
5477
+ };
5478
+ content: {
5479
+ "application/json": components["schemas"]["OpenAIApiError"];
5480
+ };
5481
+ };
5482
+ /** @description Not authenticated */
5483
+ 401: {
5484
+ headers: {
5485
+ [name: string]: unknown;
5486
+ };
5487
+ content: {
5488
+ "application/json": components["schemas"]["OpenAIApiError"];
5489
+ };
5490
+ };
5491
+ /** @description Insufficient permissions */
5492
+ 403: {
5493
+ headers: {
5494
+ [name: string]: unknown;
5495
+ };
5496
+ content: {
5497
+ "application/json": components["schemas"]["OpenAIApiError"];
5498
+ };
5499
+ };
5500
+ /** @description App client not found */
5501
+ 404: {
5502
+ headers: {
5503
+ [name: string]: unknown;
5504
+ };
5505
+ content: {
5506
+ "application/json": components["schemas"]["OpenAIApiError"];
5507
+ };
5508
+ };
5509
+ /** @description Internal server error */
5510
+ 500: {
5511
+ headers: {
5512
+ [name: string]: unknown;
5513
+ };
5514
+ content: {
5515
+ "application/json": components["schemas"]["OpenAIApiError"];
5516
+ };
5517
+ };
5518
+ };
5519
+ };
5520
+ completeOAuthFlow: {
5521
+ parameters: {
5522
+ query?: never;
5523
+ header?: never;
5524
+ path?: never;
5319
5525
  cookie?: never;
5320
5526
  };
5321
- requestBody?: never;
5527
+ /** @description OAuth callback parameters from authorization server */
5528
+ requestBody: {
5529
+ content: {
5530
+ /** @example {
5531
+ * "code": "auth_code_123",
5532
+ * "state": "random_state_456"
5533
+ * } */
5534
+ "application/json": components["schemas"]["AuthCallbackRequest"];
5535
+ };
5536
+ };
5322
5537
  responses: {
5323
- /** @description Status retrieved */
5538
+ /** @description OAuth flow completed successfully, user authenticated */
5324
5539
  200: {
5325
5540
  headers: {
5326
5541
  [name: string]: unknown;
5327
5542
  };
5328
5543
  content: {
5329
- "application/json": components["schemas"]["AccessRequestStatusResponse"];
5544
+ /** @example {
5545
+ * "location": "https://app.example.com/dashboard"
5546
+ * } */
5547
+ "application/json": components["schemas"]["RedirectResponse"];
5330
5548
  };
5331
5549
  };
5332
5550
  /** @description Invalid request parameters */
@@ -5356,12 +5574,19 @@ export interface operations {
5356
5574
  "application/json": components["schemas"]["OpenAIApiError"];
5357
5575
  };
5358
5576
  };
5359
- /** @description Not found or app_client_id mismatch */
5360
- 404: {
5577
+ /** @description OAuth error, invalid request parameters, or state mismatch */
5578
+ 422: {
5361
5579
  headers: {
5362
5580
  [name: string]: unknown;
5363
5581
  };
5364
5582
  content: {
5583
+ /** @example {
5584
+ * "error": {
5585
+ * "code": "oauth_state_mismatch",
5586
+ * "message": "State parameter mismatch",
5587
+ * "type": "invalid_request_error"
5588
+ * }
5589
+ * } */
5365
5590
  "application/json": components["schemas"]["OpenAIApiError"];
5366
5591
  };
5367
5592
  };
@@ -5376,27 +5601,27 @@ export interface operations {
5376
5601
  };
5377
5602
  };
5378
5603
  };
5379
- createAccessRequest: {
5604
+ completeDashboardOAuthFlow: {
5380
5605
  parameters: {
5381
5606
  query?: never;
5382
5607
  header?: never;
5383
5608
  path?: never;
5384
5609
  cookie?: never;
5385
5610
  };
5386
- /** @description Access request details */
5611
+ /** @description OAuth callback parameters from authorization server */
5387
5612
  requestBody: {
5388
5613
  content: {
5389
- "application/json": components["schemas"]["CreateAccessRequestBody"];
5614
+ "application/json": components["schemas"]["AuthCallbackRequest"];
5390
5615
  };
5391
5616
  };
5392
5617
  responses: {
5393
- /** @description Access request created */
5394
- 201: {
5618
+ /** @description Dashboard OAuth flow completed successfully */
5619
+ 200: {
5395
5620
  headers: {
5396
5621
  [name: string]: unknown;
5397
5622
  };
5398
5623
  content: {
5399
- "application/json": components["schemas"]["CreateAccessRequestResponse"];
5624
+ "application/json": components["schemas"]["RedirectResponse"];
5400
5625
  };
5401
5626
  };
5402
5627
  /** @description Invalid request parameters */
@@ -5426,15 +5651,6 @@ export interface operations {
5426
5651
  "application/json": components["schemas"]["OpenAIApiError"];
5427
5652
  };
5428
5653
  };
5429
- /** @description App client not found */
5430
- 404: {
5431
- headers: {
5432
- [name: string]: unknown;
5433
- };
5434
- content: {
5435
- "application/json": components["schemas"]["OpenAIApiError"];
5436
- };
5437
- };
5438
5654
  /** @description Internal server error */
5439
5655
  500: {
5440
5656
  headers: {
@@ -5446,47 +5662,39 @@ export interface operations {
5446
5662
  };
5447
5663
  };
5448
5664
  };
5449
- completeOAuthFlow: {
5665
+ initiateDashboardOAuthFlow: {
5450
5666
  parameters: {
5451
5667
  query?: never;
5452
5668
  header?: never;
5453
5669
  path?: never;
5454
5670
  cookie?: never;
5455
5671
  };
5456
- /** @description OAuth callback parameters from authorization server */
5457
5672
  requestBody: {
5458
5673
  content: {
5459
- /** @example {
5460
- * "code": "auth_code_123",
5461
- * "state": "random_state_456"
5462
- * } */
5463
- "application/json": components["schemas"]["AuthCallbackRequest"];
5674
+ "application/json": unknown;
5464
5675
  };
5465
5676
  };
5466
5677
  responses: {
5467
- /** @description OAuth flow completed successfully, user authenticated */
5678
+ /** @description User already has a valid dashboard token */
5468
5679
  200: {
5469
5680
  headers: {
5470
5681
  [name: string]: unknown;
5471
5682
  };
5472
5683
  content: {
5473
- /** @example {
5474
- * "location": "https://app.example.com/dashboard"
5475
- * } */
5476
5684
  "application/json": components["schemas"]["RedirectResponse"];
5477
5685
  };
5478
5686
  };
5479
- /** @description Invalid request parameters */
5480
- 400: {
5687
+ /** @description OAuth authorization URL provided for dashboard login */
5688
+ 201: {
5481
5689
  headers: {
5482
5690
  [name: string]: unknown;
5483
5691
  };
5484
5692
  content: {
5485
- "application/json": components["schemas"]["OpenAIApiError"];
5693
+ "application/json": components["schemas"]["RedirectResponse"];
5486
5694
  };
5487
5695
  };
5488
- /** @description Not authenticated */
5489
- 401: {
5696
+ /** @description Invalid request parameters */
5697
+ 400: {
5490
5698
  headers: {
5491
5699
  [name: string]: unknown;
5492
5700
  };
@@ -5494,8 +5702,8 @@ export interface operations {
5494
5702
  "application/json": components["schemas"]["OpenAIApiError"];
5495
5703
  };
5496
5704
  };
5497
- /** @description Insufficient permissions */
5498
- 403: {
5705
+ /** @description Not authenticated */
5706
+ 401: {
5499
5707
  headers: {
5500
5708
  [name: string]: unknown;
5501
5709
  };
@@ -5503,19 +5711,12 @@ export interface operations {
5503
5711
  "application/json": components["schemas"]["OpenAIApiError"];
5504
5712
  };
5505
5713
  };
5506
- /** @description OAuth error, invalid request parameters, or state mismatch */
5507
- 422: {
5714
+ /** @description Insufficient permissions */
5715
+ 403: {
5508
5716
  headers: {
5509
5717
  [name: string]: unknown;
5510
5718
  };
5511
5719
  content: {
5512
- /** @example {
5513
- * "error": {
5514
- * "code": "oauth_state_mismatch",
5515
- * "message": "State parameter mismatch",
5516
- * "type": "invalid_request_error"
5517
- * }
5518
- * } */
5519
5720
  "application/json": components["schemas"]["OpenAIApiError"];
5520
5721
  };
5521
5722
  };
@@ -5537,9 +5738,10 @@ export interface operations {
5537
5738
  path?: never;
5538
5739
  cookie?: never;
5539
5740
  };
5741
+ /** @description OAuth initiate parameters */
5540
5742
  requestBody: {
5541
5743
  content: {
5542
- "application/json": unknown;
5744
+ "application/json": components["schemas"]["AuthInitiateRequest"];
5543
5745
  };
5544
5746
  };
5545
5747
  responses: {
@@ -5621,8 +5823,11 @@ export interface operations {
5621
5823
  };
5622
5824
  content: {
5623
5825
  /** @example {
5826
+ * "client_id": "my-client-id",
5624
5827
  * "commit_sha": "abc1234",
5828
+ * "deployment": "standalone",
5625
5829
  * "status": "ready",
5830
+ * "url": "https://example.com",
5626
5831
  * "version": "0.1.0"
5627
5832
  * } */
5628
5833
  "application/json": components["schemas"]["AppInfo"];
@@ -5772,7 +5977,7 @@ export interface operations {
5772
5977
  };
5773
5978
  requestBody: {
5774
5979
  content: {
5775
- "application/json": components["schemas"]["CreateMcpRequest"];
5980
+ "application/json": components["schemas"]["McpRequest"];
5776
5981
  };
5777
5982
  };
5778
5983
  responses: {
@@ -5782,7 +5987,7 @@ export interface operations {
5782
5987
  [name: string]: unknown;
5783
5988
  };
5784
5989
  content: {
5785
- "application/json": components["schemas"]["McpResponse"];
5990
+ "application/json": components["schemas"]["Mcp"];
5786
5991
  };
5787
5992
  };
5788
5993
  /** @description Invalid request parameters */
@@ -5890,7 +6095,7 @@ export interface operations {
5890
6095
  };
5891
6096
  requestBody: {
5892
6097
  content: {
5893
- "application/json": components["schemas"]["CreateAuthConfigBody"];
6098
+ "application/json": components["schemas"]["CreateAuthConfig"];
5894
6099
  };
5895
6100
  };
5896
6101
  responses: {
@@ -6656,7 +6861,7 @@ export interface operations {
6656
6861
  };
6657
6862
  requestBody: {
6658
6863
  content: {
6659
- "application/json": components["schemas"]["CreateMcpServerRequest"];
6864
+ "application/json": components["schemas"]["McpServerRequest"];
6660
6865
  };
6661
6866
  };
6662
6867
  responses: {
@@ -6792,7 +6997,7 @@ export interface operations {
6792
6997
  };
6793
6998
  requestBody: {
6794
6999
  content: {
6795
- "application/json": components["schemas"]["UpdateMcpServerRequest"];
7000
+ "application/json": components["schemas"]["McpServerRequest"];
6796
7001
  };
6797
7002
  };
6798
7003
  responses: {
@@ -6875,7 +7080,7 @@ export interface operations {
6875
7080
  [name: string]: unknown;
6876
7081
  };
6877
7082
  content: {
6878
- "application/json": components["schemas"]["McpResponse"];
7083
+ "application/json": components["schemas"]["Mcp"];
6879
7084
  };
6880
7085
  };
6881
7086
  /** @description Invalid request parameters */
@@ -6935,7 +7140,7 @@ export interface operations {
6935
7140
  };
6936
7141
  requestBody: {
6937
7142
  content: {
6938
- "application/json": components["schemas"]["UpdateMcpRequest"];
7143
+ "application/json": components["schemas"]["McpRequest"];
6939
7144
  };
6940
7145
  };
6941
7146
  responses: {
@@ -6945,7 +7150,7 @@ export interface operations {
6945
7150
  [name: string]: unknown;
6946
7151
  };
6947
7152
  content: {
6948
- "application/json": components["schemas"]["McpResponse"];
7153
+ "application/json": components["schemas"]["Mcp"];
6949
7154
  };
6950
7155
  };
6951
7156
  /** @description Invalid request parameters */
@@ -7648,7 +7853,7 @@ export interface operations {
7648
7853
  };
7649
7854
  requestBody: {
7650
7855
  content: {
7651
- "application/json": components["schemas"]["CreateAliasRequest"];
7856
+ "application/json": components["schemas"]["UserAliasRequest"];
7652
7857
  };
7653
7858
  };
7654
7859
  responses: {
@@ -7866,7 +8071,7 @@ export interface operations {
7866
8071
  };
7867
8072
  requestBody: {
7868
8073
  content: {
7869
- "application/json": components["schemas"]["UpdateAliasRequest"];
8074
+ "application/json": components["schemas"]["UserAliasRequest"];
7870
8075
  };
7871
8076
  };
7872
8077
  responses: {
@@ -8281,7 +8486,7 @@ export interface operations {
8281
8486
  content: {
8282
8487
  /** @example {
8283
8488
  * "error": {
8284
- * "code": "settings_error-invalid_setting",
8489
+ * "code": "settings_route_error-not_found",
8285
8490
  * "message": "Setting not found: INVALID_KEY",
8286
8491
  * "type": "not_found_error"
8287
8492
  * }
@@ -8375,7 +8580,7 @@ export interface operations {
8375
8580
  content: {
8376
8581
  /** @example {
8377
8582
  * "error": {
8378
- * "code": "settings_error-not_found",
8583
+ * "code": "settings_route_error-not_found",
8379
8584
  * "message": "Setting not found: INVALID_KEY",
8380
8585
  * "type": "not_found_error"
8381
8586
  * }
@@ -8444,6 +8649,180 @@ export interface operations {
8444
8649
  };
8445
8650
  };
8446
8651
  };
8652
+ tenantsList: {
8653
+ parameters: {
8654
+ query?: never;
8655
+ header?: never;
8656
+ path?: never;
8657
+ cookie?: never;
8658
+ };
8659
+ requestBody?: never;
8660
+ responses: {
8661
+ /** @description List of tenants */
8662
+ 200: {
8663
+ headers: {
8664
+ [name: string]: unknown;
8665
+ };
8666
+ content: {
8667
+ "application/json": components["schemas"]["TenantListResponse"];
8668
+ };
8669
+ };
8670
+ /** @description Invalid request parameters */
8671
+ 400: {
8672
+ headers: {
8673
+ [name: string]: unknown;
8674
+ };
8675
+ content: {
8676
+ "application/json": components["schemas"]["OpenAIApiError"];
8677
+ };
8678
+ };
8679
+ /** @description Not authenticated */
8680
+ 401: {
8681
+ headers: {
8682
+ [name: string]: unknown;
8683
+ };
8684
+ content: {
8685
+ "application/json": components["schemas"]["OpenAIApiError"];
8686
+ };
8687
+ };
8688
+ /** @description Insufficient permissions */
8689
+ 403: {
8690
+ headers: {
8691
+ [name: string]: unknown;
8692
+ };
8693
+ content: {
8694
+ "application/json": components["schemas"]["OpenAIApiError"];
8695
+ };
8696
+ };
8697
+ /** @description Internal server error */
8698
+ 500: {
8699
+ headers: {
8700
+ [name: string]: unknown;
8701
+ };
8702
+ content: {
8703
+ "application/json": components["schemas"]["OpenAIApiError"];
8704
+ };
8705
+ };
8706
+ };
8707
+ };
8708
+ tenantsCreate: {
8709
+ parameters: {
8710
+ query?: never;
8711
+ header?: never;
8712
+ path?: never;
8713
+ cookie?: never;
8714
+ };
8715
+ /** @description Tenant creation parameters */
8716
+ requestBody: {
8717
+ content: {
8718
+ "application/json": components["schemas"]["CreateTenantRequest"];
8719
+ };
8720
+ };
8721
+ responses: {
8722
+ /** @description Tenant created successfully */
8723
+ 201: {
8724
+ headers: {
8725
+ [name: string]: unknown;
8726
+ };
8727
+ content: {
8728
+ "application/json": components["schemas"]["CreateTenantResponse"];
8729
+ };
8730
+ };
8731
+ /** @description Invalid request parameters */
8732
+ 400: {
8733
+ headers: {
8734
+ [name: string]: unknown;
8735
+ };
8736
+ content: {
8737
+ "application/json": components["schemas"]["OpenAIApiError"];
8738
+ };
8739
+ };
8740
+ /** @description Not authenticated */
8741
+ 401: {
8742
+ headers: {
8743
+ [name: string]: unknown;
8744
+ };
8745
+ content: {
8746
+ "application/json": components["schemas"]["OpenAIApiError"];
8747
+ };
8748
+ };
8749
+ /** @description Insufficient permissions */
8750
+ 403: {
8751
+ headers: {
8752
+ [name: string]: unknown;
8753
+ };
8754
+ content: {
8755
+ "application/json": components["schemas"]["OpenAIApiError"];
8756
+ };
8757
+ };
8758
+ /** @description Internal server error */
8759
+ 500: {
8760
+ headers: {
8761
+ [name: string]: unknown;
8762
+ };
8763
+ content: {
8764
+ "application/json": components["schemas"]["OpenAIApiError"];
8765
+ };
8766
+ };
8767
+ };
8768
+ };
8769
+ tenantsActivate: {
8770
+ parameters: {
8771
+ query?: never;
8772
+ header?: never;
8773
+ path: {
8774
+ /** @description The client_id of the tenant to activate */
8775
+ client_id: string;
8776
+ };
8777
+ cookie?: never;
8778
+ };
8779
+ requestBody?: never;
8780
+ responses: {
8781
+ /** @description Tenant activated successfully */
8782
+ 200: {
8783
+ headers: {
8784
+ [name: string]: unknown;
8785
+ };
8786
+ content?: never;
8787
+ };
8788
+ /** @description Invalid request parameters */
8789
+ 400: {
8790
+ headers: {
8791
+ [name: string]: unknown;
8792
+ };
8793
+ content: {
8794
+ "application/json": components["schemas"]["OpenAIApiError"];
8795
+ };
8796
+ };
8797
+ /** @description Not authenticated */
8798
+ 401: {
8799
+ headers: {
8800
+ [name: string]: unknown;
8801
+ };
8802
+ content: {
8803
+ "application/json": components["schemas"]["OpenAIApiError"];
8804
+ };
8805
+ };
8806
+ /** @description Insufficient permissions */
8807
+ 403: {
8808
+ headers: {
8809
+ [name: string]: unknown;
8810
+ };
8811
+ content: {
8812
+ "application/json": components["schemas"]["OpenAIApiError"];
8813
+ };
8814
+ };
8815
+ /** @description Internal server error */
8816
+ 500: {
8817
+ headers: {
8818
+ [name: string]: unknown;
8819
+ };
8820
+ content: {
8821
+ "application/json": components["schemas"]["OpenAIApiError"];
8822
+ };
8823
+ };
8824
+ };
8825
+ };
8447
8826
  listApiTokens: {
8448
8827
  parameters: {
8449
8828
  query?: {
@@ -8493,7 +8872,7 @@ export interface operations {
8493
8872
  * "page_size": 10,
8494
8873
  * "total": 2
8495
8874
  * } */
8496
- "application/json": components["schemas"]["PaginatedApiTokenResponse"];
8875
+ "application/json": components["schemas"]["PaginatedTokenResponse"];
8497
8876
  };
8498
8877
  };
8499
8878
  /** @description Invalid request parameters */
@@ -8550,7 +8929,7 @@ export interface operations {
8550
8929
  * "scope_token_user"
8551
8930
  * ]
8552
8931
  * } */
8553
- "application/json": components["schemas"]["CreateApiTokenRequest"];
8932
+ "application/json": components["schemas"]["CreateTokenRequest"];
8554
8933
  };
8555
8934
  };
8556
8935
  responses: {
@@ -8563,7 +8942,7 @@ export interface operations {
8563
8942
  /** @example {
8564
8943
  * "token": "bodhiapp_1234567890abcdef"
8565
8944
  * } */
8566
- "application/json": components["schemas"]["ApiTokenResponse"];
8945
+ "application/json": components["schemas"]["TokenCreated"];
8567
8946
  };
8568
8947
  };
8569
8948
  /** @description Invalid request parameters */
@@ -8624,7 +9003,7 @@ export interface operations {
8624
9003
  * "name": "Updated Token Name",
8625
9004
  * "status": "inactive"
8626
9005
  * } */
8627
- "application/json": components["schemas"]["UpdateApiTokenRequest"];
9006
+ "application/json": components["schemas"]["UpdateTokenRequest"];
8628
9007
  };
8629
9008
  };
8630
9009
  responses: {
@@ -8643,7 +9022,7 @@ export interface operations {
8643
9022
  * "updated_at": "2024-11-10T04:52:06.786Z",
8644
9023
  * "user_id": "auth0|123456789"
8645
9024
  * } */
8646
- "application/json": components["schemas"]["ApiToken"];
9025
+ "application/json": components["schemas"]["TokenDetail"];
8647
9026
  };
8648
9027
  };
8649
9028
  /** @description Invalid request parameters */
@@ -8953,7 +9332,7 @@ export interface operations {
8953
9332
  };
8954
9333
  requestBody: {
8955
9334
  content: {
8956
- "application/json": components["schemas"]["CreateToolsetRequest"];
9335
+ "application/json": components["schemas"]["ToolsetRequest"];
8957
9336
  };
8958
9337
  };
8959
9338
  responses: {
@@ -9089,7 +9468,7 @@ export interface operations {
9089
9468
  };
9090
9469
  requestBody: {
9091
9470
  content: {
9092
- "application/json": components["schemas"]["UpdateToolsetRequest"];
9471
+ "application/json": components["schemas"]["ToolsetRequest"];
9093
9472
  };
9094
9473
  };
9095
9474
  responses: {
@@ -9305,7 +9684,7 @@ export interface operations {
9305
9684
  [name: string]: unknown;
9306
9685
  };
9307
9686
  content: {
9308
- "application/json": components["schemas"]["UserResponse"];
9687
+ "application/json": components["schemas"]["UserInfoEnvelope"];
9309
9688
  };
9310
9689
  };
9311
9690
  /** @description Invalid request parameters */