@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.
@@ -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,41 +1546,44 @@ 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",
1510
1588
  * "version": "0.1.0"
1511
1589
  * }
@@ -1523,13 +1601,20 @@ export interface components {
1523
1601
  commit_sha: string;
1524
1602
  /** @description Current application setup and operational status */
1525
1603
  status: components["schemas"]["AppStatus"];
1604
+ /** @description Deployment mode: "standalone" or "multi_tenant" */
1605
+ deployment: components["schemas"]["DeploymentMode"];
1606
+ /**
1607
+ * @description Active tenant's OAuth client_id (present when authenticated with an active tenant)
1608
+ * @example my-client-id
1609
+ */
1610
+ client_id?: string | null;
1526
1611
  };
1527
1612
  AppRole: components["schemas"]["ResourceRole"] | components["schemas"]["TokenScope"] | components["schemas"]["UserScope"];
1528
1613
  /**
1529
1614
  * @example ready
1530
1615
  * @enum {string}
1531
1616
  */
1532
- AppStatus: "setup" | "ready" | "resource_admin";
1617
+ AppStatus: "setup" | "ready" | "resource_admin" | "tenant_selection";
1533
1618
  /** @description Application-level toolset configuration */
1534
1619
  AppToolsetConfig: {
1535
1620
  /** @description Toolset type identifier (e.g., "builtin-exa-search") */
@@ -1557,7 +1642,9 @@ export interface components {
1557
1642
  };
1558
1643
  /** @enum {string} */
1559
1644
  ApprovalStatus: "approved" | "denied";
1560
- /** @example {
1645
+ /**
1646
+ * @description Request for approving an app access request
1647
+ * @example {
1561
1648
  * "approved": {
1562
1649
  * "mcps": [
1563
1650
  * {
@@ -1579,8 +1666,9 @@ export interface components {
1579
1666
  * ]
1580
1667
  * },
1581
1668
  * "approved_role": "scope_user_user"
1582
- * } */
1583
- ApproveAccessRequestBody: {
1669
+ * }
1670
+ */
1671
+ ApproveAccessRequest: {
1584
1672
  /** @description Role to grant for the approved request (scope_user_user or scope_user_power_user) */
1585
1673
  approved_role: components["schemas"]["UserScope"];
1586
1674
  /** @description Approved resources with selections */
@@ -1628,13 +1716,23 @@ export interface components {
1628
1716
  } & {
1629
1717
  [key: string]: string;
1630
1718
  };
1631
- /** @description Change user role request */
1632
- ChangeRoleRequest: {
1719
+ /**
1720
+ * @description Request body for initiating OAuth authentication
1721
+ * @example {
1722
+ * "client_id": "my-client-id"
1723
+ * }
1724
+ */
1725
+ AuthInitiateRequest: {
1633
1726
  /**
1634
- * @description Role to assign to the user
1635
- * @example resource_manager
1727
+ * @description The OAuth client_id of the tenant to authenticate with
1728
+ * @example my-client-id
1636
1729
  */
1637
- role: string;
1730
+ client_id: string;
1731
+ };
1732
+ /** @description Change user role request */
1733
+ ChangeRoleRequest: {
1734
+ /** @description Role to assign to the user */
1735
+ role: components["schemas"]["ResourceRole"];
1638
1736
  };
1639
1737
  ChatChoice: {
1640
1738
  /**
@@ -2032,7 +2130,9 @@ export interface components {
2032
2130
  CopyAliasRequest: {
2033
2131
  alias: string;
2034
2132
  };
2035
- /** @example {
2133
+ /**
2134
+ * @description Request for creating an app access request
2135
+ * @example {
2036
2136
  * "app_client_id": "my-app-client",
2037
2137
  * "flow_type": "redirect",
2038
2138
  * "redirect_url": "https://myapp.com/callback",
@@ -2044,8 +2144,9 @@ export interface components {
2044
2144
  * ]
2045
2145
  * },
2046
2146
  * "requested_role": "scope_user_user"
2047
- * } */
2048
- CreateAccessRequestBody: {
2147
+ * }
2148
+ */
2149
+ CreateAccessRequest: {
2049
2150
  /** @description App client ID from Keycloak */
2050
2151
  app_client_id: string;
2051
2152
  /** @description Flow type: "redirect" or "popup" */
@@ -2069,59 +2170,8 @@ export interface components {
2069
2170
  /** @description Review URL for user to approve/deny */
2070
2171
  review_url: string;
2071
2172
  };
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
2173
  /** @description Wrapper for creating auth configs with server_id in body instead of path */
2124
- CreateAuthConfigBody: components["schemas"]["CreateMcpAuthConfigRequest"] & {
2174
+ CreateAuthConfig: components["schemas"]["CreateMcpAuthConfigRequest"] & {
2125
2175
  mcp_server_id: string;
2126
2176
  };
2127
2177
  CreateChatCompletionRequest: {
@@ -2399,36 +2449,25 @@ export interface components {
2399
2449
  /** @enum {string} */
2400
2450
  type: "oauth";
2401
2451
  };
2402
- CreateMcpRequest: {
2452
+ CreateTenantRequest: {
2403
2453
  name: string;
2404
- slug: string;
2405
- mcp_server_id: string;
2406
2454
  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
2455
  };
2413
- CreateMcpServerRequest: {
2414
- url: string;
2415
- name: string;
2416
- description?: string | null;
2417
- enabled: boolean;
2418
- auth_config?: null | components["schemas"]["CreateMcpAuthConfigRequest"];
2456
+ CreateTenantResponse: {
2457
+ client_id: string;
2419
2458
  };
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;
2459
+ /** @example {
2460
+ * "name": "My Integration Token",
2461
+ * "scope": "scope_token_user"
2462
+ * } */
2463
+ CreateTokenRequest: {
2464
+ /**
2465
+ * @description Descriptive name for the API token
2466
+ * @example My Integration Token
2467
+ */
2468
+ name?: string | null;
2469
+ /** @description Token scope defining access level */
2470
+ scope: components["schemas"]["TokenScope"];
2432
2471
  };
2433
2472
  CustomGrammarFormatParam: {
2434
2473
  /** @description The grammar definition. */
@@ -2465,31 +2504,24 @@ export interface components {
2465
2504
  /** @enum {string} */
2466
2505
  type: "grammar";
2467
2506
  };
2507
+ /** @enum {string} */
2508
+ DeploymentMode: "standalone" | "multi_tenant";
2468
2509
  DownloadRequest: {
2469
2510
  id: string;
2470
2511
  repo: string;
2471
2512
  filename: string;
2472
2513
  status: components["schemas"]["DownloadStatus"];
2473
2514
  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
2515
  /** Format: int64 */
2485
2516
  total_bytes?: number | null;
2486
2517
  /** Format: int64 */
2487
- downloaded_bytes?: number;
2488
- /**
2489
- * Format: date-time
2490
- * @example 2024-11-10T04:52:06.786Z
2491
- */
2492
- started_at: string;
2518
+ downloaded_bytes: number;
2519
+ /** Format: date-time */
2520
+ started_at?: string | null;
2521
+ /** Format: date-time */
2522
+ created_at: string;
2523
+ /** Format: date-time */
2524
+ updated_at: string;
2493
2525
  };
2494
2526
  /** @enum {string} */
2495
2527
  DownloadStatus: "pending" | "completed" | "error";
@@ -2689,7 +2721,7 @@ export interface components {
2689
2721
  mcp_servers: components["schemas"]["McpServerResponse"][];
2690
2722
  };
2691
2723
  ListMcpsResponse: {
2692
- mcps: components["schemas"]["McpResponse"][];
2724
+ mcps: components["schemas"]["Mcp"][];
2693
2725
  };
2694
2726
  ListModelResponse: {
2695
2727
  object: string;
@@ -2704,7 +2736,8 @@ export interface components {
2704
2736
  toolsets: components["schemas"]["ToolsetResponse"][];
2705
2737
  toolset_types: components["schemas"]["AppToolsetConfig"][];
2706
2738
  };
2707
- /** @description List users query parameters */
2739
+ /** @description List users query parameters. Intentionally omits sort fields (unlike PaginationSortParams)
2740
+ * because user listing is fetched from the auth service which handles its own ordering. */
2708
2741
  ListUsersParams: {
2709
2742
  /**
2710
2743
  * Format: int32
@@ -2717,6 +2750,7 @@ export interface components {
2717
2750
  */
2718
2751
  page_size?: number | null;
2719
2752
  };
2753
+ /** @description Local model file response */
2720
2754
  LocalModelResponse: {
2721
2755
  repo: string;
2722
2756
  filename: string;
@@ -2784,7 +2818,6 @@ export interface components {
2784
2818
  mcp_server_id: string;
2785
2819
  header_key: string;
2786
2820
  has_header_value: boolean;
2787
- created_by: string;
2788
2821
  /** Format: date-time */
2789
2822
  created_at: string;
2790
2823
  /** Format: date-time */
@@ -2806,7 +2839,6 @@ export interface components {
2806
2839
  token_endpoint_auth_method?: string | null;
2807
2840
  has_client_secret: boolean;
2808
2841
  has_registration_access_token: boolean;
2809
- created_by: string;
2810
2842
  /** Format: date-time */
2811
2843
  created_at: string;
2812
2844
  /** Format: date-time */
@@ -2830,19 +2862,26 @@ export interface components {
2830
2862
  McpInstance: {
2831
2863
  id: string;
2832
2864
  };
2833
- McpResponse: {
2834
- id: string;
2835
- mcp_server: components["schemas"]["McpServerInfo"];
2836
- slug: string;
2865
+ /** @description Input for creating or updating an MCP instance. */
2866
+ McpRequest: {
2867
+ /** @description Human-readable name (required) */
2837
2868
  name: string;
2869
+ /** @description User-defined slug for this instance (1-24 chars, alphanumeric + hyphens) */
2870
+ slug: string;
2871
+ /** @description MCP server ID (required for create, ignored for update) */
2872
+ mcp_server_id?: string | null;
2873
+ /** @description Optional description */
2838
2874
  description?: string | null;
2875
+ /** @description Whether this instance is enabled */
2839
2876
  enabled: boolean;
2877
+ /** @description Cached tool schemas from the MCP server (JSON array) */
2840
2878
  tools_cache?: components["schemas"]["McpTool"][] | null;
2879
+ /** @description Whitelisted tool names */
2841
2880
  tools_filter?: string[] | null;
2842
- auth_type: components["schemas"]["McpAuthType"];
2881
+ /** @description Authentication type */
2882
+ auth_type?: components["schemas"]["McpAuthType"];
2883
+ /** @description Reference to auth config */
2843
2884
  auth_uuid?: string | null;
2844
- created_at: string;
2845
- updated_at: string;
2846
2885
  };
2847
2886
  /** @description Admin-managed MCP server registry entry.
2848
2887
  * Admins/managers register MCP server URLs that users can then create instances of. */
@@ -2881,23 +2920,24 @@ export interface components {
2881
2920
  name: string;
2882
2921
  enabled: boolean;
2883
2922
  };
2923
+ /** @description Input for creating or updating an MCP server. */
2884
2924
  McpServerRequest: {
2925
+ /** @description MCP server endpoint URL (trimmed, case-insensitive unique) */
2885
2926
  url: string;
2886
- };
2887
- McpServerResponse: {
2888
- id: string;
2889
- url: string;
2927
+ /** @description Human-readable display name */
2890
2928
  name: string;
2929
+ /** @description Optional description */
2891
2930
  description?: string | null;
2931
+ /** @description Whether this MCP server is enabled */
2892
2932
  enabled: boolean;
2893
- created_by: string;
2894
- updated_by: string;
2933
+ auth_config?: null | components["schemas"]["CreateMcpAuthConfigRequest"];
2934
+ };
2935
+ /** @description MCP server response with computed mcp counts and optional auth config. */
2936
+ McpServerResponse: components["schemas"]["McpServer"] & {
2895
2937
  /** Format: int64 */
2896
2938
  enabled_mcp_count: number;
2897
2939
  /** Format: int64 */
2898
2940
  disabled_mcp_count: number;
2899
- created_at: string;
2900
- updated_at: string;
2901
2941
  auth_config?: null | components["schemas"]["McpAuthConfigResponse"];
2902
2942
  };
2903
2943
  McpServerReviewInfo: {
@@ -2992,7 +3032,7 @@ export interface components {
2992
3032
  models: components["schemas"]["OllamaModel"][];
2993
3033
  };
2994
3034
  /**
2995
- * @description Request to pull a model file from HuggingFace
3035
+ * @description Request for creating a new download request
2996
3036
  * @example {
2997
3037
  * "filename": "mistral-7b-instruct-v0.1.Q4_K_M.gguf",
2998
3038
  * "repo": "TheBloke/Mistral-7B-Instruct-v0.1-GGUF"
@@ -3064,7 +3104,7 @@ export interface components {
3064
3104
  expires_at?: number | null;
3065
3105
  has_access_token: boolean;
3066
3106
  has_refresh_token: boolean;
3067
- created_by: string;
3107
+ user_id: string;
3068
3108
  created_at: string;
3069
3109
  updated_at: string;
3070
3110
  };
@@ -3143,6 +3183,7 @@ export interface components {
3143
3183
  /** Format: int32 */
3144
3184
  num_thread?: number | null;
3145
3185
  };
3186
+ /** @description Paginated list of all model aliases (user, model, and API) */
3146
3187
  PaginatedAliasResponse: {
3147
3188
  data: components["schemas"]["AliasResponse"][];
3148
3189
  total: number;
@@ -3150,30 +3191,32 @@ export interface components {
3150
3191
  page_size: number;
3151
3192
  };
3152
3193
  /** @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"][];
3194
+ PaginatedApiModelOutput: {
3195
+ data: components["schemas"]["ApiModelOutput"][];
3161
3196
  total: number;
3162
3197
  page: number;
3163
3198
  page_size: number;
3164
3199
  };
3200
+ /** @description Paginated list of download requests */
3165
3201
  PaginatedDownloadResponse: {
3166
3202
  data: components["schemas"]["DownloadRequest"][];
3167
3203
  total: number;
3168
3204
  page: number;
3169
3205
  page_size: number;
3170
3206
  };
3207
+ /** @description Paginated list of local model files */
3171
3208
  PaginatedLocalModelResponse: {
3172
3209
  data: components["schemas"]["LocalModelResponse"][];
3173
3210
  total: number;
3174
3211
  page: number;
3175
3212
  page_size: number;
3176
3213
  };
3214
+ PaginatedTokenResponse: {
3215
+ data: components["schemas"]["TokenDetail"][];
3216
+ total: number;
3217
+ page: number;
3218
+ page_size: number;
3219
+ };
3177
3220
  /**
3178
3221
  * @description Paginated response for access requests
3179
3222
  * @example {
@@ -3182,11 +3225,11 @@ export interface components {
3182
3225
  * "requests": [
3183
3226
  * {
3184
3227
  * "created_at": "2024-01-01T12:00:00Z",
3185
- * "email": "user@example.com",
3186
- * "id": 1,
3187
- * "reviewer": null,
3228
+ * "id": "01HXXXXXX",
3188
3229
  * "status": "pending",
3189
- * "updated_at": "2024-01-01T12:00:00Z"
3230
+ * "updated_at": "2024-01-01T12:00:00Z",
3231
+ * "user_id": "auth0|123",
3232
+ * "username": "user@example.com"
3190
3233
  * }
3191
3234
  * ],
3192
3235
  * "total": 1
@@ -3202,6 +3245,7 @@ export interface components {
3202
3245
  /** @description Number of items per page */
3203
3246
  page_size: number;
3204
3247
  };
3248
+ /** @description Paginated list of user-defined model aliases */
3205
3249
  PaginatedUserAliasResponse: {
3206
3250
  data: components["schemas"]["UserAliasResponse"][];
3207
3251
  total: number;
@@ -3324,9 +3368,12 @@ export interface components {
3324
3368
  * @enum {string}
3325
3369
  */
3326
3370
  RegistrationType: "pre_registered" | "dynamic_registration";
3371
+ RequestedMcpServer: {
3372
+ url: string;
3373
+ };
3327
3374
  RequestedResources: {
3328
3375
  toolset_types?: components["schemas"]["ToolsetTypeRequest"][];
3329
- mcp_servers?: components["schemas"]["McpServerRequest"][];
3376
+ mcp_servers?: components["schemas"]["RequestedMcpServer"][];
3330
3377
  };
3331
3378
  /** @enum {string} */
3332
3379
  ResourceRole: "resource_user" | "resource_power_user" | "resource_manager" | "resource_admin";
@@ -3442,6 +3489,16 @@ export interface components {
3442
3489
  template: string;
3443
3490
  };
3444
3491
  StopConfiguration: string | string[];
3492
+ TenantListItem: {
3493
+ client_id: string;
3494
+ name: string;
3495
+ description?: string | null;
3496
+ is_active: boolean;
3497
+ logged_in: boolean;
3498
+ };
3499
+ TenantListResponse: {
3500
+ tenants: components["schemas"]["TenantListItem"][];
3501
+ };
3445
3502
  /** @description Credentials for test/fetch operations */
3446
3503
  TestCreds: {
3447
3504
  /** @description Look up credentials from stored API model */
@@ -3489,6 +3546,28 @@ export interface components {
3489
3546
  response?: string | null;
3490
3547
  error?: string | null;
3491
3548
  };
3549
+ /** @example {
3550
+ * "token": "bodhiapp_1234567890abcdef"
3551
+ * } */
3552
+ TokenCreated: {
3553
+ /**
3554
+ * @description API token with bodhiapp_ prefix for programmatic access
3555
+ * @example bodhiapp_1234567890abcdef
3556
+ */
3557
+ token: string;
3558
+ };
3559
+ TokenDetail: {
3560
+ id: string;
3561
+ user_id: string;
3562
+ name: string;
3563
+ token_prefix: string;
3564
+ scopes: string;
3565
+ status: components["schemas"]["TokenStatus"];
3566
+ /** Format: date-time */
3567
+ created_at: string;
3568
+ /** Format: date-time */
3569
+ updated_at: string;
3570
+ };
3492
3571
  /** @description API Token information response */
3493
3572
  TokenInfo: {
3494
3573
  role: components["schemas"]["TokenScope"];
@@ -3577,6 +3656,19 @@ export interface components {
3577
3656
  ToolsetInstance: {
3578
3657
  id: string;
3579
3658
  };
3659
+ /** @description Input for creating or updating a toolset instance. */
3660
+ ToolsetRequest: {
3661
+ /** @description Toolset type identifier (required for create, ignored for update) */
3662
+ toolset_type?: string | null;
3663
+ /** @description User-defined slug for this instance (1-24 chars, alphanumeric + hyphens) */
3664
+ slug: string;
3665
+ /** @description Optional description for this instance */
3666
+ description?: string | null;
3667
+ /** @description Whether this instance is enabled */
3668
+ enabled?: boolean;
3669
+ /** @description API key update action (Keep or Set) */
3670
+ api_key?: components["schemas"]["ApiKeyUpdate"];
3671
+ };
3580
3672
  /** @description Toolset response */
3581
3673
  ToolsetResponse: {
3582
3674
  /** @description Unique instance identifier (UUID) */
@@ -3618,95 +3710,29 @@ export interface components {
3618
3710
  /** @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
3711
  bytes?: number[] | null;
3620
3712
  };
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
3713
  /**
3629
- * @description Request to update an existing API model configuration
3714
+ * @description Request to update a setting value
3630
3715
  * @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"
3716
+ * "value": "debug"
3641
3717
  * }
3642
3718
  */
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;
3719
+ UpdateSettingRequest: {
3720
+ /** @description New value for the setting (type depends on setting metadata) */
3721
+ value: unknown;
3656
3722
  };
3657
- /**
3658
- * @description Request to update an existing API token
3659
- * @example {
3723
+ /** @example {
3660
3724
  * "name": "Updated Token Name",
3661
3725
  * "status": "inactive"
3662
- * }
3663
- */
3664
- UpdateApiTokenRequest: {
3726
+ * } */
3727
+ UpdateTokenRequest: {
3665
3728
  /**
3666
- * @description New descriptive name for the token (minimum 3 characters)
3729
+ * @description New descriptive name for the token
3667
3730
  * @example Updated Token Name
3668
3731
  */
3669
3732
  name: string;
3670
3733
  /** @description New status for the token (active/inactive) */
3671
3734
  status: components["schemas"]["TokenStatus"];
3672
3735
  };
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
3736
  UrlCitation: {
3711
3737
  /**
3712
3738
  * Format: int32
@@ -3723,6 +3749,7 @@ export interface components {
3723
3749
  /** @description The URL of the web resource. */
3724
3750
  url: string;
3725
3751
  };
3752
+ /** @description User access request output type for API responses */
3726
3753
  UserAccessRequest: {
3727
3754
  id: string;
3728
3755
  username: string;
@@ -3740,7 +3767,9 @@ export interface components {
3740
3767
  * @description Response for checking access request status
3741
3768
  * @example {
3742
3769
  * "created_at": "2024-01-01T12:00:00Z",
3743
- * "status": "pending"
3770
+ * "status": "pending",
3771
+ * "updated_at": "2024-01-01T12:00:00Z",
3772
+ * "username": "user@example.com"
3744
3773
  * }
3745
3774
  */
3746
3775
  UserAccessStatusResponse: {
@@ -3773,6 +3802,34 @@ export interface components {
3773
3802
  /** Format: date-time */
3774
3803
  updated_at: string;
3775
3804
  };
3805
+ /**
3806
+ * @description Input request for creating or updating a user model alias.
3807
+ * @example {
3808
+ * "alias": "llama3:instruct",
3809
+ * "context_params": [
3810
+ * "--ctx-size 4096"
3811
+ * ],
3812
+ * "filename": "Meta-Llama-3-8B-Instruct.Q4_K_M.gguf",
3813
+ * "repo": "QuantFactory/Meta-Llama-3-8B-Instruct-GGUF",
3814
+ * "request_params": {
3815
+ * "temperature": 0.7
3816
+ * }
3817
+ * }
3818
+ */
3819
+ UserAliasRequest: {
3820
+ /** @description Alias name — unique per (tenant_id, user_id) scope */
3821
+ alias: string;
3822
+ /** @description Repository in format "user/repo" */
3823
+ repo: string;
3824
+ /** @description Filename of the GGUF model */
3825
+ filename: string;
3826
+ /** @description Snapshot/commit identifier (optional — defaults to latest available) */
3827
+ snapshot?: string | null;
3828
+ request_params?: null | components["schemas"]["OAIRequestParams"];
3829
+ /** @description Context parameters for the model */
3830
+ context_params?: string[] | null;
3831
+ };
3832
+ /** @description User-defined model alias response */
3776
3833
  UserAliasResponse: {
3777
3834
  id: string;
3778
3835
  alias: string;
@@ -3802,6 +3859,11 @@ export interface components {
3802
3859
  last_name?: string | null;
3803
3860
  role?: null | components["schemas"]["AppRole"];
3804
3861
  };
3862
+ /** @description Envelope wrapping UserResponse with additional session info */
3863
+ UserInfoEnvelope: components["schemas"]["UserResponse"] & {
3864
+ /** @description Whether the user has an active dashboard session (only present when true) */
3865
+ has_dashboard_session?: boolean;
3866
+ };
3805
3867
  UserListResponse: {
3806
3868
  /** @example resource-abc123def456 */
3807
3869
  client_id: string;
@@ -4310,7 +4372,7 @@ export interface operations {
4310
4372
  /** @description Approval details with tool selections */
4311
4373
  requestBody: {
4312
4374
  content: {
4313
- "application/json": components["schemas"]["ApproveAccessRequestBody"];
4375
+ "application/json": components["schemas"]["ApproveAccessRequest"];
4314
4376
  };
4315
4377
  };
4316
4378
  responses: {
@@ -4698,8 +4760,8 @@ export interface operations {
4698
4760
  * "data": [
4699
4761
  * {
4700
4762
  * "api_format": "openai",
4701
- * "api_key": "sk-****",
4702
4763
  * "base_url": "https://api.openai.com/v1",
4764
+ * "has_api_key": true,
4703
4765
  * "id": "openai-gpt4"
4704
4766
  * }
4705
4767
  * ],
@@ -4707,7 +4769,7 @@ export interface operations {
4707
4769
  * "page_size": 10,
4708
4770
  * "total": 1
4709
4771
  * } */
4710
- "application/json": components["schemas"]["PaginatedApiModelResponse"];
4772
+ "application/json": components["schemas"]["PaginatedApiModelOutput"];
4711
4773
  };
4712
4774
  };
4713
4775
  /** @description Invalid request parameters */
@@ -4757,7 +4819,7 @@ export interface operations {
4757
4819
  };
4758
4820
  requestBody: {
4759
4821
  content: {
4760
- "application/json": components["schemas"]["CreateApiModelRequest"];
4822
+ "application/json": components["schemas"]["ApiModelRequest"];
4761
4823
  };
4762
4824
  };
4763
4825
  responses: {
@@ -4767,7 +4829,7 @@ export interface operations {
4767
4829
  [name: string]: unknown;
4768
4830
  };
4769
4831
  content: {
4770
- "application/json": components["schemas"]["ApiModelResponse"];
4832
+ "application/json": components["schemas"]["ApiModelOutput"];
4771
4833
  };
4772
4834
  };
4773
4835
  /** @description Invalid request parameters */
@@ -5021,12 +5083,14 @@ export interface operations {
5021
5083
  content: {
5022
5084
  /** @example {
5023
5085
  * "api_format": "openai",
5024
- * "api_key": "sk-****",
5025
5086
  * "base_url": "https://api.openai.com/v1",
5087
+ * "has_api_key": true,
5026
5088
  * "id": "openai-gpt4",
5027
- * "model": "gpt-4"
5089
+ * "models": [
5090
+ * "gpt-4"
5091
+ * ]
5028
5092
  * } */
5029
- "application/json": components["schemas"]["ApiModelResponse"];
5093
+ "application/json": components["schemas"]["ApiModelOutput"];
5030
5094
  };
5031
5095
  };
5032
5096
  /** @description Invalid request parameters */
@@ -5095,7 +5159,7 @@ export interface operations {
5095
5159
  };
5096
5160
  requestBody: {
5097
5161
  content: {
5098
- "application/json": components["schemas"]["UpdateApiModelRequest"];
5162
+ "application/json": components["schemas"]["ApiModelRequest"];
5099
5163
  };
5100
5164
  };
5101
5165
  responses: {
@@ -5105,7 +5169,7 @@ export interface operations {
5105
5169
  [name: string]: unknown;
5106
5170
  };
5107
5171
  content: {
5108
- "application/json": components["schemas"]["ApiModelResponse"];
5172
+ "application/json": components["schemas"]["ApiModelOutput"];
5109
5173
  };
5110
5174
  };
5111
5175
  /** @description Invalid request parameters */
@@ -5244,10 +5308,10 @@ export interface operations {
5244
5308
  content: {
5245
5309
  /** @example {
5246
5310
  * "api_format": "openai",
5247
- * "api_key_masked": "sk-****1234",
5248
5311
  * "base_url": "https://api.openai.com/v1",
5249
5312
  * "created_at": "2024-01-01T00:00:00Z",
5250
5313
  * "forward_all_with_prefix": false,
5314
+ * "has_api_key": true,
5251
5315
  * "id": "openai-gpt4",
5252
5316
  * "models": [
5253
5317
  * "gpt-4",
@@ -5257,7 +5321,7 @@ export interface operations {
5257
5321
  * "prefix": null,
5258
5322
  * "updated_at": "2024-01-01T00:00:00Z"
5259
5323
  * } */
5260
- "application/json": components["schemas"]["ApiModelResponse"];
5324
+ "application/json": components["schemas"]["ApiModelOutput"];
5261
5325
  };
5262
5326
  };
5263
5327
  /** @description Invalid request parameters */
@@ -5312,21 +5376,168 @@ export interface operations {
5312
5376
  app_client_id: string;
5313
5377
  };
5314
5378
  header?: never;
5315
- path: {
5316
- /** @description Access request ID */
5317
- id: string;
5318
- };
5379
+ path: {
5380
+ /** @description Access request ID */
5381
+ id: string;
5382
+ };
5383
+ cookie?: never;
5384
+ };
5385
+ requestBody?: never;
5386
+ responses: {
5387
+ /** @description Status retrieved */
5388
+ 200: {
5389
+ headers: {
5390
+ [name: string]: unknown;
5391
+ };
5392
+ content: {
5393
+ "application/json": components["schemas"]["AccessRequestStatusResponse"];
5394
+ };
5395
+ };
5396
+ /** @description Invalid request parameters */
5397
+ 400: {
5398
+ headers: {
5399
+ [name: string]: unknown;
5400
+ };
5401
+ content: {
5402
+ "application/json": components["schemas"]["OpenAIApiError"];
5403
+ };
5404
+ };
5405
+ /** @description Not authenticated */
5406
+ 401: {
5407
+ headers: {
5408
+ [name: string]: unknown;
5409
+ };
5410
+ content: {
5411
+ "application/json": components["schemas"]["OpenAIApiError"];
5412
+ };
5413
+ };
5414
+ /** @description Insufficient permissions */
5415
+ 403: {
5416
+ headers: {
5417
+ [name: string]: unknown;
5418
+ };
5419
+ content: {
5420
+ "application/json": components["schemas"]["OpenAIApiError"];
5421
+ };
5422
+ };
5423
+ /** @description Not found or app_client_id mismatch */
5424
+ 404: {
5425
+ headers: {
5426
+ [name: string]: unknown;
5427
+ };
5428
+ content: {
5429
+ "application/json": components["schemas"]["OpenAIApiError"];
5430
+ };
5431
+ };
5432
+ /** @description Internal server error */
5433
+ 500: {
5434
+ headers: {
5435
+ [name: string]: unknown;
5436
+ };
5437
+ content: {
5438
+ "application/json": components["schemas"]["OpenAIApiError"];
5439
+ };
5440
+ };
5441
+ };
5442
+ };
5443
+ createAccessRequest: {
5444
+ parameters: {
5445
+ query?: never;
5446
+ header?: never;
5447
+ path?: never;
5448
+ cookie?: never;
5449
+ };
5450
+ /** @description Access request details */
5451
+ requestBody: {
5452
+ content: {
5453
+ "application/json": components["schemas"]["CreateAccessRequest"];
5454
+ };
5455
+ };
5456
+ responses: {
5457
+ /** @description Access request created */
5458
+ 201: {
5459
+ headers: {
5460
+ [name: string]: unknown;
5461
+ };
5462
+ content: {
5463
+ "application/json": components["schemas"]["CreateAccessRequestResponse"];
5464
+ };
5465
+ };
5466
+ /** @description Invalid request parameters */
5467
+ 400: {
5468
+ headers: {
5469
+ [name: string]: unknown;
5470
+ };
5471
+ content: {
5472
+ "application/json": components["schemas"]["OpenAIApiError"];
5473
+ };
5474
+ };
5475
+ /** @description Not authenticated */
5476
+ 401: {
5477
+ headers: {
5478
+ [name: string]: unknown;
5479
+ };
5480
+ content: {
5481
+ "application/json": components["schemas"]["OpenAIApiError"];
5482
+ };
5483
+ };
5484
+ /** @description Insufficient permissions */
5485
+ 403: {
5486
+ headers: {
5487
+ [name: string]: unknown;
5488
+ };
5489
+ content: {
5490
+ "application/json": components["schemas"]["OpenAIApiError"];
5491
+ };
5492
+ };
5493
+ /** @description App client not found */
5494
+ 404: {
5495
+ headers: {
5496
+ [name: string]: unknown;
5497
+ };
5498
+ content: {
5499
+ "application/json": components["schemas"]["OpenAIApiError"];
5500
+ };
5501
+ };
5502
+ /** @description Internal server error */
5503
+ 500: {
5504
+ headers: {
5505
+ [name: string]: unknown;
5506
+ };
5507
+ content: {
5508
+ "application/json": components["schemas"]["OpenAIApiError"];
5509
+ };
5510
+ };
5511
+ };
5512
+ };
5513
+ completeOAuthFlow: {
5514
+ parameters: {
5515
+ query?: never;
5516
+ header?: never;
5517
+ path?: never;
5319
5518
  cookie?: never;
5320
5519
  };
5321
- requestBody?: never;
5520
+ /** @description OAuth callback parameters from authorization server */
5521
+ requestBody: {
5522
+ content: {
5523
+ /** @example {
5524
+ * "code": "auth_code_123",
5525
+ * "state": "random_state_456"
5526
+ * } */
5527
+ "application/json": components["schemas"]["AuthCallbackRequest"];
5528
+ };
5529
+ };
5322
5530
  responses: {
5323
- /** @description Status retrieved */
5531
+ /** @description OAuth flow completed successfully, user authenticated */
5324
5532
  200: {
5325
5533
  headers: {
5326
5534
  [name: string]: unknown;
5327
5535
  };
5328
5536
  content: {
5329
- "application/json": components["schemas"]["AccessRequestStatusResponse"];
5537
+ /** @example {
5538
+ * "location": "https://app.example.com/dashboard"
5539
+ * } */
5540
+ "application/json": components["schemas"]["RedirectResponse"];
5330
5541
  };
5331
5542
  };
5332
5543
  /** @description Invalid request parameters */
@@ -5356,12 +5567,19 @@ export interface operations {
5356
5567
  "application/json": components["schemas"]["OpenAIApiError"];
5357
5568
  };
5358
5569
  };
5359
- /** @description Not found or app_client_id mismatch */
5360
- 404: {
5570
+ /** @description OAuth error, invalid request parameters, or state mismatch */
5571
+ 422: {
5361
5572
  headers: {
5362
5573
  [name: string]: unknown;
5363
5574
  };
5364
5575
  content: {
5576
+ /** @example {
5577
+ * "error": {
5578
+ * "code": "oauth_state_mismatch",
5579
+ * "message": "State parameter mismatch",
5580
+ * "type": "invalid_request_error"
5581
+ * }
5582
+ * } */
5365
5583
  "application/json": components["schemas"]["OpenAIApiError"];
5366
5584
  };
5367
5585
  };
@@ -5376,27 +5594,27 @@ export interface operations {
5376
5594
  };
5377
5595
  };
5378
5596
  };
5379
- createAccessRequest: {
5597
+ completeDashboardOAuthFlow: {
5380
5598
  parameters: {
5381
5599
  query?: never;
5382
5600
  header?: never;
5383
5601
  path?: never;
5384
5602
  cookie?: never;
5385
5603
  };
5386
- /** @description Access request details */
5604
+ /** @description OAuth callback parameters from authorization server */
5387
5605
  requestBody: {
5388
5606
  content: {
5389
- "application/json": components["schemas"]["CreateAccessRequestBody"];
5607
+ "application/json": components["schemas"]["AuthCallbackRequest"];
5390
5608
  };
5391
5609
  };
5392
5610
  responses: {
5393
- /** @description Access request created */
5394
- 201: {
5611
+ /** @description Dashboard OAuth flow completed successfully */
5612
+ 200: {
5395
5613
  headers: {
5396
5614
  [name: string]: unknown;
5397
5615
  };
5398
5616
  content: {
5399
- "application/json": components["schemas"]["CreateAccessRequestResponse"];
5617
+ "application/json": components["schemas"]["RedirectResponse"];
5400
5618
  };
5401
5619
  };
5402
5620
  /** @description Invalid request parameters */
@@ -5426,15 +5644,6 @@ export interface operations {
5426
5644
  "application/json": components["schemas"]["OpenAIApiError"];
5427
5645
  };
5428
5646
  };
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
5647
  /** @description Internal server error */
5439
5648
  500: {
5440
5649
  headers: {
@@ -5446,47 +5655,39 @@ export interface operations {
5446
5655
  };
5447
5656
  };
5448
5657
  };
5449
- completeOAuthFlow: {
5658
+ initiateDashboardOAuthFlow: {
5450
5659
  parameters: {
5451
5660
  query?: never;
5452
5661
  header?: never;
5453
5662
  path?: never;
5454
5663
  cookie?: never;
5455
5664
  };
5456
- /** @description OAuth callback parameters from authorization server */
5457
5665
  requestBody: {
5458
5666
  content: {
5459
- /** @example {
5460
- * "code": "auth_code_123",
5461
- * "state": "random_state_456"
5462
- * } */
5463
- "application/json": components["schemas"]["AuthCallbackRequest"];
5667
+ "application/json": unknown;
5464
5668
  };
5465
5669
  };
5466
5670
  responses: {
5467
- /** @description OAuth flow completed successfully, user authenticated */
5671
+ /** @description User already has a valid dashboard token */
5468
5672
  200: {
5469
5673
  headers: {
5470
5674
  [name: string]: unknown;
5471
5675
  };
5472
5676
  content: {
5473
- /** @example {
5474
- * "location": "https://app.example.com/dashboard"
5475
- * } */
5476
5677
  "application/json": components["schemas"]["RedirectResponse"];
5477
5678
  };
5478
5679
  };
5479
- /** @description Invalid request parameters */
5480
- 400: {
5680
+ /** @description OAuth authorization URL provided for dashboard login */
5681
+ 201: {
5481
5682
  headers: {
5482
5683
  [name: string]: unknown;
5483
5684
  };
5484
5685
  content: {
5485
- "application/json": components["schemas"]["OpenAIApiError"];
5686
+ "application/json": components["schemas"]["RedirectResponse"];
5486
5687
  };
5487
5688
  };
5488
- /** @description Not authenticated */
5489
- 401: {
5689
+ /** @description Invalid request parameters */
5690
+ 400: {
5490
5691
  headers: {
5491
5692
  [name: string]: unknown;
5492
5693
  };
@@ -5494,8 +5695,8 @@ export interface operations {
5494
5695
  "application/json": components["schemas"]["OpenAIApiError"];
5495
5696
  };
5496
5697
  };
5497
- /** @description Insufficient permissions */
5498
- 403: {
5698
+ /** @description Not authenticated */
5699
+ 401: {
5499
5700
  headers: {
5500
5701
  [name: string]: unknown;
5501
5702
  };
@@ -5503,19 +5704,12 @@ export interface operations {
5503
5704
  "application/json": components["schemas"]["OpenAIApiError"];
5504
5705
  };
5505
5706
  };
5506
- /** @description OAuth error, invalid request parameters, or state mismatch */
5507
- 422: {
5707
+ /** @description Insufficient permissions */
5708
+ 403: {
5508
5709
  headers: {
5509
5710
  [name: string]: unknown;
5510
5711
  };
5511
5712
  content: {
5512
- /** @example {
5513
- * "error": {
5514
- * "code": "oauth_state_mismatch",
5515
- * "message": "State parameter mismatch",
5516
- * "type": "invalid_request_error"
5517
- * }
5518
- * } */
5519
5713
  "application/json": components["schemas"]["OpenAIApiError"];
5520
5714
  };
5521
5715
  };
@@ -5537,9 +5731,10 @@ export interface operations {
5537
5731
  path?: never;
5538
5732
  cookie?: never;
5539
5733
  };
5734
+ /** @description OAuth initiate parameters */
5540
5735
  requestBody: {
5541
5736
  content: {
5542
- "application/json": unknown;
5737
+ "application/json": components["schemas"]["AuthInitiateRequest"];
5543
5738
  };
5544
5739
  };
5545
5740
  responses: {
@@ -5621,7 +5816,9 @@ export interface operations {
5621
5816
  };
5622
5817
  content: {
5623
5818
  /** @example {
5819
+ * "client_id": "my-client-id",
5624
5820
  * "commit_sha": "abc1234",
5821
+ * "deployment": "standalone",
5625
5822
  * "status": "ready",
5626
5823
  * "version": "0.1.0"
5627
5824
  * } */
@@ -5772,7 +5969,7 @@ export interface operations {
5772
5969
  };
5773
5970
  requestBody: {
5774
5971
  content: {
5775
- "application/json": components["schemas"]["CreateMcpRequest"];
5972
+ "application/json": components["schemas"]["McpRequest"];
5776
5973
  };
5777
5974
  };
5778
5975
  responses: {
@@ -5782,7 +5979,7 @@ export interface operations {
5782
5979
  [name: string]: unknown;
5783
5980
  };
5784
5981
  content: {
5785
- "application/json": components["schemas"]["McpResponse"];
5982
+ "application/json": components["schemas"]["Mcp"];
5786
5983
  };
5787
5984
  };
5788
5985
  /** @description Invalid request parameters */
@@ -5890,7 +6087,7 @@ export interface operations {
5890
6087
  };
5891
6088
  requestBody: {
5892
6089
  content: {
5893
- "application/json": components["schemas"]["CreateAuthConfigBody"];
6090
+ "application/json": components["schemas"]["CreateAuthConfig"];
5894
6091
  };
5895
6092
  };
5896
6093
  responses: {
@@ -6656,7 +6853,7 @@ export interface operations {
6656
6853
  };
6657
6854
  requestBody: {
6658
6855
  content: {
6659
- "application/json": components["schemas"]["CreateMcpServerRequest"];
6856
+ "application/json": components["schemas"]["McpServerRequest"];
6660
6857
  };
6661
6858
  };
6662
6859
  responses: {
@@ -6792,7 +6989,7 @@ export interface operations {
6792
6989
  };
6793
6990
  requestBody: {
6794
6991
  content: {
6795
- "application/json": components["schemas"]["UpdateMcpServerRequest"];
6992
+ "application/json": components["schemas"]["McpServerRequest"];
6796
6993
  };
6797
6994
  };
6798
6995
  responses: {
@@ -6875,7 +7072,7 @@ export interface operations {
6875
7072
  [name: string]: unknown;
6876
7073
  };
6877
7074
  content: {
6878
- "application/json": components["schemas"]["McpResponse"];
7075
+ "application/json": components["schemas"]["Mcp"];
6879
7076
  };
6880
7077
  };
6881
7078
  /** @description Invalid request parameters */
@@ -6935,7 +7132,7 @@ export interface operations {
6935
7132
  };
6936
7133
  requestBody: {
6937
7134
  content: {
6938
- "application/json": components["schemas"]["UpdateMcpRequest"];
7135
+ "application/json": components["schemas"]["McpRequest"];
6939
7136
  };
6940
7137
  };
6941
7138
  responses: {
@@ -6945,7 +7142,7 @@ export interface operations {
6945
7142
  [name: string]: unknown;
6946
7143
  };
6947
7144
  content: {
6948
- "application/json": components["schemas"]["McpResponse"];
7145
+ "application/json": components["schemas"]["Mcp"];
6949
7146
  };
6950
7147
  };
6951
7148
  /** @description Invalid request parameters */
@@ -7648,7 +7845,7 @@ export interface operations {
7648
7845
  };
7649
7846
  requestBody: {
7650
7847
  content: {
7651
- "application/json": components["schemas"]["CreateAliasRequest"];
7848
+ "application/json": components["schemas"]["UserAliasRequest"];
7652
7849
  };
7653
7850
  };
7654
7851
  responses: {
@@ -7866,7 +8063,7 @@ export interface operations {
7866
8063
  };
7867
8064
  requestBody: {
7868
8065
  content: {
7869
- "application/json": components["schemas"]["UpdateAliasRequest"];
8066
+ "application/json": components["schemas"]["UserAliasRequest"];
7870
8067
  };
7871
8068
  };
7872
8069
  responses: {
@@ -8281,7 +8478,7 @@ export interface operations {
8281
8478
  content: {
8282
8479
  /** @example {
8283
8480
  * "error": {
8284
- * "code": "settings_error-invalid_setting",
8481
+ * "code": "settings_route_error-not_found",
8285
8482
  * "message": "Setting not found: INVALID_KEY",
8286
8483
  * "type": "not_found_error"
8287
8484
  * }
@@ -8375,7 +8572,7 @@ export interface operations {
8375
8572
  content: {
8376
8573
  /** @example {
8377
8574
  * "error": {
8378
- * "code": "settings_error-not_found",
8575
+ * "code": "settings_route_error-not_found",
8379
8576
  * "message": "Setting not found: INVALID_KEY",
8380
8577
  * "type": "not_found_error"
8381
8578
  * }
@@ -8444,6 +8641,180 @@ export interface operations {
8444
8641
  };
8445
8642
  };
8446
8643
  };
8644
+ tenantsList: {
8645
+ parameters: {
8646
+ query?: never;
8647
+ header?: never;
8648
+ path?: never;
8649
+ cookie?: never;
8650
+ };
8651
+ requestBody?: never;
8652
+ responses: {
8653
+ /** @description List of tenants */
8654
+ 200: {
8655
+ headers: {
8656
+ [name: string]: unknown;
8657
+ };
8658
+ content: {
8659
+ "application/json": components["schemas"]["TenantListResponse"];
8660
+ };
8661
+ };
8662
+ /** @description Invalid request parameters */
8663
+ 400: {
8664
+ headers: {
8665
+ [name: string]: unknown;
8666
+ };
8667
+ content: {
8668
+ "application/json": components["schemas"]["OpenAIApiError"];
8669
+ };
8670
+ };
8671
+ /** @description Not authenticated */
8672
+ 401: {
8673
+ headers: {
8674
+ [name: string]: unknown;
8675
+ };
8676
+ content: {
8677
+ "application/json": components["schemas"]["OpenAIApiError"];
8678
+ };
8679
+ };
8680
+ /** @description Insufficient permissions */
8681
+ 403: {
8682
+ headers: {
8683
+ [name: string]: unknown;
8684
+ };
8685
+ content: {
8686
+ "application/json": components["schemas"]["OpenAIApiError"];
8687
+ };
8688
+ };
8689
+ /** @description Internal server error */
8690
+ 500: {
8691
+ headers: {
8692
+ [name: string]: unknown;
8693
+ };
8694
+ content: {
8695
+ "application/json": components["schemas"]["OpenAIApiError"];
8696
+ };
8697
+ };
8698
+ };
8699
+ };
8700
+ tenantsCreate: {
8701
+ parameters: {
8702
+ query?: never;
8703
+ header?: never;
8704
+ path?: never;
8705
+ cookie?: never;
8706
+ };
8707
+ /** @description Tenant creation parameters */
8708
+ requestBody: {
8709
+ content: {
8710
+ "application/json": components["schemas"]["CreateTenantRequest"];
8711
+ };
8712
+ };
8713
+ responses: {
8714
+ /** @description Tenant created successfully */
8715
+ 201: {
8716
+ headers: {
8717
+ [name: string]: unknown;
8718
+ };
8719
+ content: {
8720
+ "application/json": components["schemas"]["CreateTenantResponse"];
8721
+ };
8722
+ };
8723
+ /** @description Invalid request parameters */
8724
+ 400: {
8725
+ headers: {
8726
+ [name: string]: unknown;
8727
+ };
8728
+ content: {
8729
+ "application/json": components["schemas"]["OpenAIApiError"];
8730
+ };
8731
+ };
8732
+ /** @description Not authenticated */
8733
+ 401: {
8734
+ headers: {
8735
+ [name: string]: unknown;
8736
+ };
8737
+ content: {
8738
+ "application/json": components["schemas"]["OpenAIApiError"];
8739
+ };
8740
+ };
8741
+ /** @description Insufficient permissions */
8742
+ 403: {
8743
+ headers: {
8744
+ [name: string]: unknown;
8745
+ };
8746
+ content: {
8747
+ "application/json": components["schemas"]["OpenAIApiError"];
8748
+ };
8749
+ };
8750
+ /** @description Internal server error */
8751
+ 500: {
8752
+ headers: {
8753
+ [name: string]: unknown;
8754
+ };
8755
+ content: {
8756
+ "application/json": components["schemas"]["OpenAIApiError"];
8757
+ };
8758
+ };
8759
+ };
8760
+ };
8761
+ tenantsActivate: {
8762
+ parameters: {
8763
+ query?: never;
8764
+ header?: never;
8765
+ path: {
8766
+ /** @description The client_id of the tenant to activate */
8767
+ client_id: string;
8768
+ };
8769
+ cookie?: never;
8770
+ };
8771
+ requestBody?: never;
8772
+ responses: {
8773
+ /** @description Tenant activated successfully */
8774
+ 200: {
8775
+ headers: {
8776
+ [name: string]: unknown;
8777
+ };
8778
+ content?: never;
8779
+ };
8780
+ /** @description Invalid request parameters */
8781
+ 400: {
8782
+ headers: {
8783
+ [name: string]: unknown;
8784
+ };
8785
+ content: {
8786
+ "application/json": components["schemas"]["OpenAIApiError"];
8787
+ };
8788
+ };
8789
+ /** @description Not authenticated */
8790
+ 401: {
8791
+ headers: {
8792
+ [name: string]: unknown;
8793
+ };
8794
+ content: {
8795
+ "application/json": components["schemas"]["OpenAIApiError"];
8796
+ };
8797
+ };
8798
+ /** @description Insufficient permissions */
8799
+ 403: {
8800
+ headers: {
8801
+ [name: string]: unknown;
8802
+ };
8803
+ content: {
8804
+ "application/json": components["schemas"]["OpenAIApiError"];
8805
+ };
8806
+ };
8807
+ /** @description Internal server error */
8808
+ 500: {
8809
+ headers: {
8810
+ [name: string]: unknown;
8811
+ };
8812
+ content: {
8813
+ "application/json": components["schemas"]["OpenAIApiError"];
8814
+ };
8815
+ };
8816
+ };
8817
+ };
8447
8818
  listApiTokens: {
8448
8819
  parameters: {
8449
8820
  query?: {
@@ -8493,7 +8864,7 @@ export interface operations {
8493
8864
  * "page_size": 10,
8494
8865
  * "total": 2
8495
8866
  * } */
8496
- "application/json": components["schemas"]["PaginatedApiTokenResponse"];
8867
+ "application/json": components["schemas"]["PaginatedTokenResponse"];
8497
8868
  };
8498
8869
  };
8499
8870
  /** @description Invalid request parameters */
@@ -8550,7 +8921,7 @@ export interface operations {
8550
8921
  * "scope_token_user"
8551
8922
  * ]
8552
8923
  * } */
8553
- "application/json": components["schemas"]["CreateApiTokenRequest"];
8924
+ "application/json": components["schemas"]["CreateTokenRequest"];
8554
8925
  };
8555
8926
  };
8556
8927
  responses: {
@@ -8563,7 +8934,7 @@ export interface operations {
8563
8934
  /** @example {
8564
8935
  * "token": "bodhiapp_1234567890abcdef"
8565
8936
  * } */
8566
- "application/json": components["schemas"]["ApiTokenResponse"];
8937
+ "application/json": components["schemas"]["TokenCreated"];
8567
8938
  };
8568
8939
  };
8569
8940
  /** @description Invalid request parameters */
@@ -8624,7 +8995,7 @@ export interface operations {
8624
8995
  * "name": "Updated Token Name",
8625
8996
  * "status": "inactive"
8626
8997
  * } */
8627
- "application/json": components["schemas"]["UpdateApiTokenRequest"];
8998
+ "application/json": components["schemas"]["UpdateTokenRequest"];
8628
8999
  };
8629
9000
  };
8630
9001
  responses: {
@@ -8643,7 +9014,7 @@ export interface operations {
8643
9014
  * "updated_at": "2024-11-10T04:52:06.786Z",
8644
9015
  * "user_id": "auth0|123456789"
8645
9016
  * } */
8646
- "application/json": components["schemas"]["ApiToken"];
9017
+ "application/json": components["schemas"]["TokenDetail"];
8647
9018
  };
8648
9019
  };
8649
9020
  /** @description Invalid request parameters */
@@ -8953,7 +9324,7 @@ export interface operations {
8953
9324
  };
8954
9325
  requestBody: {
8955
9326
  content: {
8956
- "application/json": components["schemas"]["CreateToolsetRequest"];
9327
+ "application/json": components["schemas"]["ToolsetRequest"];
8957
9328
  };
8958
9329
  };
8959
9330
  responses: {
@@ -9089,7 +9460,7 @@ export interface operations {
9089
9460
  };
9090
9461
  requestBody: {
9091
9462
  content: {
9092
- "application/json": components["schemas"]["UpdateToolsetRequest"];
9463
+ "application/json": components["schemas"]["ToolsetRequest"];
9093
9464
  };
9094
9465
  };
9095
9466
  responses: {
@@ -9305,7 +9676,7 @@ export interface operations {
9305
9676
  [name: string]: unknown;
9306
9677
  };
9307
9678
  content: {
9308
- "application/json": components["schemas"]["UserResponse"];
9679
+ "application/json": components["schemas"]["UserInfoEnvelope"];
9309
9680
  };
9310
9681
  };
9311
9682
  /** @description Invalid request parameters */