@bodhiapp/ts-client 0.1.17 → 0.1.18

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.
@@ -238,7 +238,7 @@ export interface paths {
238
238
  };
239
239
  get?: never;
240
240
  put?: never;
241
- /** Fetch available models from the API */
241
+ /** Fetch available models from the API. */
242
242
  post: operations["fetchApiModels"];
243
243
  delete?: never;
244
244
  options?: never;
@@ -255,7 +255,7 @@ export interface paths {
255
255
  };
256
256
  get?: never;
257
257
  put?: never;
258
- /** Test API connectivity with a prompt */
258
+ /** Test API connectivity with a prompt. */
259
259
  post: operations["testApiModel"];
260
260
  delete?: never;
261
261
  options?: never;
@@ -365,6 +365,46 @@ export interface paths {
365
365
  patch?: never;
366
366
  trace?: never;
367
367
  };
368
+ "/bodhi/v1/auth/dashboard/callback": {
369
+ parameters: {
370
+ query?: never;
371
+ header?: never;
372
+ path?: never;
373
+ cookie?: never;
374
+ };
375
+ get?: never;
376
+ put?: never;
377
+ /**
378
+ * Complete Dashboard OAuth Authentication
379
+ * @description Completes the dashboard OAuth authentication flow by exchanging authorization code for tokens.
380
+ */
381
+ post: operations["completeDashboardOAuthFlow"];
382
+ delete?: never;
383
+ options?: never;
384
+ head?: never;
385
+ patch?: never;
386
+ trace?: never;
387
+ };
388
+ "/bodhi/v1/auth/dashboard/initiate": {
389
+ parameters: {
390
+ query?: never;
391
+ header?: never;
392
+ path?: never;
393
+ cookie?: never;
394
+ };
395
+ get?: never;
396
+ put?: never;
397
+ /**
398
+ * Initiate Dashboard OAuth Authentication
399
+ * @description Initiates the dashboard OAuth authentication flow using the multi-tenant client. Only available in multi-tenant mode.
400
+ */
401
+ post: operations["initiateDashboardOAuthFlow"];
402
+ delete?: never;
403
+ options?: never;
404
+ head?: never;
405
+ patch?: never;
406
+ trace?: never;
407
+ };
368
408
  "/bodhi/v1/auth/initiate": {
369
409
  parameters: {
370
410
  query?: never;
@@ -928,6 +968,50 @@ export interface paths {
928
968
  patch?: never;
929
969
  trace?: never;
930
970
  };
971
+ "/bodhi/v1/tenants": {
972
+ parameters: {
973
+ query?: never;
974
+ header?: never;
975
+ path?: never;
976
+ cookie?: never;
977
+ };
978
+ /**
979
+ * List Tenants
980
+ * @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.
981
+ */
982
+ get: operations["tenantsList"];
983
+ put?: never;
984
+ /**
985
+ * Create Tenant
986
+ * @description Creates a new tenant (Keycloak client) via the Bodhi SPI and registers it locally.
987
+ */
988
+ post: operations["tenantsCreate"];
989
+ delete?: never;
990
+ options?: never;
991
+ head?: never;
992
+ patch?: never;
993
+ trace?: never;
994
+ };
995
+ "/bodhi/v1/tenants/{client_id}/activate": {
996
+ parameters: {
997
+ query?: never;
998
+ header?: never;
999
+ path?: never;
1000
+ cookie?: never;
1001
+ };
1002
+ get?: never;
1003
+ put?: never;
1004
+ /**
1005
+ * Activate Tenant
1006
+ * @description Sets the given tenant as the active tenant for the current session. The user must already be logged into this tenant.
1007
+ */
1008
+ post: operations["tenantsActivate"];
1009
+ delete?: never;
1010
+ options?: never;
1011
+ head?: never;
1012
+ patch?: never;
1013
+ trace?: never;
1014
+ };
931
1015
  "/bodhi/v1/tokens": {
932
1016
  parameters: {
933
1017
  query?: never;
@@ -1076,7 +1160,7 @@ export interface paths {
1076
1160
  };
1077
1161
  /**
1078
1162
  * Get Current User Information
1079
- * @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).
1163
+ * @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.
1080
1164
  */
1081
1165
  get: operations["getCurrentUser"];
1082
1166
  put?: never;
@@ -1423,33 +1507,24 @@ export interface components {
1423
1507
  };
1424
1508
  /** @description Validated API key wrapper - validates length when Some, allows None for public APIs */
1425
1509
  ApiKey: string | null;
1426
- /** @description Represents an API key update action for API model updates */
1427
- ApiKeyUpdateAction: {
1510
+ /** @description Represents an API key update operation for API model aliases and toolsets. */
1511
+ ApiKeyUpdate: {
1428
1512
  /** @enum {string} */
1429
1513
  action: "keep";
1430
1514
  } | {
1431
- /** @description Set a new API key (or add one if none exists) - can be None for public APIs */
1515
+ /** @description Set a new API key (or add one if none exists) - ApiKey validates length */
1432
1516
  value: components["schemas"]["ApiKey"];
1433
1517
  /** @enum {string} */
1434
1518
  action: "set";
1435
1519
  };
1436
- /** @description API key update enum (mirrors services::db::ApiKeyUpdate) */
1437
- ApiKeyUpdateDto: {
1438
- /** @enum {string} */
1439
- action: "Keep";
1440
- } | {
1441
- /** @description Set a new API key (or clear if None) */
1442
- value: string | null;
1443
- /** @enum {string} */
1444
- action: "Set";
1445
- };
1446
1520
  /**
1447
- * @description Response containing API model configuration
1521
+ * @description Output type for API model configuration.
1448
1522
  * @example {
1449
1523
  * "api_format": "openai",
1450
- * "api_key_masked": "sk-...abc123",
1451
1524
  * "base_url": "https://api.openai.com/v1",
1452
1525
  * "created_at": "2024-01-01T00:00:00Z",
1526
+ * "forward_all_with_prefix": false,
1527
+ * "has_api_key": true,
1453
1528
  * "id": "openai-gpt4",
1454
1529
  * "models": [
1455
1530
  * "gpt-4",
@@ -1459,11 +1534,11 @@ export interface components {
1459
1534
  * "updated_at": "2024-01-01T00:00:00Z"
1460
1535
  * }
1461
1536
  */
1462
- ApiModelResponse: {
1537
+ ApiModelOutput: {
1463
1538
  id: string;
1464
1539
  api_format: components["schemas"]["ApiFormat"];
1465
1540
  base_url: string;
1466
- api_key_masked?: string | null;
1541
+ has_api_key: boolean;
1467
1542
  models: string[];
1468
1543
  prefix?: string | null;
1469
1544
  forward_all_with_prefix: boolean;
@@ -1472,41 +1547,44 @@ export interface components {
1472
1547
  /** Format: date-time */
1473
1548
  updated_at: string;
1474
1549
  };
1475
- ApiToken: {
1476
- id: string;
1477
- user_id: string;
1478
- name: string;
1479
- token_prefix: string;
1480
- token_hash: string;
1481
- scopes: string;
1482
- status: components["schemas"]["TokenStatus"];
1483
- /**
1484
- * Format: date-time
1485
- * @example 2024-11-10T04:52:06.786Z
1486
- */
1487
- created_at: string;
1488
- /**
1489
- * Format: date-time
1490
- * @example 2024-11-10T04:52:06.786Z
1491
- */
1492
- updated_at: string;
1493
- };
1494
- /** @example {
1495
- * "token": "bodhiapp_1234567890abcdef"
1496
- * } */
1497
- ApiTokenResponse: {
1498
- /**
1499
- * @description API token with bodhiapp_ prefix for programmatic access
1500
- * @example bodhiapp_1234567890abcdef
1501
- */
1502
- token: string;
1550
+ /**
1551
+ * @description Input request for creating or updating an API model configuration.
1552
+ * @example {
1553
+ * "api_format": "openai",
1554
+ * "api_key": {
1555
+ * "action": "set",
1556
+ * "value": "sk-..."
1557
+ * },
1558
+ * "base_url": "https://api.openai.com/v1",
1559
+ * "models": [
1560
+ * "gpt-4",
1561
+ * "gpt-3.5-turbo"
1562
+ * ],
1563
+ * "prefix": "openai"
1564
+ * }
1565
+ */
1566
+ ApiModelRequest: {
1567
+ /** @description API format/protocol (e.g., "openai") */
1568
+ api_format: components["schemas"]["ApiFormat"];
1569
+ /** @description API base URL */
1570
+ base_url: string;
1571
+ /** @description API key update action (Keep/Set with Some or None) */
1572
+ api_key?: components["schemas"]["ApiKeyUpdate"];
1573
+ /** @description List of available models */
1574
+ models: string[];
1575
+ /** @description Optional prefix for model namespacing (e.g., "azure/" for "azure/gpt-4") */
1576
+ prefix?: string | null;
1577
+ /** @description Whether to forward all requests with this prefix (true) or only selected models (false) */
1578
+ forward_all_with_prefix?: boolean;
1503
1579
  };
1504
1580
  /** @enum {string} */
1505
1581
  AppAccessRequestStatus: "draft" | "approved" | "denied" | "failed" | "expired";
1506
1582
  /**
1507
1583
  * @description Application information and status
1508
1584
  * @example {
1585
+ * "client_id": "my-client-id",
1509
1586
  * "commit_sha": "abc1234",
1587
+ * "deployment": "standalone",
1510
1588
  * "status": "ready",
1511
1589
  * "version": "0.1.0"
1512
1590
  * }
@@ -1524,13 +1602,20 @@ export interface components {
1524
1602
  commit_sha: string;
1525
1603
  /** @description Current application setup and operational status */
1526
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;
1527
1612
  };
1528
1613
  AppRole: components["schemas"]["ResourceRole"] | components["schemas"]["TokenScope"] | components["schemas"]["UserScope"];
1529
1614
  /**
1530
1615
  * @example ready
1531
1616
  * @enum {string}
1532
1617
  */
1533
- AppStatus: "setup" | "ready" | "resource_admin";
1618
+ AppStatus: "setup" | "ready" | "resource_admin" | "tenant_selection";
1534
1619
  /** @description Application-level toolset configuration */
1535
1620
  AppToolsetConfig: {
1536
1621
  /** @description Toolset type identifier (e.g., "builtin-exa-search") */
@@ -1558,7 +1643,9 @@ export interface components {
1558
1643
  };
1559
1644
  /** @enum {string} */
1560
1645
  ApprovalStatus: "approved" | "denied";
1561
- /** @example {
1646
+ /**
1647
+ * @description Request for approving an app access request
1648
+ * @example {
1562
1649
  * "approved": {
1563
1650
  * "mcps": [
1564
1651
  * {
@@ -1580,8 +1667,9 @@ export interface components {
1580
1667
  * ]
1581
1668
  * },
1582
1669
  * "approved_role": "scope_user_user"
1583
- * } */
1584
- ApproveAccessRequestBody: {
1670
+ * }
1671
+ */
1672
+ ApproveAccessRequest: {
1585
1673
  /** @description Role to grant for the approved request (scope_user_user or scope_user_power_user) */
1586
1674
  approved_role: components["schemas"]["UserScope"];
1587
1675
  /** @description Approved resources with selections */
@@ -1629,13 +1717,23 @@ export interface components {
1629
1717
  } & {
1630
1718
  [key: string]: string;
1631
1719
  };
1632
- /** @description Change user role request */
1633
- ChangeRoleRequest: {
1720
+ /**
1721
+ * @description Request body for initiating OAuth authentication
1722
+ * @example {
1723
+ * "client_id": "my-client-id"
1724
+ * }
1725
+ */
1726
+ AuthInitiateRequest: {
1634
1727
  /**
1635
- * @description Role to assign to the user
1636
- * @example resource_manager
1728
+ * @description The OAuth client_id of the tenant to authenticate with
1729
+ * @example my-client-id
1637
1730
  */
1638
- role: string;
1731
+ client_id: string;
1732
+ };
1733
+ /** @description Change user role request */
1734
+ ChangeRoleRequest: {
1735
+ /** @description Role to assign to the user */
1736
+ role: components["schemas"]["ResourceRole"];
1639
1737
  };
1640
1738
  ChatChoice: {
1641
1739
  /**
@@ -2033,7 +2131,9 @@ export interface components {
2033
2131
  CopyAliasRequest: {
2034
2132
  alias: string;
2035
2133
  };
2036
- /** @example {
2134
+ /**
2135
+ * @description Request for creating an app access request
2136
+ * @example {
2037
2137
  * "app_client_id": "my-app-client",
2038
2138
  * "flow_type": "redirect",
2039
2139
  * "redirect_url": "https://myapp.com/callback",
@@ -2045,8 +2145,9 @@ export interface components {
2045
2145
  * ]
2046
2146
  * },
2047
2147
  * "requested_role": "scope_user_user"
2048
- * } */
2049
- CreateAccessRequestBody: {
2148
+ * }
2149
+ */
2150
+ CreateAccessRequest: {
2050
2151
  /** @description App client ID from Keycloak */
2051
2152
  app_client_id: string;
2052
2153
  /** @description Flow type: "redirect" or "popup" */
@@ -2070,59 +2171,8 @@ export interface components {
2070
2171
  /** @description Review URL for user to approve/deny */
2071
2172
  review_url: string;
2072
2173
  };
2073
- CreateAliasRequest: {
2074
- alias: string;
2075
- repo: string;
2076
- filename: string;
2077
- snapshot?: string | null;
2078
- request_params?: null | components["schemas"]["OAIRequestParams"];
2079
- context_params?: string[] | null;
2080
- };
2081
- /**
2082
- * @description Request to create a new API model configuration
2083
- * @example {
2084
- * "api_format": "openai",
2085
- * "api_key": "sk-...",
2086
- * "base_url": "https://api.openai.com/v1",
2087
- * "models": [
2088
- * "gpt-4",
2089
- * "gpt-3.5-turbo"
2090
- * ],
2091
- * "prefix": "openai"
2092
- * }
2093
- */
2094
- CreateApiModelRequest: {
2095
- /** @description API format/protocol (e.g., "openai") */
2096
- api_format: components["schemas"]["ApiFormat"];
2097
- /** @description API base URL */
2098
- base_url: string;
2099
- /** @description API key for authentication (null for public APIs) */
2100
- api_key?: components["schemas"]["ApiKey"];
2101
- /** @description List of available models */
2102
- models: string[];
2103
- /** @description Optional prefix for model namespacing (e.g., "azure/" for "azure/gpt-4", "openai:" for "openai:gpt-4") */
2104
- prefix?: string | null;
2105
- /** @description Whether to forward all requests with this prefix (true) or only selected models (false) */
2106
- forward_all_with_prefix?: boolean;
2107
- };
2108
- /**
2109
- * @description Request to create a new API token
2110
- * @example {
2111
- * "name": "My Integration Token",
2112
- * "scope": "scope_token_user"
2113
- * }
2114
- */
2115
- CreateApiTokenRequest: {
2116
- /**
2117
- * @description Descriptive name for the API token (minimum 3 characters)
2118
- * @example My Integration Token
2119
- */
2120
- name?: string | null;
2121
- /** @description Token scope defining access level */
2122
- scope: components["schemas"]["TokenScope"];
2123
- };
2124
2174
  /** @description Wrapper for creating auth configs with server_id in body instead of path */
2125
- CreateAuthConfigBody: components["schemas"]["CreateMcpAuthConfigRequest"] & {
2175
+ CreateAuthConfig: components["schemas"]["CreateMcpAuthConfigRequest"] & {
2126
2176
  mcp_server_id: string;
2127
2177
  };
2128
2178
  CreateChatCompletionRequest: {
@@ -2400,36 +2450,25 @@ export interface components {
2400
2450
  /** @enum {string} */
2401
2451
  type: "oauth";
2402
2452
  };
2403
- CreateMcpRequest: {
2453
+ CreateTenantRequest: {
2404
2454
  name: string;
2405
- slug: string;
2406
- mcp_server_id: string;
2407
2455
  description?: string | null;
2408
- enabled: boolean;
2409
- tools_cache?: components["schemas"]["McpTool"][] | null;
2410
- tools_filter?: string[] | null;
2411
- auth_type?: components["schemas"]["McpAuthType"];
2412
- auth_uuid?: string | null;
2413
2456
  };
2414
- CreateMcpServerRequest: {
2415
- url: string;
2416
- name: string;
2417
- description?: string | null;
2418
- enabled: boolean;
2419
- auth_config?: null | components["schemas"]["CreateMcpAuthConfigRequest"];
2457
+ CreateTenantResponse: {
2458
+ client_id: string;
2420
2459
  };
2421
- /** @description Request to create a toolset */
2422
- CreateToolsetRequest: {
2423
- /** @description Toolset type identifier (e.g., "builtin-exa-search") */
2424
- toolset_type: string;
2425
- /** @description User-defined slug for this toolset (1-24 chars, alphanumeric + hyphens) */
2426
- slug: string;
2427
- /** @description Optional description for this toolset */
2428
- description?: string | null;
2429
- /** @description Whether this toolset is enabled */
2430
- enabled?: boolean;
2431
- /** @description API key for the toolset */
2432
- api_key: string;
2460
+ /** @example {
2461
+ * "name": "My Integration Token",
2462
+ * "scope": "scope_token_user"
2463
+ * } */
2464
+ CreateTokenRequest: {
2465
+ /**
2466
+ * @description Descriptive name for the API token
2467
+ * @example My Integration Token
2468
+ */
2469
+ name?: string | null;
2470
+ /** @description Token scope defining access level */
2471
+ scope: components["schemas"]["TokenScope"];
2433
2472
  };
2434
2473
  CustomGrammarFormatParam: {
2435
2474
  /** @description The grammar definition. */
@@ -2466,31 +2505,24 @@ export interface components {
2466
2505
  /** @enum {string} */
2467
2506
  type: "grammar";
2468
2507
  };
2508
+ /** @enum {string} */
2509
+ DeploymentMode: "standalone" | "multi_tenant";
2469
2510
  DownloadRequest: {
2470
2511
  id: string;
2471
2512
  repo: string;
2472
2513
  filename: string;
2473
2514
  status: components["schemas"]["DownloadStatus"];
2474
2515
  error?: string | null;
2475
- /**
2476
- * Format: date-time
2477
- * @example 2024-11-10T04:52:06.786Z
2478
- */
2479
- created_at: string;
2480
- /**
2481
- * Format: date-time
2482
- * @example 2024-11-10T04:52:06.786Z
2483
- */
2484
- updated_at: string;
2485
2516
  /** Format: int64 */
2486
2517
  total_bytes?: number | null;
2487
2518
  /** Format: int64 */
2488
- downloaded_bytes?: number;
2489
- /**
2490
- * Format: date-time
2491
- * @example 2024-11-10T04:52:06.786Z
2492
- */
2493
- started_at: string;
2519
+ downloaded_bytes: number;
2520
+ /** Format: date-time */
2521
+ started_at?: string | null;
2522
+ /** Format: date-time */
2523
+ created_at: string;
2524
+ /** Format: date-time */
2525
+ updated_at: string;
2494
2526
  };
2495
2527
  /** @enum {string} */
2496
2528
  DownloadStatus: "pending" | "completed" | "error";
@@ -2690,7 +2722,7 @@ export interface components {
2690
2722
  mcp_servers: components["schemas"]["McpServerResponse"][];
2691
2723
  };
2692
2724
  ListMcpsResponse: {
2693
- mcps: components["schemas"]["McpResponse"][];
2725
+ mcps: components["schemas"]["Mcp"][];
2694
2726
  };
2695
2727
  ListModelResponse: {
2696
2728
  object: string;
@@ -2705,7 +2737,8 @@ export interface components {
2705
2737
  toolsets: components["schemas"]["ToolsetResponse"][];
2706
2738
  toolset_types: components["schemas"]["AppToolsetConfig"][];
2707
2739
  };
2708
- /** @description List users query parameters */
2740
+ /** @description List users query parameters. Intentionally omits sort fields (unlike PaginationSortParams)
2741
+ * because user listing is fetched from the auth service which handles its own ordering. */
2709
2742
  ListUsersParams: {
2710
2743
  /**
2711
2744
  * Format: int32
@@ -2718,6 +2751,7 @@ export interface components {
2718
2751
  */
2719
2752
  page_size?: number | null;
2720
2753
  };
2754
+ /** @description Local model file response */
2721
2755
  LocalModelResponse: {
2722
2756
  repo: string;
2723
2757
  filename: string;
@@ -2785,7 +2819,6 @@ export interface components {
2785
2819
  mcp_server_id: string;
2786
2820
  header_key: string;
2787
2821
  has_header_value: boolean;
2788
- created_by: string;
2789
2822
  /** Format: date-time */
2790
2823
  created_at: string;
2791
2824
  /** Format: date-time */
@@ -2807,7 +2840,6 @@ export interface components {
2807
2840
  token_endpoint_auth_method?: string | null;
2808
2841
  has_client_secret: boolean;
2809
2842
  has_registration_access_token: boolean;
2810
- created_by: string;
2811
2843
  /** Format: date-time */
2812
2844
  created_at: string;
2813
2845
  /** Format: date-time */
@@ -2831,19 +2863,26 @@ export interface components {
2831
2863
  McpInstance: {
2832
2864
  id: string;
2833
2865
  };
2834
- McpResponse: {
2835
- id: string;
2836
- mcp_server: components["schemas"]["McpServerInfo"];
2837
- slug: string;
2866
+ /** @description Input for creating or updating an MCP instance. */
2867
+ McpRequest: {
2868
+ /** @description Human-readable name (required) */
2838
2869
  name: string;
2870
+ /** @description User-defined slug for this instance (1-24 chars, alphanumeric + hyphens) */
2871
+ slug: string;
2872
+ /** @description MCP server ID (required for create, ignored for update) */
2873
+ mcp_server_id?: string | null;
2874
+ /** @description Optional description */
2839
2875
  description?: string | null;
2876
+ /** @description Whether this instance is enabled */
2840
2877
  enabled: boolean;
2878
+ /** @description Cached tool schemas from the MCP server (JSON array) */
2841
2879
  tools_cache?: components["schemas"]["McpTool"][] | null;
2880
+ /** @description Whitelisted tool names */
2842
2881
  tools_filter?: string[] | null;
2843
- auth_type: components["schemas"]["McpAuthType"];
2882
+ /** @description Authentication type */
2883
+ auth_type?: components["schemas"]["McpAuthType"];
2884
+ /** @description Reference to auth config */
2844
2885
  auth_uuid?: string | null;
2845
- created_at: string;
2846
- updated_at: string;
2847
2886
  };
2848
2887
  /** @description Admin-managed MCP server registry entry.
2849
2888
  * Admins/managers register MCP server URLs that users can then create instances of. */
@@ -2882,23 +2921,24 @@ export interface components {
2882
2921
  name: string;
2883
2922
  enabled: boolean;
2884
2923
  };
2924
+ /** @description Input for creating or updating an MCP server. */
2885
2925
  McpServerRequest: {
2926
+ /** @description MCP server endpoint URL (trimmed, case-insensitive unique) */
2886
2927
  url: string;
2887
- };
2888
- McpServerResponse: {
2889
- id: string;
2890
- url: string;
2928
+ /** @description Human-readable display name */
2891
2929
  name: string;
2930
+ /** @description Optional description */
2892
2931
  description?: string | null;
2932
+ /** @description Whether this MCP server is enabled */
2893
2933
  enabled: boolean;
2894
- created_by: string;
2895
- updated_by: string;
2934
+ auth_config?: null | components["schemas"]["CreateMcpAuthConfigRequest"];
2935
+ };
2936
+ /** @description MCP server response with computed mcp counts and optional auth config. */
2937
+ McpServerResponse: components["schemas"]["McpServer"] & {
2896
2938
  /** Format: int64 */
2897
2939
  enabled_mcp_count: number;
2898
2940
  /** Format: int64 */
2899
2941
  disabled_mcp_count: number;
2900
- created_at: string;
2901
- updated_at: string;
2902
2942
  auth_config?: null | components["schemas"]["McpAuthConfigResponse"];
2903
2943
  };
2904
2944
  McpServerReviewInfo: {
@@ -2993,7 +3033,7 @@ export interface components {
2993
3033
  models: components["schemas"]["OllamaModel"][];
2994
3034
  };
2995
3035
  /**
2996
- * @description Request to pull a model file from HuggingFace
3036
+ * @description Request for creating a new download request
2997
3037
  * @example {
2998
3038
  * "filename": "mistral-7b-instruct-v0.1.Q4_K_M.gguf",
2999
3039
  * "repo": "TheBloke/Mistral-7B-Instruct-v0.1-GGUF"
@@ -3065,7 +3105,7 @@ export interface components {
3065
3105
  expires_at?: number | null;
3066
3106
  has_access_token: boolean;
3067
3107
  has_refresh_token: boolean;
3068
- created_by: string;
3108
+ user_id: string;
3069
3109
  created_at: string;
3070
3110
  updated_at: string;
3071
3111
  };
@@ -3144,6 +3184,7 @@ export interface components {
3144
3184
  /** Format: int32 */
3145
3185
  num_thread?: number | null;
3146
3186
  };
3187
+ /** @description Paginated list of all model aliases (user, model, and API) */
3147
3188
  PaginatedAliasResponse: {
3148
3189
  data: components["schemas"]["AliasResponse"][];
3149
3190
  total: number;
@@ -3151,30 +3192,32 @@ export interface components {
3151
3192
  page_size: number;
3152
3193
  };
3153
3194
  /** @description Paginated response for API model listings */
3154
- PaginatedApiModelResponse: {
3155
- data: components["schemas"]["ApiModelResponse"][];
3156
- total: number;
3157
- page: number;
3158
- page_size: number;
3159
- };
3160
- PaginatedApiTokenResponse: {
3161
- data: components["schemas"]["ApiToken"][];
3195
+ PaginatedApiModelOutput: {
3196
+ data: components["schemas"]["ApiModelOutput"][];
3162
3197
  total: number;
3163
3198
  page: number;
3164
3199
  page_size: number;
3165
3200
  };
3201
+ /** @description Paginated list of download requests */
3166
3202
  PaginatedDownloadResponse: {
3167
3203
  data: components["schemas"]["DownloadRequest"][];
3168
3204
  total: number;
3169
3205
  page: number;
3170
3206
  page_size: number;
3171
3207
  };
3208
+ /** @description Paginated list of local model files */
3172
3209
  PaginatedLocalModelResponse: {
3173
3210
  data: components["schemas"]["LocalModelResponse"][];
3174
3211
  total: number;
3175
3212
  page: number;
3176
3213
  page_size: number;
3177
3214
  };
3215
+ PaginatedTokenResponse: {
3216
+ data: components["schemas"]["TokenDetail"][];
3217
+ total: number;
3218
+ page: number;
3219
+ page_size: number;
3220
+ };
3178
3221
  /**
3179
3222
  * @description Paginated response for access requests
3180
3223
  * @example {
@@ -3183,11 +3226,11 @@ export interface components {
3183
3226
  * "requests": [
3184
3227
  * {
3185
3228
  * "created_at": "2024-01-01T12:00:00Z",
3186
- * "email": "user@example.com",
3187
- * "id": 1,
3188
- * "reviewer": null,
3229
+ * "id": "01HXXXXXX",
3189
3230
  * "status": "pending",
3190
- * "updated_at": "2024-01-01T12:00:00Z"
3231
+ * "updated_at": "2024-01-01T12:00:00Z",
3232
+ * "user_id": "auth0|123",
3233
+ * "username": "user@example.com"
3191
3234
  * }
3192
3235
  * ],
3193
3236
  * "total": 1
@@ -3203,6 +3246,7 @@ export interface components {
3203
3246
  /** @description Number of items per page */
3204
3247
  page_size: number;
3205
3248
  };
3249
+ /** @description Paginated list of user-defined model aliases */
3206
3250
  PaginatedUserAliasResponse: {
3207
3251
  data: components["schemas"]["UserAliasResponse"][];
3208
3252
  total: number;
@@ -3325,9 +3369,12 @@ export interface components {
3325
3369
  * @enum {string}
3326
3370
  */
3327
3371
  RegistrationType: "pre_registered" | "dynamic_registration";
3372
+ RequestedMcpServer: {
3373
+ url: string;
3374
+ };
3328
3375
  RequestedResources: {
3329
3376
  toolset_types?: components["schemas"]["ToolsetTypeRequest"][];
3330
- mcp_servers?: components["schemas"]["McpServerRequest"][];
3377
+ mcp_servers?: components["schemas"]["RequestedMcpServer"][];
3331
3378
  };
3332
3379
  /** @enum {string} */
3333
3380
  ResourceRole: "resource_user" | "resource_power_user" | "resource_manager" | "resource_admin";
@@ -3443,6 +3490,16 @@ export interface components {
3443
3490
  template: string;
3444
3491
  };
3445
3492
  StopConfiguration: string | string[];
3493
+ TenantListItem: {
3494
+ client_id: string;
3495
+ name: string;
3496
+ description?: string | null;
3497
+ is_active: boolean;
3498
+ logged_in: boolean;
3499
+ };
3500
+ TenantListResponse: {
3501
+ tenants: components["schemas"]["TenantListItem"][];
3502
+ };
3446
3503
  /** @description Credentials for test/fetch operations */
3447
3504
  TestCreds: {
3448
3505
  /** @description Look up credentials from stored API model */
@@ -3490,6 +3547,28 @@ export interface components {
3490
3547
  response?: string | null;
3491
3548
  error?: string | null;
3492
3549
  };
3550
+ /** @example {
3551
+ * "token": "bodhiapp_1234567890abcdef"
3552
+ * } */
3553
+ TokenCreated: {
3554
+ /**
3555
+ * @description API token with bodhiapp_ prefix for programmatic access
3556
+ * @example bodhiapp_1234567890abcdef
3557
+ */
3558
+ token: string;
3559
+ };
3560
+ TokenDetail: {
3561
+ id: string;
3562
+ user_id: string;
3563
+ name: string;
3564
+ token_prefix: string;
3565
+ scopes: string;
3566
+ status: components["schemas"]["TokenStatus"];
3567
+ /** Format: date-time */
3568
+ created_at: string;
3569
+ /** Format: date-time */
3570
+ updated_at: string;
3571
+ };
3493
3572
  /** @description API Token information response */
3494
3573
  TokenInfo: {
3495
3574
  role: components["schemas"]["TokenScope"];
@@ -3578,6 +3657,19 @@ export interface components {
3578
3657
  ToolsetInstance: {
3579
3658
  id: string;
3580
3659
  };
3660
+ /** @description Input for creating or updating a toolset instance. */
3661
+ ToolsetRequest: {
3662
+ /** @description Toolset type identifier (required for create, ignored for update) */
3663
+ toolset_type?: string | null;
3664
+ /** @description User-defined slug for this instance (1-24 chars, alphanumeric + hyphens) */
3665
+ slug: string;
3666
+ /** @description Optional description for this instance */
3667
+ description?: string | null;
3668
+ /** @description Whether this instance is enabled */
3669
+ enabled?: boolean;
3670
+ /** @description API key update action (Keep or Set) */
3671
+ api_key?: components["schemas"]["ApiKeyUpdate"];
3672
+ };
3581
3673
  /** @description Toolset response */
3582
3674
  ToolsetResponse: {
3583
3675
  /** @description Unique instance identifier (UUID) */
@@ -3619,95 +3711,29 @@ export interface components {
3619
3711
  /** @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. */
3620
3712
  bytes?: number[] | null;
3621
3713
  };
3622
- UpdateAliasRequest: {
3623
- repo: string;
3624
- filename: string;
3625
- snapshot?: string | null;
3626
- request_params?: null | components["schemas"]["OAIRequestParams"];
3627
- context_params?: string[] | null;
3628
- };
3629
3714
  /**
3630
- * @description Request to update an existing API model configuration
3715
+ * @description Request to update a setting value
3631
3716
  * @example {
3632
- * "api_format": "openai",
3633
- * "api_key": {
3634
- * "action": "keep"
3635
- * },
3636
- * "base_url": "https://api.openai.com/v1",
3637
- * "models": [
3638
- * "gpt-4-turbo",
3639
- * "gpt-3.5-turbo"
3640
- * ],
3641
- * "prefix": "openai"
3717
+ * "value": "debug"
3642
3718
  * }
3643
3719
  */
3644
- UpdateApiModelRequest: {
3645
- /** @description API format/protocol (required) */
3646
- api_format: components["schemas"]["ApiFormat"];
3647
- /** @description API base URL (required) */
3648
- base_url: string;
3649
- /** @description API key update action (Keep/Set with Some or None) */
3650
- api_key?: components["schemas"]["ApiKeyUpdateAction"];
3651
- /** @description List of available models (required) */
3652
- models: string[];
3653
- /** @description Optional prefix for model namespacing */
3654
- prefix?: string | null;
3655
- /** @description Whether to forward all requests with this prefix (true) or only selected models (false) */
3656
- forward_all_with_prefix?: boolean;
3720
+ UpdateSettingRequest: {
3721
+ /** @description New value for the setting (type depends on setting metadata) */
3722
+ value: unknown;
3657
3723
  };
3658
- /**
3659
- * @description Request to update an existing API token
3660
- * @example {
3724
+ /** @example {
3661
3725
  * "name": "Updated Token Name",
3662
3726
  * "status": "inactive"
3663
- * }
3664
- */
3665
- UpdateApiTokenRequest: {
3727
+ * } */
3728
+ UpdateTokenRequest: {
3666
3729
  /**
3667
- * @description New descriptive name for the token (minimum 3 characters)
3730
+ * @description New descriptive name for the token
3668
3731
  * @example Updated Token Name
3669
3732
  */
3670
3733
  name: string;
3671
3734
  /** @description New status for the token (active/inactive) */
3672
3735
  status: components["schemas"]["TokenStatus"];
3673
3736
  };
3674
- UpdateMcpRequest: {
3675
- name: string;
3676
- slug: string;
3677
- description?: string | null;
3678
- enabled: boolean;
3679
- tools_filter?: string[] | null;
3680
- tools_cache?: components["schemas"]["McpTool"][] | null;
3681
- auth_type?: null | components["schemas"]["McpAuthType"];
3682
- auth_uuid?: string | null;
3683
- };
3684
- UpdateMcpServerRequest: {
3685
- url: string;
3686
- name: string;
3687
- description?: string | null;
3688
- enabled: boolean;
3689
- };
3690
- /**
3691
- * @description Request to update a setting value
3692
- * @example {
3693
- * "value": "debug"
3694
- * }
3695
- */
3696
- UpdateSettingRequest: {
3697
- /** @description New value for the setting (type depends on setting metadata) */
3698
- value: unknown;
3699
- };
3700
- /** @description Request to update a toolset (full PUT - all fields required except api_key) */
3701
- UpdateToolsetRequest: {
3702
- /** @description User-defined slug for this toolset */
3703
- slug: string;
3704
- /** @description Optional description for this toolset */
3705
- description?: string | null;
3706
- /** @description Whether this toolset is enabled */
3707
- enabled: boolean;
3708
- /** @description API key update action (Keep or Set) */
3709
- api_key?: components["schemas"]["ApiKeyUpdateDto"];
3710
- };
3711
3737
  UrlCitation: {
3712
3738
  /**
3713
3739
  * Format: int32
@@ -3724,6 +3750,7 @@ export interface components {
3724
3750
  /** @description The URL of the web resource. */
3725
3751
  url: string;
3726
3752
  };
3753
+ /** @description User access request output type for API responses */
3727
3754
  UserAccessRequest: {
3728
3755
  id: string;
3729
3756
  username: string;
@@ -3741,7 +3768,9 @@ export interface components {
3741
3768
  * @description Response for checking access request status
3742
3769
  * @example {
3743
3770
  * "created_at": "2024-01-01T12:00:00Z",
3744
- * "status": "pending"
3771
+ * "status": "pending",
3772
+ * "updated_at": "2024-01-01T12:00:00Z",
3773
+ * "username": "user@example.com"
3745
3774
  * }
3746
3775
  */
3747
3776
  UserAccessStatusResponse: {
@@ -3774,6 +3803,34 @@ export interface components {
3774
3803
  /** Format: date-time */
3775
3804
  updated_at: string;
3776
3805
  };
3806
+ /**
3807
+ * @description Input request for creating or updating a user model alias.
3808
+ * @example {
3809
+ * "alias": "llama3:instruct",
3810
+ * "context_params": [
3811
+ * "--ctx-size 4096"
3812
+ * ],
3813
+ * "filename": "Meta-Llama-3-8B-Instruct.Q4_K_M.gguf",
3814
+ * "repo": "QuantFactory/Meta-Llama-3-8B-Instruct-GGUF",
3815
+ * "request_params": {
3816
+ * "temperature": 0.7
3817
+ * }
3818
+ * }
3819
+ */
3820
+ UserAliasRequest: {
3821
+ /** @description Alias name — unique per (tenant_id, user_id) scope */
3822
+ alias: string;
3823
+ /** @description Repository in format "user/repo" */
3824
+ repo: string;
3825
+ /** @description Filename of the GGUF model */
3826
+ filename: string;
3827
+ /** @description Snapshot/commit identifier (optional — defaults to latest available) */
3828
+ snapshot?: string | null;
3829
+ request_params?: null | components["schemas"]["OAIRequestParams"];
3830
+ /** @description Context parameters for the model */
3831
+ context_params?: string[] | null;
3832
+ };
3833
+ /** @description User-defined model alias response */
3777
3834
  UserAliasResponse: {
3778
3835
  id: string;
3779
3836
  alias: string;
@@ -3803,6 +3860,11 @@ export interface components {
3803
3860
  last_name?: string | null;
3804
3861
  role?: null | components["schemas"]["AppRole"];
3805
3862
  };
3863
+ /** @description Envelope wrapping UserResponse with additional session info */
3864
+ UserInfoEnvelope: components["schemas"]["UserResponse"] & {
3865
+ /** @description Whether the user has an active dashboard session (only present when true) */
3866
+ has_dashboard_session?: boolean;
3867
+ };
3806
3868
  UserListResponse: {
3807
3869
  /** @example resource-abc123def456 */
3808
3870
  client_id: string;
@@ -4311,7 +4373,7 @@ export interface operations {
4311
4373
  /** @description Approval details with tool selections */
4312
4374
  requestBody: {
4313
4375
  content: {
4314
- "application/json": components["schemas"]["ApproveAccessRequestBody"];
4376
+ "application/json": components["schemas"]["ApproveAccessRequest"];
4315
4377
  };
4316
4378
  };
4317
4379
  responses: {
@@ -4699,8 +4761,8 @@ export interface operations {
4699
4761
  * "data": [
4700
4762
  * {
4701
4763
  * "api_format": "openai",
4702
- * "api_key": "sk-****",
4703
4764
  * "base_url": "https://api.openai.com/v1",
4765
+ * "has_api_key": true,
4704
4766
  * "id": "openai-gpt4"
4705
4767
  * }
4706
4768
  * ],
@@ -4708,7 +4770,7 @@ export interface operations {
4708
4770
  * "page_size": 10,
4709
4771
  * "total": 1
4710
4772
  * } */
4711
- "application/json": components["schemas"]["PaginatedApiModelResponse"];
4773
+ "application/json": components["schemas"]["PaginatedApiModelOutput"];
4712
4774
  };
4713
4775
  };
4714
4776
  /** @description Invalid request parameters */
@@ -4758,7 +4820,7 @@ export interface operations {
4758
4820
  };
4759
4821
  requestBody: {
4760
4822
  content: {
4761
- "application/json": components["schemas"]["CreateApiModelRequest"];
4823
+ "application/json": components["schemas"]["ApiModelRequest"];
4762
4824
  };
4763
4825
  };
4764
4826
  responses: {
@@ -4768,7 +4830,7 @@ export interface operations {
4768
4830
  [name: string]: unknown;
4769
4831
  };
4770
4832
  content: {
4771
- "application/json": components["schemas"]["ApiModelResponse"];
4833
+ "application/json": components["schemas"]["ApiModelOutput"];
4772
4834
  };
4773
4835
  };
4774
4836
  /** @description Invalid request parameters */
@@ -5022,12 +5084,14 @@ export interface operations {
5022
5084
  content: {
5023
5085
  /** @example {
5024
5086
  * "api_format": "openai",
5025
- * "api_key": "sk-****",
5026
5087
  * "base_url": "https://api.openai.com/v1",
5088
+ * "has_api_key": true,
5027
5089
  * "id": "openai-gpt4",
5028
- * "model": "gpt-4"
5090
+ * "models": [
5091
+ * "gpt-4"
5092
+ * ]
5029
5093
  * } */
5030
- "application/json": components["schemas"]["ApiModelResponse"];
5094
+ "application/json": components["schemas"]["ApiModelOutput"];
5031
5095
  };
5032
5096
  };
5033
5097
  /** @description Invalid request parameters */
@@ -5096,7 +5160,7 @@ export interface operations {
5096
5160
  };
5097
5161
  requestBody: {
5098
5162
  content: {
5099
- "application/json": components["schemas"]["UpdateApiModelRequest"];
5163
+ "application/json": components["schemas"]["ApiModelRequest"];
5100
5164
  };
5101
5165
  };
5102
5166
  responses: {
@@ -5106,7 +5170,7 @@ export interface operations {
5106
5170
  [name: string]: unknown;
5107
5171
  };
5108
5172
  content: {
5109
- "application/json": components["schemas"]["ApiModelResponse"];
5173
+ "application/json": components["schemas"]["ApiModelOutput"];
5110
5174
  };
5111
5175
  };
5112
5176
  /** @description Invalid request parameters */
@@ -5245,10 +5309,10 @@ export interface operations {
5245
5309
  content: {
5246
5310
  /** @example {
5247
5311
  * "api_format": "openai",
5248
- * "api_key_masked": "sk-****1234",
5249
5312
  * "base_url": "https://api.openai.com/v1",
5250
5313
  * "created_at": "2024-01-01T00:00:00Z",
5251
5314
  * "forward_all_with_prefix": false,
5315
+ * "has_api_key": true,
5252
5316
  * "id": "openai-gpt4",
5253
5317
  * "models": [
5254
5318
  * "gpt-4",
@@ -5258,7 +5322,7 @@ export interface operations {
5258
5322
  * "prefix": null,
5259
5323
  * "updated_at": "2024-01-01T00:00:00Z"
5260
5324
  * } */
5261
- "application/json": components["schemas"]["ApiModelResponse"];
5325
+ "application/json": components["schemas"]["ApiModelOutput"];
5262
5326
  };
5263
5327
  };
5264
5328
  /** @description Invalid request parameters */
@@ -5313,21 +5377,168 @@ export interface operations {
5313
5377
  app_client_id: string;
5314
5378
  };
5315
5379
  header?: never;
5316
- path: {
5317
- /** @description Access request ID */
5318
- id: string;
5319
- };
5380
+ path: {
5381
+ /** @description Access request ID */
5382
+ id: string;
5383
+ };
5384
+ cookie?: never;
5385
+ };
5386
+ requestBody?: never;
5387
+ responses: {
5388
+ /** @description Status retrieved */
5389
+ 200: {
5390
+ headers: {
5391
+ [name: string]: unknown;
5392
+ };
5393
+ content: {
5394
+ "application/json": components["schemas"]["AccessRequestStatusResponse"];
5395
+ };
5396
+ };
5397
+ /** @description Invalid request parameters */
5398
+ 400: {
5399
+ headers: {
5400
+ [name: string]: unknown;
5401
+ };
5402
+ content: {
5403
+ "application/json": components["schemas"]["OpenAIApiError"];
5404
+ };
5405
+ };
5406
+ /** @description Not authenticated */
5407
+ 401: {
5408
+ headers: {
5409
+ [name: string]: unknown;
5410
+ };
5411
+ content: {
5412
+ "application/json": components["schemas"]["OpenAIApiError"];
5413
+ };
5414
+ };
5415
+ /** @description Insufficient permissions */
5416
+ 403: {
5417
+ headers: {
5418
+ [name: string]: unknown;
5419
+ };
5420
+ content: {
5421
+ "application/json": components["schemas"]["OpenAIApiError"];
5422
+ };
5423
+ };
5424
+ /** @description Not found or app_client_id mismatch */
5425
+ 404: {
5426
+ headers: {
5427
+ [name: string]: unknown;
5428
+ };
5429
+ content: {
5430
+ "application/json": components["schemas"]["OpenAIApiError"];
5431
+ };
5432
+ };
5433
+ /** @description Internal server error */
5434
+ 500: {
5435
+ headers: {
5436
+ [name: string]: unknown;
5437
+ };
5438
+ content: {
5439
+ "application/json": components["schemas"]["OpenAIApiError"];
5440
+ };
5441
+ };
5442
+ };
5443
+ };
5444
+ createAccessRequest: {
5445
+ parameters: {
5446
+ query?: never;
5447
+ header?: never;
5448
+ path?: never;
5449
+ cookie?: never;
5450
+ };
5451
+ /** @description Access request details */
5452
+ requestBody: {
5453
+ content: {
5454
+ "application/json": components["schemas"]["CreateAccessRequest"];
5455
+ };
5456
+ };
5457
+ responses: {
5458
+ /** @description Access request created */
5459
+ 201: {
5460
+ headers: {
5461
+ [name: string]: unknown;
5462
+ };
5463
+ content: {
5464
+ "application/json": components["schemas"]["CreateAccessRequestResponse"];
5465
+ };
5466
+ };
5467
+ /** @description Invalid request parameters */
5468
+ 400: {
5469
+ headers: {
5470
+ [name: string]: unknown;
5471
+ };
5472
+ content: {
5473
+ "application/json": components["schemas"]["OpenAIApiError"];
5474
+ };
5475
+ };
5476
+ /** @description Not authenticated */
5477
+ 401: {
5478
+ headers: {
5479
+ [name: string]: unknown;
5480
+ };
5481
+ content: {
5482
+ "application/json": components["schemas"]["OpenAIApiError"];
5483
+ };
5484
+ };
5485
+ /** @description Insufficient permissions */
5486
+ 403: {
5487
+ headers: {
5488
+ [name: string]: unknown;
5489
+ };
5490
+ content: {
5491
+ "application/json": components["schemas"]["OpenAIApiError"];
5492
+ };
5493
+ };
5494
+ /** @description App client not found */
5495
+ 404: {
5496
+ headers: {
5497
+ [name: string]: unknown;
5498
+ };
5499
+ content: {
5500
+ "application/json": components["schemas"]["OpenAIApiError"];
5501
+ };
5502
+ };
5503
+ /** @description Internal server error */
5504
+ 500: {
5505
+ headers: {
5506
+ [name: string]: unknown;
5507
+ };
5508
+ content: {
5509
+ "application/json": components["schemas"]["OpenAIApiError"];
5510
+ };
5511
+ };
5512
+ };
5513
+ };
5514
+ completeOAuthFlow: {
5515
+ parameters: {
5516
+ query?: never;
5517
+ header?: never;
5518
+ path?: never;
5320
5519
  cookie?: never;
5321
5520
  };
5322
- requestBody?: never;
5521
+ /** @description OAuth callback parameters from authorization server */
5522
+ requestBody: {
5523
+ content: {
5524
+ /** @example {
5525
+ * "code": "auth_code_123",
5526
+ * "state": "random_state_456"
5527
+ * } */
5528
+ "application/json": components["schemas"]["AuthCallbackRequest"];
5529
+ };
5530
+ };
5323
5531
  responses: {
5324
- /** @description Status retrieved */
5532
+ /** @description OAuth flow completed successfully, user authenticated */
5325
5533
  200: {
5326
5534
  headers: {
5327
5535
  [name: string]: unknown;
5328
5536
  };
5329
5537
  content: {
5330
- "application/json": components["schemas"]["AccessRequestStatusResponse"];
5538
+ /** @example {
5539
+ * "location": "https://app.example.com/dashboard"
5540
+ * } */
5541
+ "application/json": components["schemas"]["RedirectResponse"];
5331
5542
  };
5332
5543
  };
5333
5544
  /** @description Invalid request parameters */
@@ -5357,12 +5568,19 @@ export interface operations {
5357
5568
  "application/json": components["schemas"]["OpenAIApiError"];
5358
5569
  };
5359
5570
  };
5360
- /** @description Not found or app_client_id mismatch */
5361
- 404: {
5571
+ /** @description OAuth error, invalid request parameters, or state mismatch */
5572
+ 422: {
5362
5573
  headers: {
5363
5574
  [name: string]: unknown;
5364
5575
  };
5365
5576
  content: {
5577
+ /** @example {
5578
+ * "error": {
5579
+ * "code": "oauth_state_mismatch",
5580
+ * "message": "State parameter mismatch",
5581
+ * "type": "invalid_request_error"
5582
+ * }
5583
+ * } */
5366
5584
  "application/json": components["schemas"]["OpenAIApiError"];
5367
5585
  };
5368
5586
  };
@@ -5377,27 +5595,27 @@ export interface operations {
5377
5595
  };
5378
5596
  };
5379
5597
  };
5380
- createAccessRequest: {
5598
+ completeDashboardOAuthFlow: {
5381
5599
  parameters: {
5382
5600
  query?: never;
5383
5601
  header?: never;
5384
5602
  path?: never;
5385
5603
  cookie?: never;
5386
5604
  };
5387
- /** @description Access request details */
5605
+ /** @description OAuth callback parameters from authorization server */
5388
5606
  requestBody: {
5389
5607
  content: {
5390
- "application/json": components["schemas"]["CreateAccessRequestBody"];
5608
+ "application/json": components["schemas"]["AuthCallbackRequest"];
5391
5609
  };
5392
5610
  };
5393
5611
  responses: {
5394
- /** @description Access request created */
5395
- 201: {
5612
+ /** @description Dashboard OAuth flow completed successfully */
5613
+ 200: {
5396
5614
  headers: {
5397
5615
  [name: string]: unknown;
5398
5616
  };
5399
5617
  content: {
5400
- "application/json": components["schemas"]["CreateAccessRequestResponse"];
5618
+ "application/json": components["schemas"]["RedirectResponse"];
5401
5619
  };
5402
5620
  };
5403
5621
  /** @description Invalid request parameters */
@@ -5427,15 +5645,6 @@ export interface operations {
5427
5645
  "application/json": components["schemas"]["OpenAIApiError"];
5428
5646
  };
5429
5647
  };
5430
- /** @description App client not found */
5431
- 404: {
5432
- headers: {
5433
- [name: string]: unknown;
5434
- };
5435
- content: {
5436
- "application/json": components["schemas"]["OpenAIApiError"];
5437
- };
5438
- };
5439
5648
  /** @description Internal server error */
5440
5649
  500: {
5441
5650
  headers: {
@@ -5447,47 +5656,39 @@ export interface operations {
5447
5656
  };
5448
5657
  };
5449
5658
  };
5450
- completeOAuthFlow: {
5659
+ initiateDashboardOAuthFlow: {
5451
5660
  parameters: {
5452
5661
  query?: never;
5453
5662
  header?: never;
5454
5663
  path?: never;
5455
5664
  cookie?: never;
5456
5665
  };
5457
- /** @description OAuth callback parameters from authorization server */
5458
5666
  requestBody: {
5459
5667
  content: {
5460
- /** @example {
5461
- * "code": "auth_code_123",
5462
- * "state": "random_state_456"
5463
- * } */
5464
- "application/json": components["schemas"]["AuthCallbackRequest"];
5668
+ "application/json": unknown;
5465
5669
  };
5466
5670
  };
5467
5671
  responses: {
5468
- /** @description OAuth flow completed successfully, user authenticated */
5672
+ /** @description User already has a valid dashboard token */
5469
5673
  200: {
5470
5674
  headers: {
5471
5675
  [name: string]: unknown;
5472
5676
  };
5473
5677
  content: {
5474
- /** @example {
5475
- * "location": "https://app.example.com/dashboard"
5476
- * } */
5477
5678
  "application/json": components["schemas"]["RedirectResponse"];
5478
5679
  };
5479
5680
  };
5480
- /** @description Invalid request parameters */
5481
- 400: {
5681
+ /** @description OAuth authorization URL provided for dashboard login */
5682
+ 201: {
5482
5683
  headers: {
5483
5684
  [name: string]: unknown;
5484
5685
  };
5485
5686
  content: {
5486
- "application/json": components["schemas"]["OpenAIApiError"];
5687
+ "application/json": components["schemas"]["RedirectResponse"];
5487
5688
  };
5488
5689
  };
5489
- /** @description Not authenticated */
5490
- 401: {
5690
+ /** @description Invalid request parameters */
5691
+ 400: {
5491
5692
  headers: {
5492
5693
  [name: string]: unknown;
5493
5694
  };
@@ -5495,8 +5696,8 @@ export interface operations {
5495
5696
  "application/json": components["schemas"]["OpenAIApiError"];
5496
5697
  };
5497
5698
  };
5498
- /** @description Insufficient permissions */
5499
- 403: {
5699
+ /** @description Not authenticated */
5700
+ 401: {
5500
5701
  headers: {
5501
5702
  [name: string]: unknown;
5502
5703
  };
@@ -5504,19 +5705,12 @@ export interface operations {
5504
5705
  "application/json": components["schemas"]["OpenAIApiError"];
5505
5706
  };
5506
5707
  };
5507
- /** @description OAuth error, invalid request parameters, or state mismatch */
5508
- 422: {
5708
+ /** @description Insufficient permissions */
5709
+ 403: {
5509
5710
  headers: {
5510
5711
  [name: string]: unknown;
5511
5712
  };
5512
5713
  content: {
5513
- /** @example {
5514
- * "error": {
5515
- * "code": "oauth_state_mismatch",
5516
- * "message": "State parameter mismatch",
5517
- * "type": "invalid_request_error"
5518
- * }
5519
- * } */
5520
5714
  "application/json": components["schemas"]["OpenAIApiError"];
5521
5715
  };
5522
5716
  };
@@ -5538,9 +5732,10 @@ export interface operations {
5538
5732
  path?: never;
5539
5733
  cookie?: never;
5540
5734
  };
5735
+ /** @description OAuth initiate parameters */
5541
5736
  requestBody: {
5542
5737
  content: {
5543
- "application/json": unknown;
5738
+ "application/json": components["schemas"]["AuthInitiateRequest"];
5544
5739
  };
5545
5740
  };
5546
5741
  responses: {
@@ -5622,7 +5817,9 @@ export interface operations {
5622
5817
  };
5623
5818
  content: {
5624
5819
  /** @example {
5820
+ * "client_id": "my-client-id",
5625
5821
  * "commit_sha": "abc1234",
5822
+ * "deployment": "standalone",
5626
5823
  * "status": "ready",
5627
5824
  * "version": "0.1.0"
5628
5825
  * } */
@@ -5773,7 +5970,7 @@ export interface operations {
5773
5970
  };
5774
5971
  requestBody: {
5775
5972
  content: {
5776
- "application/json": components["schemas"]["CreateMcpRequest"];
5973
+ "application/json": components["schemas"]["McpRequest"];
5777
5974
  };
5778
5975
  };
5779
5976
  responses: {
@@ -5783,7 +5980,7 @@ export interface operations {
5783
5980
  [name: string]: unknown;
5784
5981
  };
5785
5982
  content: {
5786
- "application/json": components["schemas"]["McpResponse"];
5983
+ "application/json": components["schemas"]["Mcp"];
5787
5984
  };
5788
5985
  };
5789
5986
  /** @description Invalid request parameters */
@@ -5891,7 +6088,7 @@ export interface operations {
5891
6088
  };
5892
6089
  requestBody: {
5893
6090
  content: {
5894
- "application/json": components["schemas"]["CreateAuthConfigBody"];
6091
+ "application/json": components["schemas"]["CreateAuthConfig"];
5895
6092
  };
5896
6093
  };
5897
6094
  responses: {
@@ -6657,7 +6854,7 @@ export interface operations {
6657
6854
  };
6658
6855
  requestBody: {
6659
6856
  content: {
6660
- "application/json": components["schemas"]["CreateMcpServerRequest"];
6857
+ "application/json": components["schemas"]["McpServerRequest"];
6661
6858
  };
6662
6859
  };
6663
6860
  responses: {
@@ -6793,7 +6990,7 @@ export interface operations {
6793
6990
  };
6794
6991
  requestBody: {
6795
6992
  content: {
6796
- "application/json": components["schemas"]["UpdateMcpServerRequest"];
6993
+ "application/json": components["schemas"]["McpServerRequest"];
6797
6994
  };
6798
6995
  };
6799
6996
  responses: {
@@ -6876,7 +7073,7 @@ export interface operations {
6876
7073
  [name: string]: unknown;
6877
7074
  };
6878
7075
  content: {
6879
- "application/json": components["schemas"]["McpResponse"];
7076
+ "application/json": components["schemas"]["Mcp"];
6880
7077
  };
6881
7078
  };
6882
7079
  /** @description Invalid request parameters */
@@ -6936,7 +7133,7 @@ export interface operations {
6936
7133
  };
6937
7134
  requestBody: {
6938
7135
  content: {
6939
- "application/json": components["schemas"]["UpdateMcpRequest"];
7136
+ "application/json": components["schemas"]["McpRequest"];
6940
7137
  };
6941
7138
  };
6942
7139
  responses: {
@@ -6946,7 +7143,7 @@ export interface operations {
6946
7143
  [name: string]: unknown;
6947
7144
  };
6948
7145
  content: {
6949
- "application/json": components["schemas"]["McpResponse"];
7146
+ "application/json": components["schemas"]["Mcp"];
6950
7147
  };
6951
7148
  };
6952
7149
  /** @description Invalid request parameters */
@@ -7649,7 +7846,7 @@ export interface operations {
7649
7846
  };
7650
7847
  requestBody: {
7651
7848
  content: {
7652
- "application/json": components["schemas"]["CreateAliasRequest"];
7849
+ "application/json": components["schemas"]["UserAliasRequest"];
7653
7850
  };
7654
7851
  };
7655
7852
  responses: {
@@ -7867,7 +8064,7 @@ export interface operations {
7867
8064
  };
7868
8065
  requestBody: {
7869
8066
  content: {
7870
- "application/json": components["schemas"]["UpdateAliasRequest"];
8067
+ "application/json": components["schemas"]["UserAliasRequest"];
7871
8068
  };
7872
8069
  };
7873
8070
  responses: {
@@ -8282,7 +8479,7 @@ export interface operations {
8282
8479
  content: {
8283
8480
  /** @example {
8284
8481
  * "error": {
8285
- * "code": "settings_error-invalid_setting",
8482
+ * "code": "settings_route_error-not_found",
8286
8483
  * "message": "Setting not found: INVALID_KEY",
8287
8484
  * "type": "not_found_error"
8288
8485
  * }
@@ -8376,7 +8573,7 @@ export interface operations {
8376
8573
  content: {
8377
8574
  /** @example {
8378
8575
  * "error": {
8379
- * "code": "settings_error-not_found",
8576
+ * "code": "settings_route_error-not_found",
8380
8577
  * "message": "Setting not found: INVALID_KEY",
8381
8578
  * "type": "not_found_error"
8382
8579
  * }
@@ -8445,6 +8642,180 @@ export interface operations {
8445
8642
  };
8446
8643
  };
8447
8644
  };
8645
+ tenantsList: {
8646
+ parameters: {
8647
+ query?: never;
8648
+ header?: never;
8649
+ path?: never;
8650
+ cookie?: never;
8651
+ };
8652
+ requestBody?: never;
8653
+ responses: {
8654
+ /** @description List of tenants */
8655
+ 200: {
8656
+ headers: {
8657
+ [name: string]: unknown;
8658
+ };
8659
+ content: {
8660
+ "application/json": components["schemas"]["TenantListResponse"];
8661
+ };
8662
+ };
8663
+ /** @description Invalid request parameters */
8664
+ 400: {
8665
+ headers: {
8666
+ [name: string]: unknown;
8667
+ };
8668
+ content: {
8669
+ "application/json": components["schemas"]["OpenAIApiError"];
8670
+ };
8671
+ };
8672
+ /** @description Not authenticated */
8673
+ 401: {
8674
+ headers: {
8675
+ [name: string]: unknown;
8676
+ };
8677
+ content: {
8678
+ "application/json": components["schemas"]["OpenAIApiError"];
8679
+ };
8680
+ };
8681
+ /** @description Insufficient permissions */
8682
+ 403: {
8683
+ headers: {
8684
+ [name: string]: unknown;
8685
+ };
8686
+ content: {
8687
+ "application/json": components["schemas"]["OpenAIApiError"];
8688
+ };
8689
+ };
8690
+ /** @description Internal server error */
8691
+ 500: {
8692
+ headers: {
8693
+ [name: string]: unknown;
8694
+ };
8695
+ content: {
8696
+ "application/json": components["schemas"]["OpenAIApiError"];
8697
+ };
8698
+ };
8699
+ };
8700
+ };
8701
+ tenantsCreate: {
8702
+ parameters: {
8703
+ query?: never;
8704
+ header?: never;
8705
+ path?: never;
8706
+ cookie?: never;
8707
+ };
8708
+ /** @description Tenant creation parameters */
8709
+ requestBody: {
8710
+ content: {
8711
+ "application/json": components["schemas"]["CreateTenantRequest"];
8712
+ };
8713
+ };
8714
+ responses: {
8715
+ /** @description Tenant created successfully */
8716
+ 201: {
8717
+ headers: {
8718
+ [name: string]: unknown;
8719
+ };
8720
+ content: {
8721
+ "application/json": components["schemas"]["CreateTenantResponse"];
8722
+ };
8723
+ };
8724
+ /** @description Invalid request parameters */
8725
+ 400: {
8726
+ headers: {
8727
+ [name: string]: unknown;
8728
+ };
8729
+ content: {
8730
+ "application/json": components["schemas"]["OpenAIApiError"];
8731
+ };
8732
+ };
8733
+ /** @description Not authenticated */
8734
+ 401: {
8735
+ headers: {
8736
+ [name: string]: unknown;
8737
+ };
8738
+ content: {
8739
+ "application/json": components["schemas"]["OpenAIApiError"];
8740
+ };
8741
+ };
8742
+ /** @description Insufficient permissions */
8743
+ 403: {
8744
+ headers: {
8745
+ [name: string]: unknown;
8746
+ };
8747
+ content: {
8748
+ "application/json": components["schemas"]["OpenAIApiError"];
8749
+ };
8750
+ };
8751
+ /** @description Internal server error */
8752
+ 500: {
8753
+ headers: {
8754
+ [name: string]: unknown;
8755
+ };
8756
+ content: {
8757
+ "application/json": components["schemas"]["OpenAIApiError"];
8758
+ };
8759
+ };
8760
+ };
8761
+ };
8762
+ tenantsActivate: {
8763
+ parameters: {
8764
+ query?: never;
8765
+ header?: never;
8766
+ path: {
8767
+ /** @description The client_id of the tenant to activate */
8768
+ client_id: string;
8769
+ };
8770
+ cookie?: never;
8771
+ };
8772
+ requestBody?: never;
8773
+ responses: {
8774
+ /** @description Tenant activated successfully */
8775
+ 200: {
8776
+ headers: {
8777
+ [name: string]: unknown;
8778
+ };
8779
+ content?: never;
8780
+ };
8781
+ /** @description Invalid request parameters */
8782
+ 400: {
8783
+ headers: {
8784
+ [name: string]: unknown;
8785
+ };
8786
+ content: {
8787
+ "application/json": components["schemas"]["OpenAIApiError"];
8788
+ };
8789
+ };
8790
+ /** @description Not authenticated */
8791
+ 401: {
8792
+ headers: {
8793
+ [name: string]: unknown;
8794
+ };
8795
+ content: {
8796
+ "application/json": components["schemas"]["OpenAIApiError"];
8797
+ };
8798
+ };
8799
+ /** @description Insufficient permissions */
8800
+ 403: {
8801
+ headers: {
8802
+ [name: string]: unknown;
8803
+ };
8804
+ content: {
8805
+ "application/json": components["schemas"]["OpenAIApiError"];
8806
+ };
8807
+ };
8808
+ /** @description Internal server error */
8809
+ 500: {
8810
+ headers: {
8811
+ [name: string]: unknown;
8812
+ };
8813
+ content: {
8814
+ "application/json": components["schemas"]["OpenAIApiError"];
8815
+ };
8816
+ };
8817
+ };
8818
+ };
8448
8819
  listApiTokens: {
8449
8820
  parameters: {
8450
8821
  query?: {
@@ -8494,7 +8865,7 @@ export interface operations {
8494
8865
  * "page_size": 10,
8495
8866
  * "total": 2
8496
8867
  * } */
8497
- "application/json": components["schemas"]["PaginatedApiTokenResponse"];
8868
+ "application/json": components["schemas"]["PaginatedTokenResponse"];
8498
8869
  };
8499
8870
  };
8500
8871
  /** @description Invalid request parameters */
@@ -8551,7 +8922,7 @@ export interface operations {
8551
8922
  * "scope_token_user"
8552
8923
  * ]
8553
8924
  * } */
8554
- "application/json": components["schemas"]["CreateApiTokenRequest"];
8925
+ "application/json": components["schemas"]["CreateTokenRequest"];
8555
8926
  };
8556
8927
  };
8557
8928
  responses: {
@@ -8564,7 +8935,7 @@ export interface operations {
8564
8935
  /** @example {
8565
8936
  * "token": "bodhiapp_1234567890abcdef"
8566
8937
  * } */
8567
- "application/json": components["schemas"]["ApiTokenResponse"];
8938
+ "application/json": components["schemas"]["TokenCreated"];
8568
8939
  };
8569
8940
  };
8570
8941
  /** @description Invalid request parameters */
@@ -8625,7 +8996,7 @@ export interface operations {
8625
8996
  * "name": "Updated Token Name",
8626
8997
  * "status": "inactive"
8627
8998
  * } */
8628
- "application/json": components["schemas"]["UpdateApiTokenRequest"];
8999
+ "application/json": components["schemas"]["UpdateTokenRequest"];
8629
9000
  };
8630
9001
  };
8631
9002
  responses: {
@@ -8644,7 +9015,7 @@ export interface operations {
8644
9015
  * "updated_at": "2024-11-10T04:52:06.786Z",
8645
9016
  * "user_id": "auth0|123456789"
8646
9017
  * } */
8647
- "application/json": components["schemas"]["ApiToken"];
9018
+ "application/json": components["schemas"]["TokenDetail"];
8648
9019
  };
8649
9020
  };
8650
9021
  /** @description Invalid request parameters */
@@ -8954,7 +9325,7 @@ export interface operations {
8954
9325
  };
8955
9326
  requestBody: {
8956
9327
  content: {
8957
- "application/json": components["schemas"]["CreateToolsetRequest"];
9328
+ "application/json": components["schemas"]["ToolsetRequest"];
8958
9329
  };
8959
9330
  };
8960
9331
  responses: {
@@ -9090,7 +9461,7 @@ export interface operations {
9090
9461
  };
9091
9462
  requestBody: {
9092
9463
  content: {
9093
- "application/json": components["schemas"]["UpdateToolsetRequest"];
9464
+ "application/json": components["schemas"]["ToolsetRequest"];
9094
9465
  };
9095
9466
  };
9096
9467
  responses: {
@@ -9306,7 +9677,7 @@ export interface operations {
9306
9677
  [name: string]: unknown;
9307
9678
  };
9308
9679
  content: {
9309
- "application/json": components["schemas"]["UserResponse"];
9680
+ "application/json": components["schemas"]["UserInfoEnvelope"];
9310
9681
  };
9311
9682
  };
9312
9683
  /** @description Invalid request parameters */