diff --git a/litellm/proxy/_types.py b/litellm/proxy/_types.py index 9b9c84861bc..5ed6a17608c 100644 --- a/litellm/proxy/_types.py +++ b/litellm/proxy/_types.py @@ -3706,12 +3706,12 @@ class TeamMemberUpdateResponse(MemberUpdateResponse): class TeamMemberBulkUpdateFields(LiteLLMPydanticObjectBase): - max_budget_in_team: Optional[float] = None - role: Optional[Literal["admin", "user"]] = None - tpm_limit: Optional[int] = None - rpm_limit: Optional[int] = None - budget_duration: Optional[str] = None - allowed_models: Optional[List[str]] = None + max_budget_in_team: float | None = None + role: Literal["admin", "user"] | None = None + tpm_limit: int | None = None + rpm_limit: int | None = None + budget_duration: str | None = None + allowed_models: list[str] | None = None @model_validator(mode="after") def require_at_least_one_field(self): @@ -3722,7 +3722,7 @@ class TeamMemberBulkUpdateFields(LiteLLMPydanticObjectBase): class BulkTeamMemberUpdateRequest(LiteLLMPydanticObjectBase): team_id: str - user_ids: Optional[List[str]] = None + user_ids: list[str] | None = None all_members_in_team: bool = False update_fields: TeamMemberBulkUpdateFields @@ -3743,8 +3743,8 @@ class FailedTeamMemberUpdate(MemberUpdateResponse): class BulkTeamMemberUpdateResponse(LiteLLMPydanticObjectBase): team_id: str total_requested: int - successful_updates: List[TeamMemberUpdateResponse] - failed_updates: List[FailedTeamMemberUpdate] + successful_updates: list[TeamMemberUpdateResponse] + failed_updates: list[FailedTeamMemberUpdate] class TeamModelAddRequest(BaseModel): diff --git a/litellm/proxy/management_endpoints/team_endpoints.py b/litellm/proxy/management_endpoints/team_endpoints.py index 844544cf320..21c7dfdcd1b 100644 --- a/litellm/proxy/management_endpoints/team_endpoints.py +++ b/litellm/proxy/management_endpoints/team_endpoints.py @@ -3060,8 +3060,8 @@ async def bulk_update_team_members( ) update_fields = data.update_fields.model_dump(exclude_unset=True) - successful_updates: List[TeamMemberUpdateResponse] = [] - failed_updates: List[FailedTeamMemberUpdate] = [] + successful_updates: list[TeamMemberUpdateResponse] = [] + failed_updates: list[FailedTeamMemberUpdate] = [] for user_id in user_ids: try: response = await team_member_update( diff --git a/ui/litellm-dashboard/src/components/networking.tsx b/ui/litellm-dashboard/src/components/networking.tsx index 89c8446baa2..da6bb079876 100644 --- a/ui/litellm-dashboard/src/components/networking.tsx +++ b/ui/litellm-dashboard/src/components/networking.tsx @@ -2732,32 +2732,6 @@ export interface Member { allowed_models?: string[] | null; } -export interface TeamMemberBulkUpdateFields { - role?: "admin" | "user" | null; - max_budget_in_team?: number | null; - tpm_limit?: number | null; - rpm_limit?: number | null; - budget_duration?: string | null; - allowed_models?: string[] | null; -} - -export const teamMemberBulkUpdateCall = async ( - accessToken: string, - teamId: string, - userIds: string[], - allMembersInTeam: boolean, - updateFields: TeamMemberBulkUpdateFields, -) => { - return apiClient.post(`/team/member/bulk_update`, { - accessToken, - body: { - team_id: teamId, - ...(allMembersInTeam ? { all_members_in_team: true } : { user_ids: userIds }), - update_fields: updateFields, - }, - }); -}; - export const teamMemberAddCall = async (accessToken: string, teamId: string, formValues: Member) => { try { const url = proxyBaseUrl ? `${proxyBaseUrl}/team/member_add` : `/team/member_add`; diff --git a/ui/litellm-dashboard/src/components/team/TeamMemberTab.tsx b/ui/litellm-dashboard/src/components/team/TeamMemberTab.tsx index 6a1eff6db9a..0636fb1f00b 100644 --- a/ui/litellm-dashboard/src/components/team/TeamMemberTab.tsx +++ b/ui/litellm-dashboard/src/components/team/TeamMemberTab.tsx @@ -1,6 +1,6 @@ import { useUISettings } from "@/app/(dashboard)/hooks/uiSettings/useUISettings"; import useAuthorized from "@/app/(dashboard)/hooks/useAuthorized"; -import { Member, TeamMemberBulkUpdateFields, teamMemberBulkUpdateCall } from "@/components/networking"; +import { Member } from "@/components/networking"; import BudgetDurationDropdown from "@/components/common_components/budget_duration_dropdown"; import NotificationsManager from "@/components/molecules/notifications_manager"; import NumericalInput from "@/components/shared/numerical_input"; @@ -12,6 +12,7 @@ import { Button, Checkbox, Form, Modal, Select, Space, Tooltip, Typography } fro import type { ColumnsType } from "antd/es/table"; import { useState } from "react"; import MemberTable from "@/components/common_components/MemberTable"; +import { TeamMemberBulkUpdateFields, teamMemberBulkUpdateCall } from "./teamMemberBulkUpdate"; import { TeamData } from "./TeamInfo"; interface TeamMemberTabProps { @@ -229,7 +230,7 @@ export default function TeamMemberTab({ setIsBulkUpdating(true); try { - const response = await teamMemberBulkUpdateCall(accessToken, teamData.team_id, userIds, false, updateFields); + const response = await teamMemberBulkUpdateCall(accessToken, teamData.team_id, userIds, updateFields); await onMembersUpdated?.(); setIsBulkUpdateVisible(false); setSelectedMembers([]); diff --git a/ui/litellm-dashboard/src/components/team/teamMemberBulkUpdate.ts b/ui/litellm-dashboard/src/components/team/teamMemberBulkUpdate.ts new file mode 100644 index 00000000000..69e6448d53b --- /dev/null +++ b/ui/litellm-dashboard/src/components/team/teamMemberBulkUpdate.ts @@ -0,0 +1,31 @@ +import { getGlobalLitellmHeaderName, getProxyBaseUrl } from "@/components/networking"; +import { createApiClient } from "@/lib/http/client"; + +export interface TeamMemberBulkUpdateFields { + role?: "admin" | "user" | null; + max_budget_in_team?: number | null; + tpm_limit?: number | null; + rpm_limit?: number | null; + budget_duration?: string | null; + allowed_models?: string[] | null; +} + +const apiClient = createApiClient({ + getBaseUrl: getProxyBaseUrl, + getAuthHeaderName: getGlobalLitellmHeaderName, +}); + +export const teamMemberBulkUpdateCall = async ( + accessToken: string, + teamId: string, + userIds: string[], + updateFields: TeamMemberBulkUpdateFields, +) => + apiClient.post(`/team/member/bulk_update`, { + accessToken, + body: { + team_id: teamId, + user_ids: userIds, + update_fields: updateFields, + }, + }); diff --git a/ui/litellm-dashboard/src/lib/http/schema.d.ts b/ui/litellm-dashboard/src/lib/http/schema.d.ts index 1979a00cb22..1e553837c41 100644 --- a/ui/litellm-dashboard/src/lib/http/schema.d.ts +++ b/ui/litellm-dashboard/src/lib/http/schema.d.ts @@ -436,6 +436,26 @@ export interface paths { patch?: never; trace?: never; }; + "/alerting/settings": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Alerting Settings + * @description Return the configurable alerting param, description, and current value + */ + get: operations["alerting_settings_alerting_settings_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/anthropic/{endpoint}": { parameters: { query?: never; @@ -1824,6 +1844,26 @@ export interface paths { patch?: never; trace?: never; }; + "/config/callback/delete": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Delete Callback + * @description Delete specific logging callback from configuration. + */ + post: operations["delete_callback_config_callback_delete_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/config/cost_discount_config": { parameters: { query?: never; @@ -1905,6 +1945,83 @@ export interface paths { patch: operations["update_cost_margin_config_config_cost_margin_config_patch"]; trace?: never; }; + "/config/field/delete": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Delete Config General Settings + * @description Delete the db value of this field in litellm general settings. Resets it to it's initial default value on litellm. + */ + post: operations["delete_config_general_settings_config_field_delete_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/config/field/info": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Get Config General Settings */ + get: operations["get_config_general_settings_config_field_info_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/config/field/update": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Update Config General Settings + * @description Update a specific field in litellm general settings + */ + post: operations["update_config_general_settings_config_field_update_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/config/list": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Config List + * @description List the available fields + current values for a given type of setting (currently just 'general_settings'user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),) + */ + get: operations["get_config_list_config_list_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/config/pass_through_endpoint": { parameters: { query?: never; @@ -1979,6 +2096,64 @@ export interface paths { patch?: never; trace?: never; }; + "/config/update": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Update Config + * @description For Admin UI - allows admin to update config via UI. + * + * Writes only the sections present in the request body to LiteLLM_Config rows + * (one row per top-level section). Sections the caller did not send are left + * untouched — this endpoint never persists pre-existing YAML values to DB as + * a side effect of an unrelated update. + */ + post: operations["update_config_config_update_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/config/yaml": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Config Yaml Endpoint + * @description This is a mock endpoint, to show what you can set in config.yaml details in the Swagger UI. + * + * Parameters: + * + * The config.yaml object has the following attributes: + * - **model_list**: *Optional[List[ModelParams]]* - A list of supported models on the server, along with model-specific configurations. ModelParams includes "model_name" (name of the model), "litellm_params" (litellm-specific parameters for the model), and "model_info" (additional info about the model such as id, mode, cost per token, etc). + * + * - **litellm_settings**: *Optional[dict]*: Settings for the litellm module. You can specify multiple properties like "drop_params", "set_verbose", "api_base", "cache". + * + * - **general_settings**: *Optional[ConfigGeneralSettings]*: General settings for the server like "completion_model" (default model for chat completion calls), "use_azure_key_vault" (option to load keys from azure key vault), "master_key" (key required for all calls to proxy), and others. + * + * Please, refer to each class's description for a better understanding of the specific attributes within them. + * + * Note: This is a mock endpoint primarily meant for demonstration purposes, and does not actually provide or change any configurations. + */ + get: operations["config_yaml_endpoint_config_yaml_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/config_overrides/hashicorp_vault": { parameters: { query?: never; @@ -2925,6 +3100,120 @@ export interface paths { patch?: never; trace?: never; }; + "/debug/memory/details": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Memory Details + * @description Get detailed memory diagnostics for deep debugging. + * + * Returns: + * - worker_pid: Process ID + * - process_memory: RAM usage, virtual memory, file handles, threads + * - garbage_collector: GC thresholds, counts, collection history + * - objects: Total tracked objects and top object types + * - uncollectable: Objects that can't be garbage collected (potential leaks) + * - cache_memory: Memory usage of user_api_key, router, and logging caches + * - router_memory: Memory usage of router components (model_list, deployment_names, etc.) + * + * Query Parameters: + * - top_n: Number of top object types to return (default: 20) + * - include_process_info: Include process-level memory info using psutil (default: true) + * + * Example usage: + * curl "http://localhost:4000/debug/memory/details?top_n=30" -H "Authorization: Bearer sk-1234" + * + * All memory sizes are reported in both bytes and MB. + */ + get: operations["get_memory_details_debug_memory_details_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/debug/memory/gc/configure": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Configure Gc Thresholds Endpoint + * @description Configure Python garbage collection thresholds. + * + * Lower thresholds mean more frequent GC cycles (less memory, more CPU overhead). + * Higher thresholds mean less frequent GC cycles (more memory, less CPU overhead). + * + * Returns: + * - message: Confirmation message + * - previous_thresholds: Old threshold values + * - new_thresholds: New threshold values + * - objects_awaiting_collection: Current object count in gen-0 + * - tip: Hint about when next collection will occur + * + * Query Parameters: + * - generation_0: Number of allocations before gen-0 collection (default: 700) + * - generation_1: Number of gen-0 collections before gen-1 collection (default: 10) + * - generation_2: Number of gen-1 collections before gen-2 collection (default: 10) + * + * Example for more aggressive collection: + * curl -X POST "http://localhost:4000/debug/memory/gc/configure?generation_0=500" -H "Authorization: Bearer sk-1234" + * + * Example for less aggressive collection: + * curl -X POST "http://localhost:4000/debug/memory/gc/configure?generation_0=1000" -H "Authorization: Bearer sk-1234" + * + * Monitor memory usage with GET /debug/memory/summary after changes. + */ + post: operations["configure_gc_thresholds_endpoint_debug_memory_gc_configure_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/debug/memory/summary": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Memory Summary + * @description Get simplified memory usage summary for the proxy. + * + * Returns: + * - worker_pid: Process ID + * - status: Overall health based on memory usage + * - memory: Process memory usage and RAM info + * - caches: Cache item counts and descriptions + * - garbage_collector: GC status and pending object counts + * + * Example usage: + * curl http://localhost:4000/debug/memory/summary -H "Authorization: Bearer sk-1234" + * + * For detailed analysis, call GET /debug/memory/details + * For cache management, use the cache management endpoints + */ + get: operations["get_memory_summary_debug_memory_summary_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/delete/allowed_ip": { parameters: { query?: never; @@ -3016,6 +3305,312 @@ export interface paths { patch?: never; trace?: never; }; + "/end_user/block": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Block User + * @description [BETA] Reject calls with this end-user id + * + * Parameters: + * - user_ids (List[str], required): The unique `user_id`s for the users to block + * + * (any /chat/completion call with this user={end-user-id} param, will be rejected.) + * + * ``` + * curl -X POST "http://0.0.0.0:8000/user/block" + * -H "Authorization: Bearer sk-1234" + * -d '{ + * "user_ids": [, ...] + * }' + * ``` + */ + post: operations["block_user_end_user_block_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/end_user/daily/activity": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Customer Daily Activity + * @description Get daily activity for specific organizations or all accessible organizations. + */ + get: operations["get_customer_daily_activity_end_user_daily_activity_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/end_user/delete": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Delete End User + * @description Delete multiple end-users. + * + * Parameters: + * - user_ids (List[str], required): The unique `user_id`s for the users to delete + * + * Example curl: + * ``` + * curl --location 'http://0.0.0.0:4000/customer/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + * "user_ids" :["ishaan-jaff-5"] + * }' + * + * See below for all params + * ``` + */ + post: operations["delete_end_user_end_user_delete_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/end_user/info": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * End User Info + * @description Get information about an end-user. An `end_user` is a customer (external user) of the proxy. + * + * Parameters: + * - end_user_id (str, required): The unique identifier for the end-user + * + * Example curl: + * ``` + * curl -X GET 'http://localhost:4000/customer/info?end_user_id=test-litellm-user-4' -H 'Authorization: Bearer sk-1234' + * ``` + */ + get: operations["end_user_info_end_user_info_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/end_user/list": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * List End User + * @description [Admin-only] List all available customers + * + * Example curl: + * ``` + * curl --location --request GET 'http://0.0.0.0:4000/customer/list' --header 'Authorization: Bearer sk-1234' + * ``` + */ + get: operations["list_end_user_end_user_list_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/end_user/new": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * New End User + * @description Allow creating a new Customer + * + * + * Parameters: + * - user_id: str - The unique identifier for the user. + * - alias: Optional[str] - A human-friendly alias for the user. + * - blocked: bool - Flag to allow or disallow requests for this end-user. Default is False. + * - max_budget: Optional[float] - The maximum budget allocated to the user. Either 'max_budget' or 'budget_id' should be provided, not both. + * - budget_id: Optional[str] - The identifier for an existing budget allocated to the user. Either 'max_budget' or 'budget_id' should be provided, not both. + * - allowed_model_region: Optional[Union[Literal["eu"], Literal["us"]]] - Require all user requests to use models in this specific region. + * - default_model: Optional[str] - If no equivalent model in the allowed region, default all requests to this model. + * - metadata: Optional[dict] = Metadata for customer, store information for customer. Example metadata = {"data_training_opt_out": True} + * - budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). + * - tpm_limit: Optional[int] - [Not Implemented Yet] Specify tpm limit for a given customer (Tokens per minute) + * - rpm_limit: Optional[int] - [Not Implemented Yet] Specify rpm limit for a given customer (Requests per minute) + * - model_max_budget: Optional[dict] - [Not Implemented Yet] Specify max budget for a given model. Example: {"openai/gpt-4o-mini": {"max_budget": 100.0, "budget_duration": "1d"}} + * - max_parallel_requests: Optional[int] - [Not Implemented Yet] Specify max parallel requests for a given customer. + * - soft_budget: Optional[float] - [Not Implemented Yet] Get alerts when customer crosses given budget, doesn't block requests. + * - spend: Optional[float] - Specify initial spend for a given customer. + * - budget_reset_at: Optional[str] - Specify the date and time when the budget should be reset. + * - object_permission: Optional[LiteLLM_ObjectPermissionBase] - Customer-specific object permissions to control access to resources. + * Supported fields: + * * mcp_servers: List[str] - List of allowed MCP server IDs + * * mcp_access_groups: List[str] - List of MCP access group names + * * mcp_tool_permissions: Dict[str, List[str]] - Map of server ID to allowed tool names (e.g., {"server_1": ["tool_a", "tool_b"]}) + * * vector_stores: List[str] - List of allowed vector store IDs + * * agents: List[str] - List of allowed agent IDs + * * agent_access_groups: List[str] - List of agent access group names + * Example: {"mcp_servers": ["server_1", "server_2"], "vector_stores": ["vector_store_1"], "agents": ["agent_1"]} + * IF null or {} then no object-level restrictions apply. + * + * + * - Allow specifying allowed regions + * - Allow specifying default model + * + * Example curl: + * ``` + * curl --location 'http://0.0.0.0:4000/customer/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + * "user_id" : "ishaan-jaff-3", + * "allowed_region": "eu", + * "budget_id": "free_tier", + * "default_model": "azure/gpt-3.5-turbo-eu" + * }' + * + * # With object permissions + * curl -L -X POST 'http://localhost:4000/customer/new' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{ + * "user_id": "user_1", + * "object_permission": { + * "mcp_servers": ["server_1"], + * "mcp_access_groups": ["public_group"], + * "vector_stores": ["vector_store_1"] + * } + * }' + * + * # return end-user object + * ``` + * + * NOTE: This used to be called `/end_user/new`, we will still be maintaining compatibility for /end_user/XXX for these endpoints + */ + post: operations["new_end_user_end_user_new_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/end_user/unblock": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Unblock User + * @description [BETA] Unblock calls with this user id + * + * Example + * ``` + * curl -X POST "http://0.0.0.0:8000/user/unblock" + * -H "Authorization: Bearer sk-1234" + * -d '{ + * "user_ids": [, ...] + * }' + * ``` + */ + post: operations["unblock_user_end_user_unblock_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/end_user/update": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Update End User + * @description Example curl + * + * Parameters: + * - user_id: str + * - alias: Optional[str] = None # human-friendly alias + * - blocked: bool = False # allow/disallow requests for this end-user + * - max_budget: Optional[float] = None + * - budget_id: Optional[str] = None # give either a budget_id or max_budget + * - allowed_model_region: Optional[AllowedModelRegion] = ( + * None # require all user requests to use models in this specific region + * ) + * - default_model: Optional[str] = ( + * None # if no equivalent model in allowed region - default all requests to this model + * ) + * - object_permission: Optional[LiteLLM_ObjectPermissionBase] - Customer-specific object permissions to control access to resources. + * Supported fields: + * * mcp_servers: List[str] - List of allowed MCP server IDs + * * mcp_access_groups: List[str] - List of MCP access group names + * * mcp_tool_permissions: Dict[str, List[str]] - Map of server ID to allowed tool names + * * vector_stores: List[str] - List of allowed vector store IDs + * * agents: List[str] - List of allowed agent IDs + * * agent_access_groups: List[str] - List of agent access group names + * Example: {"mcp_servers": ["server_1"], "vector_stores": ["vector_store_1"]} + * IF null or {} then no object-level restrictions apply. + * + * Example curl: + * ``` + * curl --location 'http://0.0.0.0:4000/customer/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + * "user_id": "test-litellm-user-4", + * "budget_id": "paid_tier" + * }' + * + * # Updating object permissions + * curl -L -X POST 'http://localhost:4000/customer/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ + * "user_id": "user_1", + * "object_permission": { + * "mcp_servers": ["server_3"], + * "vector_stores": ["vector_store_2", "vector_store_3"] + * } + * }' + * + * See below for all params + * ``` + */ + post: operations["update_end_user_end_user_update_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/engines/{model}/chat/completions": { parameters: { query?: never; @@ -3479,6 +4074,44 @@ export interface paths { patch: operations["gemini_proxy_route_gemini__endpoint__patch"]; trace?: never; }; + "/get/allowed_ips": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Get Allowed Ips */ + get: operations["get_allowed_ips_get_allowed_ips_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/get/config/callbacks": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Config + * @description For Admin UI - allows admin to view config via UI + * # return the callbacks and the env variables for the callback + */ + get: operations["get_config_get_config_callbacks_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/get/default_team_settings": { parameters: { query?: never; @@ -3676,6 +4309,440 @@ export interface paths { patch?: never; trace?: never; }; + "/global/activity": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Global Activity + * @description Get number of API Requests, total tokens through proxy + * + * { + * "daily_data": [ + * const chartdata = [ + * { + * date: 'Jan 22', + * api_requests: 10, + * total_tokens: 2000 + * }, + * { + * date: 'Jan 23', + * api_requests: 10, + * total_tokens: 12 + * }, + * ], + * "sum_api_requests": 20, + * "sum_total_tokens": 2012 + * } + */ + get: operations["get_global_activity_global_activity_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/activity/cache_hits": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Global Activity + * @description Get number of cache hits, vs misses + * + * { + * "daily_data": [ + * const chartdata = [ + * { + * date: 'Jan 22', + * cache_hits: 10, + * llm_api_calls: 2000 + * }, + * { + * date: 'Jan 23', + * cache_hits: 10, + * llm_api_calls: 12 + * }, + * ], + * "sum_cache_hits": 20, + * "sum_llm_api_calls": 2012 + * } + */ + get: operations["get_global_activity_global_activity_cache_hits_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/activity/exceptions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Global Activity Exceptions + * @description Get number of API Requests, total tokens through proxy + * + * { + * "daily_data": [ + * const chartdata = [ + * { + * date: 'Jan 22', + * num_rate_limit_exceptions: 10, + * }, + * { + * date: 'Jan 23', + * num_rate_limit_exceptions: 10, + * }, + * ], + * "sum_api_exceptions": 20, + * } + */ + get: operations["get_global_activity_exceptions_global_activity_exceptions_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/activity/exceptions/deployment": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Global Activity Exceptions Per Deployment + * @description Get number of 429 errors - Grouped by deployment + * + * [ + * { + * "deployment": "https://azure-us-east-1.openai.azure.com/", + * "daily_data": [ + * const chartdata = [ + * { + * date: 'Jan 22', + * num_rate_limit_exceptions: 10 + * }, + * { + * date: 'Jan 23', + * num_rate_limit_exceptions: 12 + * }, + * ], + * "sum_num_rate_limit_exceptions": 20, + * + * }, + * { + * "deployment": "https://azure-us-east-1.openai.azure.com/", + * "daily_data": [ + * const chartdata = [ + * { + * date: 'Jan 22', + * num_rate_limit_exceptions: 10, + * }, + * { + * date: 'Jan 23', + * num_rate_limit_exceptions: 12 + * }, + * ], + * "sum_num_rate_limit_exceptions": 20, + * + * }, + * ] + */ + get: operations["get_global_activity_exceptions_per_deployment_global_activity_exceptions_deployment_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/activity/model": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Global Activity Model + * @description Get number of API Requests, total tokens through proxy - Grouped by MODEL + * + * [ + * { + * "model": "gpt-4", + * "daily_data": [ + * const chartdata = [ + * { + * date: 'Jan 22', + * api_requests: 10, + * total_tokens: 2000 + * }, + * { + * date: 'Jan 23', + * api_requests: 10, + * total_tokens: 12 + * }, + * ], + * "sum_api_requests": 20, + * "sum_total_tokens": 2012 + * + * }, + * { + * "model": "azure/gpt-4-turbo", + * "daily_data": [ + * const chartdata = [ + * { + * date: 'Jan 22', + * api_requests: 10, + * total_tokens: 2000 + * }, + * { + * date: 'Jan 23', + * api_requests: 10, + * total_tokens: 12 + * }, + * ], + * "sum_api_requests": 20, + * "sum_total_tokens": 2012 + * + * }, + * ] + */ + get: operations["get_global_activity_model_global_activity_model_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/all_end_users": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Global View All End Users + * @description [BETA] This is a beta endpoint. It will change. + * + * Use this to just get all the unique `end_users` + */ + get: operations["global_view_all_end_users_global_all_end_users_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/spend": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Global Spend + * @description [BETA] This is a beta endpoint. It will change. + * + * View total spend across all proxy keys + */ + get: operations["global_spend_global_spend_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/spend/all_tag_names": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Global Get All Tag Names */ + get: operations["global_get_all_tag_names_global_spend_all_tag_names_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/spend/end_users": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Global Spend End Users + * @description [BETA] This is a beta endpoint. It will change. + * + * Use this to get the top 'n' keys with the highest spend, ordered by spend. + */ + post: operations["global_spend_end_users_global_spend_end_users_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/spend/keys": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Global Spend Keys + * @description [BETA] This is a beta endpoint. It will change. + * + * Use this to get the top 'n' keys with the highest spend, ordered by spend. + */ + get: operations["global_spend_keys_global_spend_keys_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/spend/logs": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Global Spend Logs + * @description [BETA] This is a beta endpoint. It will change. + * + * Use this to get global spend (spend per day for last 30d). Admin-only endpoint + * + * More efficient implementation of /spend/logs, by creating a view over the spend logs table. + */ + get: operations["global_spend_logs_global_spend_logs_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/spend/models": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Global Spend Models + * @description [BETA] This is a beta endpoint. It will change. + * + * Use this to get the top 'n' models with the highest spend, ordered by spend. + */ + get: operations["global_spend_models_global_spend_models_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/spend/provider": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Global Spend Provider + * @description Get breakdown of spend per provider + * [ + * { + * "provider": "Azure OpenAI", + * "spend": 20 + * }, + * { + * "provider": "OpenAI", + * "spend": 10 + * }, + * { + * "provider": "VertexAI", + * "spend": 30 + * } + * ] + */ + get: operations["get_global_spend_provider_global_spend_provider_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/global/spend/refresh": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Global Spend Refresh + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Globally refresh spend MonthlyGlobalSpend view + */ + post: operations["global_spend_refresh_global_spend_refresh_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/global/spend/report": { parameters: { query?: never; @@ -3778,6 +4845,28 @@ export interface paths { patch?: never; trace?: never; }; + "/global/spend/teams": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Global Spend Per Team + * @description [BETA] This is a beta endpoint. It will change. + * + * Use this to get daily spend, grouped by `team_id` and `date` + */ + get: operations["global_spend_per_team_global_spend_teams_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/guardrails": { parameters: { query?: never; @@ -5091,6 +6180,111 @@ export interface paths { patch?: never; trace?: never; }; + "/invitation/delete": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Invitation Delete + * @description Delete invitation link + * + * ``` + * curl -X POST 'http://localhost:4000/invitation/delete' -H 'Content-Type: application/json' -d '{ + * "invitation_id": "1234" // 👈 id of invitation in 'LiteLLM_InvitationTable' + * }' + * ``` + */ + post: operations["invitation_delete_invitation_delete_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/invitation/info": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Invitation Info + * @description Allow admin to create invite links, to onboard new users to Admin UI. + * + * ``` + * curl -X POST 'http://localhost:4000/invitation/new' -H 'Content-Type: application/json' -d '{ + * "user_id": "1234" // 👈 id of user in 'LiteLLM_UserTable' + * }' + * ``` + */ + get: operations["invitation_info_invitation_info_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/invitation/new": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * New Invitation + * @description Allow admin to create invite links, to onboard new users to Admin UI. + * + * ``` + * curl -X POST 'http://localhost:4000/invitation/new' -H 'Content-Type: application/json' -d '{ + * "user_id": "1234" // 👈 id of user in 'LiteLLM_UserTable' + * }' + * ``` + */ + post: operations["new_invitation_invitation_new_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/invitation/update": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Invitation Update + * @description Update when invitation is accepted + * + * ``` + * curl -X POST 'http://localhost:4000/invitation/update' -H 'Content-Type: application/json' -d '{ + * "invitation_id": "1234" // 👈 id of invitation in 'LiteLLM_InvitationTable' + * "is_accepted": True // when invitation is accepted + * }' + * ``` + */ + post: operations["invitation_update_invitation_update_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/jwt/key/mapping/delete": { parameters: { query?: never; @@ -5940,6 +7134,23 @@ export interface paths { patch: operations["langfuse_proxy_route_langfuse__endpoint__patch"]; trace?: never; }; + "/lazy/warm/{name}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Warm */ + post: operations["warm_lazy_warm__name__post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/litellm/.well-known/litellm-ui-config": { parameters: { query?: never; @@ -5957,6 +7168,23 @@ export interface paths { patch?: never; trace?: never; }; + "/login": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Login */ + post: operations["login_login_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/mcp-rest/test/connection": { parameters: { query?: never; @@ -6054,6 +7282,52 @@ export interface paths { patch?: never; trace?: never; }; + "/memory-usage-in-mem-cache": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Memory Usage In Mem Cache + * @description 1. user_api_key_cache + * 2. router_cache + * 3. proxy_logging_cache + * 4. internal_usage_cache + */ + get: operations["memory_usage_in_mem_cache_memory_usage_in_mem_cache_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/memory-usage-in-mem-cache-items": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Memory Usage In Mem Cache Items + * @description 1. user_api_key_cache + * 2. router_cache + * 3. proxy_logging_cache + * 4. internal_usage_cache + */ + get: operations["memory_usage_in_mem_cache_items_memory_usage_in_mem_cache_items_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/milvus/{endpoint}": { parameters: { query?: never; @@ -6149,6 +7423,35 @@ export interface paths { patch?: never; trace?: never; }; + "/model/cost_map/source": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Model Cost Map Source + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Returns information about where the current model cost/pricing data was loaded from. + * + * Response fields: + * - source: "local" (bundled backup) or "remote" (fetched from URL) + * - url: the remote URL that was attempted (null when env-forced local) + * - is_env_forced: true if LITELLM_LOCAL_MODEL_COST_MAP=True forced local usage + * - fallback_reason: human-readable reason why remote failed (null on success) + * - model_count: number of models in the currently loaded cost map + */ + get: operations["get_model_cost_map_source_model_cost_map_source_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/model/delete": { parameters: { query?: never; @@ -6223,6 +7526,66 @@ export interface paths { patch?: never; trace?: never; }; + "/model/metrics": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Model Metrics + * @description View number of requests & avg latency per model on config.yaml + */ + get: operations["model_metrics_model_metrics_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/model/metrics/exceptions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Model Metrics Exceptions + * @description View number of failed requests per model on config.yaml + */ + get: operations["model_metrics_exceptions_model_metrics_exceptions_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/model/metrics/slow_responses": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Model Metrics Slow Responses + * @description View number of hanging requests per model_group + */ + get: operations["model_metrics_slow_responses_model_metrics_slow_responses_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/model/new": { parameters: { query?: never; @@ -6243,6 +7606,46 @@ export interface paths { patch?: never; trace?: never; }; + "/model/settings": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Model Settings + * @description Returns provider name, description, and required parameters for each provider + */ + get: operations["model_settings_model_settings_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/model/streaming_metrics": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Model Streaming Metrics + * @description View time to first token for models in spend logs + */ + get: operations["model_streaming_metrics_model_streaming_metrics_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/model/unblock": { parameters: { query?: never; @@ -7695,6 +9098,123 @@ export interface paths { patch: operations["update_organization_organization_update_patch"]; trace?: never; }; + "/otel-spans": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Get Otel Spans */ + get: operations["get_otel_spans_otel_spans_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/plugin-proxy/{plugin_name}/{path}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Plugin Proxy + * @description Authenticated reverse-proxy to a registered plugin backend. + * + * Restricted to proxy_admin callers — the shared plugin_key must not be + * usable as a confused-deputy credential by regular users. Plugin UIs + * talk to the plugin service directly via the iframe; this route is for + * administrative and server-to-server access only. + * + * The caller's litellm credential is stripped and replaced with the + * plugin's own plugin_key so plugins never receive a live litellm API key. + */ + get: operations["plugin_proxy_plugin_proxy__plugin_name___path__get"]; + /** + * Plugin Proxy + * @description Authenticated reverse-proxy to a registered plugin backend. + * + * Restricted to proxy_admin callers — the shared plugin_key must not be + * usable as a confused-deputy credential by regular users. Plugin UIs + * talk to the plugin service directly via the iframe; this route is for + * administrative and server-to-server access only. + * + * The caller's litellm credential is stripped and replaced with the + * plugin's own plugin_key so plugins never receive a live litellm API key. + */ + put: operations["plugin_proxy_plugin_proxy__plugin_name___path__put"]; + /** + * Plugin Proxy + * @description Authenticated reverse-proxy to a registered plugin backend. + * + * Restricted to proxy_admin callers — the shared plugin_key must not be + * usable as a confused-deputy credential by regular users. Plugin UIs + * talk to the plugin service directly via the iframe; this route is for + * administrative and server-to-server access only. + * + * The caller's litellm credential is stripped and replaced with the + * plugin's own plugin_key so plugins never receive a live litellm API key. + */ + post: operations["plugin_proxy_plugin_proxy__plugin_name___path__post"]; + /** + * Plugin Proxy + * @description Authenticated reverse-proxy to a registered plugin backend. + * + * Restricted to proxy_admin callers — the shared plugin_key must not be + * usable as a confused-deputy credential by regular users. Plugin UIs + * talk to the plugin service directly via the iframe; this route is for + * administrative and server-to-server access only. + * + * The caller's litellm credential is stripped and replaced with the + * plugin's own plugin_key so plugins never receive a live litellm API key. + */ + delete: operations["plugin_proxy_plugin_proxy__plugin_name___path__delete"]; + /** + * Plugin Proxy + * @description Authenticated reverse-proxy to a registered plugin backend. + * + * Restricted to proxy_admin callers — the shared plugin_key must not be + * usable as a confused-deputy credential by regular users. Plugin UIs + * talk to the plugin service directly via the iframe; this route is for + * administrative and server-to-server access only. + * + * The caller's litellm credential is stripped and replaced with the + * plugin's own plugin_key so plugins never receive a live litellm API key. + */ + options: operations["plugin_proxy_plugin_proxy__plugin_name___path__options"]; + /** + * Plugin Proxy + * @description Authenticated reverse-proxy to a registered plugin backend. + * + * Restricted to proxy_admin callers — the shared plugin_key must not be + * usable as a confused-deputy credential by regular users. Plugin UIs + * talk to the plugin service directly via the iframe; this route is for + * administrative and server-to-server access only. + * + * The caller's litellm credential is stripped and replaced with the + * plugin's own plugin_key so plugins never receive a live litellm API key. + */ + head: operations["plugin_proxy_plugin_proxy__plugin_name___path__head"]; + /** + * Plugin Proxy + * @description Authenticated reverse-proxy to a registered plugin backend. + * + * Restricted to proxy_admin callers — the shared plugin_key must not be + * usable as a confused-deputy credential by regular users. Plugin UIs + * talk to the plugin service directly via the iframe; this route is for + * administrative and server-to-server access only. + * + * The caller's litellm credential is stripped and replaced with the + * plugin's own plugin_key so plugins never receive a live litellm API key. + */ + patch: operations["plugin_proxy_plugin_proxy__plugin_name___path__patch"]; + trace?: never; + }; "/policies": { parameters: { query?: never; @@ -9368,6 +10888,23 @@ export interface paths { patch?: never; trace?: never; }; + "/queue/chat/completions": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Async Queue Request */ + post: operations["async_queue_request_queue_chat_completions_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/rag/ingest": { parameters: { query?: never; @@ -9534,6 +11071,52 @@ export interface paths { patch?: never; trace?: never; }; + "/reload/anthropic_beta_headers": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Reload Anthropic Beta Headers + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Manually reload the Anthropic beta headers configuration from the remote source. + * This will fetch fresh configuration from the anthropic_beta_headers_config.json file. + */ + post: operations["reload_anthropic_beta_headers_reload_anthropic_beta_headers_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/reload/model_cost_map": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Reload Model Cost Map + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Manually reload the model cost map from the remote source. + * This will fetch fresh pricing data from the model_prices_and_context_window.json file. + */ + post: operations["reload_model_cost_map_reload_model_cost_map_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/rerank": { parameters: { query?: never; @@ -9558,7 +11141,11 @@ export interface paths { path?: never; cookie?: never; }; - get?: never; + /** + * WebSocket: responses_websocket_endpoint + * @description WebSocket connection endpoint + */ + get: operations["websocket_responses_websocket_endpoint_get"]; put?: never; /** * Responses Api @@ -9819,6 +11406,108 @@ export interface paths { patch?: never; trace?: never; }; + "/schedule/anthropic_beta_headers_reload": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Schedule Anthropic Beta Headers Reload + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Schedule periodic reload of the Anthropic beta headers configuration. + * This will create a background job that reloads the configuration every specified hours. + */ + post: operations["schedule_anthropic_beta_headers_reload_schedule_anthropic_beta_headers_reload_post"]; + /** + * Cancel Anthropic Beta Headers Reload + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Cancel the scheduled periodic reload of the Anthropic beta headers configuration. + */ + delete: operations["cancel_anthropic_beta_headers_reload_schedule_anthropic_beta_headers_reload_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/schedule/anthropic_beta_headers_reload/status": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Anthropic Beta Headers Reload Status + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Get the status of the scheduled Anthropic beta headers reload job. + */ + get: operations["get_anthropic_beta_headers_reload_status_schedule_anthropic_beta_headers_reload_status_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/schedule/model_cost_map_reload": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Schedule Model Cost Map Reload + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Schedule periodic reload of the model cost map. + * This will create a background job that reloads the model cost map every specified hours. + */ + post: operations["schedule_model_cost_map_reload_schedule_model_cost_map_reload_post"]; + /** + * Cancel Model Cost Map Reload + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Cancel the scheduled periodic reload of the model cost map. + */ + delete: operations["cancel_model_cost_map_reload_schedule_model_cost_map_reload_delete"]; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/schedule/model_cost_map_reload/status": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Get Model Cost Map Reload Status + * @description ADMIN ONLY / MASTER KEY Only Endpoint + * + * Get the status of the scheduled model cost map reload job. + */ + get: operations["get_model_cost_map_reload_status_schedule_model_cost_map_reload_status_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/scim/v2": { parameters: { query?: never; @@ -10674,6 +12363,38 @@ export interface paths { patch?: never; trace?: never; }; + "/spend/keys": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Spend Key Fn + * @description View keys created, ordered by spend. + * + * - Admin callers (PROXY_ADMIN / PROXY_ADMIN_VIEW_ONLY) see every key in + * the database. + * - All other callers (INTERNAL_USER / INTERNAL_USER_VIEW_ONLY, etc.) are + * scoped to keys they own (``user_id == caller``). A caller with no + * ``user_id`` has no scope and receives an empty list rather than the + * full table. + * + * Example Request: + * ``` + * curl -X GET "http://0.0.0.0:8000/spend/keys" -H "Authorization: Bearer sk-1234" + * ``` + */ + get: operations["spend_key_fn_spend_keys_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/spend/logs": { parameters: { query?: never; @@ -10726,6 +12447,86 @@ export interface paths { patch?: never; trace?: never; }; + "/spend/logs/session/ui": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Ui View Session Spend Logs + * @description Get paginated spend logs for a particular session. + * + * Returns: + * { + * "data": List[LiteLLM_SpendLogs], + * "total": int, + * "page": int, + * "page_size": int, + * "total_pages": int, + * } + */ + get: operations["ui_view_session_spend_logs_spend_logs_session_ui_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/spend/logs/ui": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Ui View Spend Logs + * @description View spend logs with pagination support. + * Available at both `/spend/logs/v2` (public API) and `/spend/logs/ui` (internal UI). + * + * Returns paginated response with data, total, page, page_size, and total_pages. + * + * Example: + * ``` + * curl -X GET "http://0.0.0.0:8000/spend/logs/v2?start_date=2025-11-25%2000:00:00&end_date=2025-11-26%2023:59:59&page=1&page_size=50" -H "Authorization: Bearer sk-1234" + * ``` + */ + get: operations["ui_view_spend_logs_spend_logs_ui_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/spend/logs/ui/{request_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Ui View Request Response For Request Id + * @description View request / response for a specific request_id + * + * - goes through all callbacks, checks if any of them have a @property -> has_request_response_payload + * - if so, it will return the request and response payload + */ + get: operations["ui_view_request_response_for_request_id_spend_logs_ui__request_id__get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/spend/logs/v2": { parameters: { query?: never; @@ -10784,6 +12585,208 @@ export interface paths { patch?: never; trace?: never; }; + "/spend/users": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Spend User Fn + * @description View users created, ordered by spend. + * + * - Admin callers (PROXY_ADMIN / PROXY_ADMIN_VIEW_ONLY) see every user, or + * a specific user when ``user_id`` is supplied. + * - All other callers may only read their own row. If they supply a + * ``user_id`` query parameter that does not match their authenticated + * ``user_id`` the request is rejected with HTTP 403; supplying their + * own id (or none at all) returns just their row. A caller with no + * ``user_id`` on their key has no scope and receives an empty list + * rather than the full table. + * + * Example Request: + * ``` + * curl -X GET "http://0.0.0.0:8000/spend/users" -H "Authorization: Bearer sk-1234" + * ``` + * + * View User Table row for user_id + * ``` + * curl -X GET "http://0.0.0.0:8000/spend/users?user_id=1234" -H "Authorization: Bearer sk-1234" + * ``` + */ + get: operations["spend_user_fn_spend_users_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sso/callback": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Auth Callback + * @description Verify login + */ + get: operations["auth_callback_sso_callback_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sso/cli/complete/{login_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Cli Sso Complete */ + post: operations["cli_sso_complete_sso_cli_complete__login_id__post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sso/cli/poll/{key_id}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Cli Poll Key + * @description CLI polling endpoint - retrieves session from cache and generates JWT. + * + * Flow: + * 1. First poll (no team_id): Returns teams list without generating JWT + * 2. Second poll (with team_id): Generates JWT with selected team and deletes session + * + * Args: + * key_id: The CLI login session ID + * team_id: Optional team ID to assign to the JWT. If provided, must be one of user's teams. + */ + get: operations["cli_poll_key_sso_cli_poll__key_id__get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sso/cli/start": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Cli Sso Start */ + post: operations["cli_sso_start_sso_cli_start_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sso/debug/callback": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Debug Sso Callback + * @description Returns the OpenID object returned by the SSO provider + */ + get: operations["debug_sso_callback_sso_debug_callback_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sso/debug/login": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Debug Sso Login + * @description Create Proxy API Keys using Google Workspace SSO. Requires setting PROXY_BASE_URL in .env + * PROXY_BASE_URL should be the your deployed proxy endpoint, e.g. PROXY_BASE_URL="https://litellm-production-7002.up.railway.app/" + * Example: + */ + get: operations["debug_sso_login_sso_debug_login_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sso/get/ui_settings": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** Get Ui Settings */ + get: operations["get_ui_settings_sso_get_ui_settings_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/sso/key/generate": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Google Login + * @description Create Proxy API Keys using Google Workspace SSO. Requires setting PROXY_BASE_URL in .env + * PROXY_BASE_URL should be the your deployed proxy endpoint, e.g. PROXY_BASE_URL="https://litellm-production-7002.up.railway.app/" + * Example: + */ + get: operations["google_login_sso_key_generate_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/sso/readiness": { parameters: { query?: never; @@ -11322,6 +13325,36 @@ export interface paths { patch?: never; trace?: never; }; + "/team/filter/ui": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Ui View Teams + * @description [PROXY-ADMIN ONLY] Filter teams based on partial match of team_id or team_alias with pagination. + * + * Args: + * user_id (Optional[str]): Partial user ID to search for + * user_email (Optional[str]): Partial email to search for + * page (int): Page number for pagination (starts at 1) + * page_size (int): Number of items per page (max 100) + * user_api_key_dict (UserAPIKeyAuth): User authentication information + * + * Returns: + * List[LiteLLM_SpendLogs]: Paginated list of matching user records + */ + get: operations["ui_view_teams_team_filter_ui_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/team/info": { parameters: { query?: never; @@ -12360,6 +14393,32 @@ export interface paths { patch?: never; trace?: never; }; + "/user/available_roles": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Ui Get Available Role + * @description Endpoint used by Admin UI to show all available roles to assign a user + * return { + * "proxy_admin": { + * "description": "Proxy Admin role", + * "ui_label": "Admin" + * } + * } + */ + get: operations["ui_get_available_role_user_available_roles_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/user/available_users": { parameters: { query?: never; @@ -12529,6 +14588,36 @@ export interface paths { patch?: never; trace?: never; }; + "/user/filter/ui": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Ui View Users + * @description Filter users based on partial match of user_id or email with pagination. + * + * Behaviour depends on the ``scope_user_search_to_org`` UI-setting flag + * (stored in the ``litellm_uisettings`` table): + * + * * **Flag OFF (default):** any authenticated user can search all users. + * * **Flag ON:** + * - Proxy admins see all users. + * - Org admins see only users in their org(s). + * - Team admins for an org-bound team see users in that org. + * - Others receive a 403. + */ + get: operations["ui_view_users_user_filter_ui_get"]; + put?: never; + post?: never; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/user/info": { parameters: { query?: never; @@ -15147,7 +17236,11 @@ export interface paths { path?: never; cookie?: never; }; - get?: never; + /** + * WebSocket: responses_websocket_endpoint + * @description WebSocket connection endpoint + */ + get: operations["websocket_responses_websocket_endpoint_get_2"]; put?: never; /** * Responses Api @@ -16698,6 +18791,55 @@ export interface paths { patch?: never; trace?: never; }; + "/v2/key/info": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** + * Info Key Fn V2 + * @description Retrieve information about a list of keys. + * + * **New endpoint**. Currently admin only. + * Parameters: + * keys: Optional[list] = body parameter representing the key(s) in the request + * user_api_key_dict: UserAPIKeyAuth = Dependency representing the user's API key + * Returns: + * Dict containing the key and its associated information + * + * Example Curl: + * ``` + * curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-1234" -d {"keys": ["sk-1", "sk-2", "sk-3"]} + * ``` + */ + post: operations["info_key_fn_v2_v2_key_info_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v2/login": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Login V2 */ + post: operations["login_v2_v2_login_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/v2/model/info": { parameters: { query?: never; @@ -16852,6 +18994,40 @@ export interface paths { patch?: never; trace?: never; }; + "/v3/login": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Login V3 */ + post: operations["login_v3_v3_login_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; + "/v3/login/exchange": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + get?: never; + put?: never; + /** Login V3 Exchange */ + post: operations["login_v3_exchange_v3_login_exchange_post"]; + delete?: never; + options?: never; + head?: never; + patch?: never; + trace?: never; + }; "/vantage/delete": { parameters: { query?: never; @@ -17256,6 +19432,52 @@ export interface paths { patch?: never; trace?: never; }; + "/vertex-ai/{endpoint}": { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + /** + * Vertex Proxy Route + * @description Call LiteLLM proxy via Vertex AI SDK. + * + * [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + */ + get: operations["vertex_proxy_route_vertex_ai__endpoint__get_2"]; + /** + * Vertex Proxy Route + * @description Call LiteLLM proxy via Vertex AI SDK. + * + * [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + */ + put: operations["vertex_proxy_route_vertex_ai__endpoint__put_2"]; + /** + * Vertex Proxy Route + * @description Call LiteLLM proxy via Vertex AI SDK. + * + * [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + */ + post: operations["vertex_proxy_route_vertex_ai__endpoint__post_2"]; + /** + * Vertex Proxy Route + * @description Call LiteLLM proxy via Vertex AI SDK. + * + * [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + */ + delete: operations["vertex_proxy_route_vertex_ai__endpoint__delete_2"]; + options?: never; + head?: never; + /** + * Vertex Proxy Route + * @description Call LiteLLM proxy via Vertex AI SDK. + * + * [Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai) + */ + patch: operations["vertex_proxy_route_vertex_ai__endpoint__patch_2"]; + trace?: never; + }; "/vertex_ai/discovery/{endpoint}": { parameters: { query?: never; @@ -18423,6 +20645,12 @@ export interface components { /** Tags */ tags?: string[]; }; + /** + * AlertType + * @description Enum for alert types and management event types + * @enum {string} + */ + AlertType: "llm_exceptions" | "llm_too_slow" | "llm_requests_hanging" | "budget_alerts" | "spend_reports" | "failed_tracking_spend" | "db_exceptions" | "daily_reports" | "cooldown_deployment" | "new_model_added" | "outage_alerts" | "region_outage_alerts" | "fallback_reports" | "new_virtual_key_created" | "virtual_key_updated" | "virtual_key_deleted" | "new_team_created" | "team_updated" | "team_deleted" | "new_internal_user_created" | "internal_user_updated" | "internal_user_deleted"; /** AllowedVectorStoreIndexItem */ AllowedVectorStoreIndexItem: { /** Index Name */ @@ -19499,6 +21727,11 @@ export interface components { * @enum {string} */ CallTypes: "embedding" | "aembedding" | "completion" | "acompletion" | "atext_completion" | "text_completion" | "image_generation" | "aimage_generation" | "image_edit" | "aimage_edit" | "moderation" | "amoderation" | "atranscription" | "transcription" | "aspeech" | "speech" | "rerank" | "arerank" | "search" | "asearch" | "_arealtime" | "_aresponses_websocket" | "create_batch" | "acreate_batch" | "aretrieve_batch" | "retrieve_batch" | "acancel_batch" | "cancel_batch" | "pass_through_endpoint" | "anthropic_messages" | "get_assistants" | "aget_assistants" | "create_assistants" | "acreate_assistants" | "delete_assistant" | "adelete_assistant" | "acreate_thread" | "create_thread" | "aget_thread" | "get_thread" | "a_add_message" | "add_message" | "aget_messages" | "get_messages" | "arun_thread" | "run_thread" | "arun_thread_stream" | "run_thread_stream" | "afile_retrieve" | "file_retrieve" | "afile_delete" | "file_delete" | "afile_list" | "file_list" | "acreate_file" | "create_file" | "afile_content" | "file_content" | "create_fine_tuning_job" | "acreate_fine_tuning_job" | "create_video" | "acreate_video" | "avideo_retrieve" | "video_retrieve" | "avideo_content" | "video_content" | "video_remix" | "avideo_remix" | "video_list" | "avideo_list" | "video_retrieve_job" | "avideo_retrieve_job" | "video_delete" | "avideo_delete" | "video_create_character" | "avideo_create_character" | "video_get_character" | "avideo_get_character" | "video_edit" | "avideo_edit" | "video_extension" | "avideo_extension" | "vector_store_file_create" | "avector_store_file_create" | "vector_store_file_list" | "avector_store_file_list" | "vector_store_file_retrieve" | "avector_store_file_retrieve" | "vector_store_file_content" | "avector_store_file_content" | "vector_store_file_update" | "avector_store_file_update" | "vector_store_file_delete" | "avector_store_file_delete" | "vector_store_create" | "avector_store_create" | "vector_store_search" | "avector_store_search" | "create_container" | "acreate_container" | "list_containers" | "alist_containers" | "retrieve_container" | "aretrieve_container" | "delete_container" | "adelete_container" | "list_container_files" | "alist_container_files" | "upload_container_file" | "aupload_container_file" | "create_sandbox" | "acreate_sandbox" | "delete_sandbox" | "adelete_sandbox" | "run_code" | "arun_code" | "code_interpreter_tool" | "acode_interpreter_tool" | "acancel_fine_tuning_job" | "cancel_fine_tuning_job" | "alist_fine_tuning_jobs" | "list_fine_tuning_jobs" | "aretrieve_fine_tuning_job" | "retrieve_fine_tuning_job" | "responses" | "aresponses" | "alist_input_items" | "llm_passthrough_route" | "allm_passthrough_route" | "generate_content" | "agenerate_content" | "generate_content_stream" | "agenerate_content_stream" | "ocr" | "aocr" | "call_mcp_tool" | "list_mcp_tools" | "asend_message" | "send_message" | "acreate_skill"; + /** CallbackDelete */ + CallbackDelete: { + /** Callback Name */ + callback_name: string; + }; /** * CallbackLogFailure * @description A record that failed to replay, identified by its index in the batch. @@ -19652,7 +21885,6 @@ export interface components { /** ChatCompletionAudioObject */ ChatCompletionAudioObject: { input_audio: components["schemas"]["InputAudio"]; - prompt_cache_breakpoint?: components["schemas"]["PromptCacheBreakpoint"]; /** * Type * @constant @@ -20167,6 +22399,353 @@ export interface components { /** Regulation */ regulation: string; }; + /** ConfigFieldDelete */ + ConfigFieldDelete: { + /** + * Config Type + * @constant + */ + config_type: "general_settings"; + /** Field Name */ + field_name: string; + }; + /** ConfigFieldInfo */ + ConfigFieldInfo: { + /** Field Name */ + field_name: string; + /** Field Value */ + field_value: unknown; + }; + /** ConfigFieldUpdate */ + ConfigFieldUpdate: { + /** + * Config Type + * @constant + */ + config_type: "general_settings"; + /** Field Name */ + field_name: string; + /** Field Value */ + field_value: unknown; + }; + /** + * ConfigGeneralSettings + * @description Documents all the fields supported by `general_settings` in config.yaml + */ + ConfigGeneralSettings: { + /** + * Alert To Webhook Url + * @description Mapping of alert type to webhook url. e.g. `alert_to_webhook_url: {'budget_alerts': 'https://nothooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'}` + */ + alert_to_webhook_url?: { + [key: string]: unknown; + } | null; + /** + * Alert Types + * @description List of alerting types. By default it is all alerts + */ + alert_types?: components["schemas"]["AlertType"][] | null; + /** + * Alerting + * @description List of alerting integrations. Today, just slack - `alerting: ['slack']` + */ + alerting?: unknown[] | null; + /** + * Alerting Args + * @description Controllable params for slack alerting - e.g. ttl in cache. + */ + alerting_args?: { + [key: string]: unknown; + } | null; + /** + * Alerting Threshold + * @description sends alerts if requests hang for 5min+ + */ + alerting_threshold?: number | null; + /** + * Allow Cli Sso Verification Uri Complete + * @description opt-in to RFC 8628 verification_uri_complete for the CLI SSO device flow, pre-filling the user_code in the browser. Off by default; intended for same-host clients where the device that starts the flow and the browser run on the same machine + */ + allow_cli_sso_verification_uri_complete?: boolean | null; + /** + * Allowed Routes + * @description Proxy API Endpoints you want users to be able to access + */ + allowed_routes?: unknown[] | null; + /** + * Background Health Checks + * @description run health checks in background + */ + background_health_checks?: boolean | null; + /** + * Cancel On Disconnect + * @description cancel the in-flight upstream LLM request (non-streaming) when the client disconnects, freeing backend capacity (e.g. a vLLM GPU slot); the request is logged as a 499 failure + */ + cancel_on_disconnect?: boolean | null; + /** + * Completion Model + * @description proxy level default model for all chat completion calls + */ + completion_model?: string | null; + /** @description standalone Redis for cross-pod coordination (tpm/rpm rate limits, spend tracking, pod lock manager, shared health checks), configured independently of the response-cache backend; takes precedence over borrowing the `cache_params` Redis and over the REDIS_* env fallback */ + coordination_redis?: components["schemas"]["CoordinationRedisParams"] | null; + /** + * Custom Auth + * @description override user_api_key_auth with your own auth script - https://docs.litellm.ai/docs/proxy/virtual_keys#custom-auth + */ + custom_auth?: string | null; + /** @description custom args for instantiating dynamodb client - e.g. billing provision */ + database_args?: components["schemas"]["DynamoDBArgs"] | null; + /** + * Database Connect Timeout + * @description Prisma `connect_timeout` URL param (seconds). Bounds how long the engine waits to establish a new connection before failing. Defaults to Prisma's built-in value when unset. + */ + database_connect_timeout?: number | null; + /** + * Database Connection Pool Limit + * @description default connection pool for prisma client connecting to postgres db + * @default 10 + */ + database_connection_pool_limit: number | null; + /** + * Database Connection Timeout + * @description default timeout for a connection to the database + * @default 60 + */ + database_connection_timeout: number | null; + /** + * Database Disable Prepared Statements + * @description Disable server-side prepared statements by setting Prisma's `pgbouncer=true` URL param. Use this for pgbouncer transaction-pooling deployments, or to prevent the 'cached plan must not change result type' error that pooled connections hit during rolling schema migrations. An explicit `pgbouncer` in `database_extra_connection_params` takes precedence. + */ + database_disable_prepared_statements?: boolean | null; + /** + * Database Extra Connection Params + * @description Escape hatch: extra key/value pairs appended verbatim to the Prisma DATABASE_URL / DIRECT_URL query string (e.g. `sslmode`, `pgbouncer`, `statement_cache_size`). Keys here override any default LiteLLM sets. + */ + database_extra_connection_params?: { + [key: string]: unknown; + } | null; + /** + * Database Socket Timeout + * @description Prisma `socket_timeout` URL param (seconds). When set, an idle/slow connection that has not produced data within this window is closed. This is the main knob for capping idle DB connections from LiteLLM. + */ + database_socket_timeout?: number | null; + /** + * Database Type + * @description to use dynamodb instead of postgres db + */ + database_type?: "dynamo_db" | null; + /** + * Database Url + * @description connect to a postgres db - needed for generating temporary keys + tracking spend / key + */ + database_url?: string | null; + /** + * Disable Budget Reservation + * @description If True, disables the optimistic per-request budget reservation introduced in v1.84.0. WARNING: This weakens hard budget enforcement. Without the reservation, a burst of concurrent requests from a single key can each pass the read-time spend check before any of them is charged, allowing a configured budget to be exceeded under high concurrency. Budgets are still evaluated on every request at read time, so an already-exhausted budget is still rejected. Enable only if your deployment is experiencing phantom BudgetExceededError responses caused by leaked reservations (see GitHub issue #27639). A proxy-level WARNING is logged on every request while this flag is active as a reminder that hard enforcement is relaxed. + */ + disable_budget_reservation?: boolean | null; + /** + * Enable Public Model Hub + * @description Public model hub for users to see what models they have access to, supported openai params, etc. + * @default false + */ + enable_public_model_hub: boolean; + /** + * Forward Client Headers To Llm Api + * @description If True, forwards client headers (e.g. Authorization) to the LLM API. Required for Claude Code with Max subscription. + */ + forward_client_headers_to_llm_api?: boolean | null; + /** + * Global Max Parallel Requests + * @description global max parallel requests to allow for a proxy instance. + */ + global_max_parallel_requests?: number | null; + /** + * Health Check Concurrency + * @description limit concurrent health checks per cycle; when unset, health checks run without a concurrency cap + */ + health_check_concurrency?: number | null; + /** + * Health Check Interval + * @description background health check interval in seconds + * @default 300 + */ + health_check_interval: number; + /** + * Health Check Skip Disabled Background Models + * @description When true, deployments with model_info.disable_background_health_check are skipped for on-demand GET /health as well as the background health loop. + * @default false + */ + health_check_skip_disabled_background_models: boolean; + /** + * Infer Model From Keys + * @description for `/models` endpoint, infers available model based on environment keys (e.g. OPENAI_API_KEY) + */ + infer_model_from_keys?: boolean | null; + /** @description key manager to load keys from / decrypt keys with */ + key_management_system?: components["schemas"]["KeyManagementSystem"] | null; + /** + * Master Key + * @description require a key for all calls to proxy + */ + master_key?: string | null; + /** + * Max Parallel Requests + * @description maximum parallel requests for each api key + */ + max_parallel_requests?: number | null; + /** + * Max Request Size Mb + * @description max request size in MB, if a request is larger than this size it will be rejected + */ + max_request_size_mb?: number | null; + /** + * Max Response Size Mb + * @description max response size in MB, if a response is larger than this size it will be rejected + */ + max_response_size_mb?: number | null; + /** + * Maximum Spend Logs Retention Period + * @description Maximum retention period for spend logs (e.g., '7d' for 7 days). Logs older than this will be deleted. + */ + maximum_spend_logs_retention_period?: string | null; + /** + * Mcp Internal Ip Ranges + * @description Custom CIDR ranges that define internal/private networks for MCP access control. When set, only these ranges are treated as internal. Defaults to RFC 1918 private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8). + */ + mcp_internal_ip_ranges?: string[] | null; + /** + * Mcp Required Fields + * @description List of MCP server fields that must be filled in for a submission to pass standards checks (e.g. ['description', 'source_url', 'alias']). + */ + mcp_required_fields?: string[] | null; + /** + * Mcp Trusted Proxy Ranges + * @description CIDR ranges of trusted reverse proxies. When set, X-Forwarded-For and X-Forwarded-* origin headers are only trusted from these IPs. + */ + mcp_trusted_proxy_ranges?: string[] | null; + /** + * Mcp Xff Num Trusted Hops + * @description Number of trusted reverse proxies/load balancers in front of the gateway that append to X-Forwarded-For. When set (and mcp_trusted_proxy_ranges validates the direct peer), the client IP for MCP access control is read this many entries from the right of the chain instead of the spoofable leftmost value, defeating append-style X-Forwarded-For forgery. + */ + mcp_xff_num_trusted_hops?: number | null; + /** + * Otel + * @description [BETA] OpenTelemetry support - this might change, use with caution. + */ + otel?: boolean | null; + /** + * Pass Through Endpoints + * @description Set-up pass-through endpoints for provider-specific endpoints. Docs - https://docs.litellm.ai/docs/proxy/pass_through + */ + pass_through_endpoints?: components["schemas"]["PassThroughGenericEndpoint"][] | null; + /** + * Pass Through Request Timeout + * @description Default upstream request timeout in seconds for native and custom pass-through endpoints that use pass_through_request. Defaults to 600 when unset. + */ + pass_through_request_timeout?: number | null; + /** + * Plugins + * @description external services registered as embeddable UI plugins + */ + plugins?: components["schemas"]["PluginConfig"][] | null; + /** + * Provider Url Destination Allowed Hosts + * @description Allowlist of hosts a request may redirect a provider call's destination URL to. + */ + provider_url_destination_allowed_hosts?: string[] | null; + /** + * Reject Clientside Metadata Tags + * @description When set to True, rejects requests that contain client-side 'metadata.tags' to prevent users from influencing budgets by sending different tags. Tags can only be inherited from the API key metadata. + */ + reject_clientside_metadata_tags?: boolean | null; + /** + * Store Model In Db + * @description If True, models and config are stored in and loaded from the database. Default is False. + */ + store_model_in_db?: boolean | null; + /** + * Store Prompts In Spend Logs + * @description If True, stores request messages and responses in spend logs. Default is False. + */ + store_prompts_in_spend_logs?: boolean | null; + /** + * Supported Db Objects + * @description Fine-grained control over which object types to load from the database when store_model_in_db is True. Available types: 'models', 'mcp', 'guardrails', 'vector_stores', 'pass_through_endpoints', 'prompts', 'model_cost_map', 'tools', 'config_overrides'. If not set, all objects are loaded (default behavior). + */ + supported_db_objects?: components["schemas"]["SupportedDBObjectType"][] | null; + /** + * Trusted Proxy Ranges + * @description CIDR ranges of trusted reverse proxies allowed to provide identity headers for header-based auth paths such as enable_oauth2_proxy_auth and custom_ui_sso_sign_in_handler. + */ + trusted_proxy_ranges?: string[] | null; + /** + * Ui Access Mode + * @description Control access to the Proxy UI + * @default all + */ + ui_access_mode: ("admin_only" | "all") | null; + /** + * Use Azure Key Vault + * @description load keys from azure key vault + */ + use_azure_key_vault?: boolean | null; + /** + * Use Google Kms + * @description decrypt keys with google kms + */ + use_google_kms?: boolean | null; + /** + * Use Spend Logs Partitioning + * @description If True and LiteLLM_SpendLogs has been converted to a range-partitioned table (db_scripts/partition_spend_logs.sql), retention cleanup drops expired partitions instead of deleting rows, and pre-creates upcoming partitions. Default is False. + */ + use_spend_logs_partitioning?: boolean | null; + /** User Header Mappings */ + user_header_mappings?: components["schemas"]["UserHeaderMapping"][] | null; + /** + * User Header Name + * @description [DEPRECATED] Use 'user_header_mappings' instead. When set, the header value is treated as the end user id unless overridden by user_header_mappings. + */ + user_header_name?: string | null; + /** + * User Mcp Management Mode + * @description Controls how non-admin users interact with MCP servers in the dashboard. 'restricted' shows only accessible servers, 'view_all' lists every server in read-only mode. + */ + user_mcp_management_mode?: ("restricted" | "view_all") | null; + /** + * User Url Allowed Hosts + * @description SSRF allowlist for user-supplied URLs. Entries are `hostname` or `hostname:port` (bracketed for IPv6, e.g. `[::1]:8080`). Allowlisted hosts skip the blocked-network check in validate_url() but still resolve DNS. Use this to permit legitimate internal targets, e.g. an internal OpenAPI/MCP server. + */ + user_url_allowed_hosts?: string[] | null; + /** + * User Url Validation + * @description Master switch for the SSRF guard applied to user-supplied URLs (image_url, file_url, MCP/OpenAPI spec URLs, etc). Defaults to True. Set to False to disable DNS/IP validation entirely (not recommended). + */ + user_url_validation?: boolean | null; + }; + /** ConfigList */ + ConfigList: { + /** Field Default Value */ + field_default_value: unknown; + /** Field Description */ + field_description: string; + /** Field Name */ + field_name: string; + /** Field Type */ + field_type: string; + /** Field Value */ + field_value: unknown; + /** Nested Fields */ + nested_fields?: components["schemas"]["FieldDetail"][] | null; + /** + * Premium Field + * @default false + */ + premium_field: boolean; + /** Stored In Db */ + stored_in_db: boolean | null; + }; /** * ConfigOverrideSettingsResponse * @description Response model for config override settings GET endpoints. @@ -20192,6 +22771,34 @@ export interface components { [key: string]: unknown; }; }; + /** + * ConfigYAML + * @description Documents all the fields supported by the config.yaml + */ + ConfigYAML: { + /** + * Environment Variables + * @description Object to pass in additional environment variables via POST request + */ + environment_variables?: { + [key: string]: unknown; + } | null; + general_settings?: components["schemas"]["ConfigGeneralSettings"] | null; + /** + * Litellm Settings + * @description litellm Module settings. See __init__.py for all, example litellm.drop_params=True, litellm.set_verbose=True, litellm.api_base, litellm.cache + */ + litellm_settings?: { + [key: string]: unknown; + } | null; + /** + * Model List + * @description List of supported models on the server, with model-specific configs + */ + model_list?: components["schemas"]["ModelParams"][] | null; + /** @description litellm router object settings. See router.py __init__ for all, example router.num_retries=5, router.timeout=5, router.max_retries=5, router.retry_after=5 */ + router_settings?: components["schemas"]["UpdateRouterConfig"] | null; + }; /** ConfigurableClientsideParamsCustomAuth */ "ConfigurableClientsideParamsCustomAuth-Input": { /** Api Base */ @@ -20280,6 +22887,82 @@ export interface components { */ pattern_type: "prebuilt" | "regex"; }; + /** + * CoordinationRedisNode + * @description A single startup node of a cluster-mode Redis used for proxy coordination. + */ + CoordinationRedisNode: { + /** + * Host + * @description hostname of the cluster node + */ + host: string; + /** + * Port + * @description port of the cluster node + */ + port: number; + }; + /** + * CoordinationRedisParams + * @description Connection params for the proxy's coordination Redis (cross-pod tpm/rpm rate + * limits, spend tracking, pod lock manager, shared health checks), configured + * independently of the response-cache backend in `litellm_settings.cache_params`. + */ + CoordinationRedisParams: { + /** + * Host + * @description Redis hostname + */ + host?: string | null; + /** + * Password + * @description Redis password + */ + password?: string | null; + /** + * Port + * @description Redis port + */ + port?: number | null; + /** + * Sentinel Nodes + * @description sentinel [host, port] pairs; when set a sentinel-managed client is used + */ + sentinel_nodes?: (string | number)[][] | null; + /** + * Sentinel Password + * @description password for the sentinel nodes + */ + sentinel_password?: string | null; + /** + * Service Name + * @description sentinel service name + */ + service_name?: string | null; + /** + * Ssl + * @description connect over TLS + */ + ssl?: boolean | null; + /** + * Startup Nodes + * @description cluster-mode startup nodes; when set a cluster client is used + */ + startup_nodes?: components["schemas"]["CoordinationRedisNode"][] | null; + /** + * Url + * @description full Redis connection url, e.g. redis://:pass@host:6379 + */ + url?: string | null; + /** + * Username + * @description Redis username + */ + username?: string | null; + } & { + [key: string]: unknown; + }; /** CoordinationRedisSettingsField */ CoordinationRedisSettingsField: { /** Field Default */ @@ -20774,7 +23457,7 @@ export interface components { /** Deployment */ Deployment: { litellm_params: components["schemas"]["LiteLLM_Params"]; - model_info: components["schemas"]["ModelInfo"]; + model_info: components["schemas"]["litellm__types__router__ModelInfo"]; /** Model Name */ model_name: string; } & { @@ -20808,6 +23491,60 @@ export interface components { */ type: "text"; }; + /** DynamoDBArgs */ + DynamoDBArgs: { + /** Assume Role Aws Role Name */ + assume_role_aws_role_name?: string | null; + /** Assume Role Aws Session Name */ + assume_role_aws_session_name?: string | null; + /** Aws Duration Seconds */ + aws_duration_seconds?: number | null; + /** Aws Policy */ + aws_policy?: string | null; + /** Aws Policy Arns */ + aws_policy_arns?: string[] | null; + /** Aws Provider Id */ + aws_provider_id?: string | null; + /** Aws Role Name */ + aws_role_name?: string | null; + /** Aws Session Name */ + aws_session_name?: string | null; + /** Aws Web Identity Token */ + aws_web_identity_token?: string | null; + /** + * Billing Mode + * @enum {string} + */ + billing_mode: "PROVISIONED_THROUGHPUT" | "PAY_PER_REQUEST"; + /** + * Config Table Name + * @default LiteLLM_Config + */ + config_table_name: string; + /** + * Key Table Name + * @default LiteLLM_VerificationToken + */ + key_table_name: string; + /** Read Capacity Units */ + read_capacity_units?: number | null; + /** Region Name */ + region_name: string; + /** + * Spend Table Name + * @default LiteLLM_SpendLogs + */ + spend_table_name: string; + /** Ssl Verify */ + ssl_verify?: boolean | null; + /** + * User Table Name + * @default LiteLLM_UserTable + */ + user_table_name: string; + /** Write Capacity Units */ + write_capacity_units?: number | null; + }; /** * EmailEvent * @enum {string} @@ -21090,6 +23827,19 @@ export interface components { */ model: string; }; + /** FieldDetail */ + FieldDetail: { + /** Field Default Value */ + field_default_value?: unknown; + /** Field Description */ + field_description: string; + /** Field Name */ + field_name: string; + /** Field Type */ + field_type: string; + /** Stored In Db */ + stored_in_db: boolean | null; + }; /** FunctionCall */ FunctionCall: { /** Arguments */ @@ -21444,6 +24194,15 @@ export interface components { */ team_member_permissions: string[] | null; }; + /** GlobalEndUsersSpend */ + GlobalEndUsersSpend: { + /** Api Key */ + api_key?: string | null; + /** Endtime */ + endTime?: string | null; + /** Starttime */ + startTime?: string | null; + }; /** * GraySwanGuardrailConfigModelOptionalParams * @description Optional parameters for the Gray Swan guardrail. @@ -21756,6 +24515,53 @@ export interface components { /** User Id */ user_id: string; }; + /** InvitationDelete */ + InvitationDelete: { + /** Invitation Id */ + invitation_id: string; + }; + /** InvitationModel */ + InvitationModel: { + /** Accepted At */ + accepted_at: string | null; + /** + * Created At + * Format: date-time + */ + created_at: string; + /** Created By */ + created_by: string; + /** + * Expires At + * Format: date-time + */ + expires_at: string; + /** Id */ + id: string; + /** Is Accepted */ + is_accepted: boolean; + /** + * Updated At + * Format: date-time + */ + updated_at: string; + /** Updated By */ + updated_by: string; + /** User Id */ + user_id: string; + }; + /** InvitationNew */ + InvitationNew: { + /** User Id */ + user_id: string; + }; + /** InvitationUpdate */ + InvitationUpdate: { + /** Invitation Id */ + invitation_id: string; + /** Is Accepted */ + is_accepted: boolean; + }; /** JWTKeyMappingResponse */ JWTKeyMappingResponse: { /** @@ -21809,6 +24615,11 @@ export interface components { * @enum {string} */ KeyManagementRoutes: "/key/generate" | "/key/update" | "/key/delete" | "/key/regenerate" | "/key/service-account/generate" | "/key/{key_id}/regenerate" | "/key/block" | "/key/unblock" | "/key/bulk_update" | "/team/key/bulk_update" | "/key/{key_id}/reset_spend" | "/key/access_group_assignment" | "/key/info" | "/key/health" | "/key/list" | "/key/aliases" | "/team/daily/activity" | "/spend/logs" | "/spend/logs/v2"; + /** + * KeyManagementSystem + * @enum {string} + */ + KeyManagementSystem: "google_kms" | "azure_key_vault" | "aws_secret_manager" | "google_secret_manager" | "hashicorp_vault" | "cyberark" | "local" | "aws_kms" | "custom"; /** * KeyMetadata * @description Metadata for a key @@ -23494,6 +26305,13 @@ export interface components { /** User Role */ user_role?: string | null; }; + /** LiteLLM_UserTableFiltered */ + LiteLLM_UserTableFiltered: { + /** User Email */ + user_email?: string | null; + /** User Id */ + user_id: string; + }; /** LiteLLM_UserTableWithKeyCount */ LiteLLM_UserTableWithKeyCount: { /** @@ -24823,41 +27641,21 @@ export interface components { /** Tpm */ tpm?: number | null; }; - /** ModelInfo */ - ModelInfo: { - /** Base Model */ - base_model?: string | null; - /** Blocked */ - blocked?: boolean | null; - /** Created At */ - created_at?: string | null; - /** Created By */ - created_by?: string | null; - /** - * Db Model - * @default false - */ - db_model: boolean; - /** Id */ - id: string | null; - /** Team Id */ - team_id?: string | null; - /** Team Public Model Name */ - team_public_model_name?: string | null; - /** Tier */ - tier?: ("free" | "paid") | null; - /** Updated At */ - updated_at?: string | null; - /** Updated By */ - updated_by?: string | null; - } & { - [key: string]: unknown; - }; /** ModelInfoDelete */ ModelInfoDelete: { /** Id */ id: string; }; + /** ModelParams */ + ModelParams: { + /** Litellm Params */ + litellm_params: { + [key: string]: unknown; + }; + model_info: components["schemas"]["litellm__proxy___types__ModelInfo"]; + /** Model Name */ + model_name: string; + }; /** ModelResponse */ ModelResponse: { /** Choices */ @@ -26112,6 +28910,32 @@ export interface components { */ name: string; }; + /** + * PluginConfig + * @description A single external service registered as an embeddable UI plugin. + */ + PluginConfig: { + /** + * Display Name + * @description human-readable label shown in the UI view switcher + */ + display_name?: string | null; + /** + * Name + * @description unique plugin identifier (kebab-case) + */ + name: string; + /** + * Plugin Key + * @description plugin's own credential, injected as Bearer auth only on /plugin-proxy//* reverse-proxy calls + */ + plugin_key?: string | null; + /** + * Url + * @description base URL of the plugin service + */ + url: string; + }; /** * PluginListItem * @description Plugin item in list responses. @@ -26784,19 +29608,6 @@ export interface components { prompt_id: string; prompt_info?: components["schemas"]["PromptInfo"] | null; }; - /** - * PromptCacheBreakpoint - * @description Marks the exact end of a reusable prompt prefix. - * - * The breakpoint inherits its TTL from the request's `prompt_cache_options.ttl`; the boundary is not rounded to a token block. - */ - PromptCacheBreakpoint: { - /** - * Mode - * @constant - */ - mode: "explicit"; - }; /** PromptInfo */ PromptInfo: { /** @@ -28121,6 +30932,13 @@ export interface components { /** Model */ model?: string | null; }; + /** + * SupportedDBObjectType + * @description Supported database object types for fine-grained DB storage control. + * Use in general_settings.supported_db_objects to specify which objects to load from DB. + * @enum {string} + */ + SupportedDBObjectType: "models" | "mcp" | "guardrails" | "policies" | "vector_stores" | "pass_through_endpoints" | "prompts" | "model_cost_map" | "tools" | "config_overrides"; /** SupportedEndpoint */ SupportedEndpoint: { /** Endpoint */ @@ -30232,6 +33050,19 @@ export interface components { /** User Tpm Limit */ user_tpm_limit?: number | null; }; + /** + * UserHeaderMapping + * @description Map an incoming HTTP header to a LiteLLM user role. + */ + UserHeaderMapping: { + /** Header Name */ + header_name: string; + /** + * Litellm User Role + * @enum {string} + */ + litellm_user_role: "internal_user" | "customer"; + }; /** UserInfoResponse */ UserInfoResponse: { /** Keys */ @@ -30556,12 +33387,68 @@ export interface components { /** Status */ status?: ("pending" | "running" | "paused" | "completed" | "failed") | null; }; + /** ModelInfo */ + litellm__proxy___types__ModelInfo: { + /** Base Model */ + base_model: ("gpt-4-1106-preview" | "gpt-4-32k" | "gpt-4" | "gpt-3.5-turbo-16k" | "gpt-3.5-turbo" | "text-embedding-ada-002") | null; + /** Id */ + id: string | null; + /** + * Input Cost Per Token + * @default 0 + */ + input_cost_per_token: number | null; + /** + * Max Tokens + * @default 2048 + */ + max_tokens: number | null; + /** Mode */ + mode: ("embedding" | "chat" | "completion") | null; + /** + * Output Cost Per Token + * @default 0 + */ + output_cost_per_token: number | null; + } & { + [key: string]: unknown; + }; + /** ModelInfo */ + litellm__types__router__ModelInfo: { + /** Base Model */ + base_model?: string | null; + /** Blocked */ + blocked?: boolean | null; + /** Created At */ + created_at?: string | null; + /** Created By */ + created_by?: string | null; + /** + * Db Model + * @default false + */ + db_model: boolean; + /** Id */ + id: string | null; + /** Team Id */ + team_id?: string | null; + /** Team Public Model Name */ + team_public_model_name?: string | null; + /** Tier */ + tier?: ("free" | "paid") | null; + /** Updated At */ + updated_at?: string | null; + /** Updated By */ + updated_by?: string | null; + } & { + [key: string]: unknown; + }; /** updateDeployment */ updateDeployment: { /** Blocked */ blocked?: boolean | null; litellm_params?: components["schemas"]["updateLiteLLMParams"] | null; - model_info?: components["schemas"]["ModelInfo"] | null; + model_info?: components["schemas"]["litellm__types__router__ModelInfo"] | null; /** Model Name */ model_name?: string | null; }; @@ -31285,6 +34172,26 @@ export interface operations { }; }; }; + alerting_settings_alerting_settings_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; anthropic_proxy_route_anthropic__endpoint__get: { parameters: { query?: never; @@ -33746,6 +36653,39 @@ export interface operations { }; }; }; + delete_callback_config_callback_delete_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["CallbackDelete"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; get_cost_discount_config_config_cost_discount_config_get: { parameters: { query?: never; @@ -33858,6 +36798,134 @@ export interface operations { }; }; }; + delete_config_general_settings_config_field_delete_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ConfigFieldDelete"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_config_general_settings_config_field_info_get: { + parameters: { + query: { + field_name: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ConfigFieldInfo"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + update_config_general_settings_config_field_update_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ConfigFieldUpdate"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_config_list_config_list_get: { + parameters: { + query: { + config_type: "general_settings"; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["ConfigList"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; get_pass_through_endpoints_config_pass_through_endpoint_get: { parameters: { query?: { @@ -34022,6 +37090,72 @@ export interface operations { }; }; }; + update_config_config_update_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ConfigYAML"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + config_yaml_endpoint_config_yaml_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["ConfigYAML"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; get_hashicorp_vault_config_config_overrides_hashicorp_vault_get: { parameters: { query?: never; @@ -35186,6 +38320,102 @@ export interface operations { }; }; }; + get_memory_details_debug_memory_details_get: { + parameters: { + query?: { + /** @description Number of top object types to return */ + top_n?: number; + /** @description Include process memory info */ + include_process_info?: boolean; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + configure_gc_thresholds_endpoint_debug_memory_gc_configure_post: { + parameters: { + query?: { + /** @description Generation 0 threshold (default: 700) */ + generation_0?: number; + /** @description Generation 1 threshold (default: 10) */ + generation_1?: number; + /** @description Generation 2 threshold (default: 10) */ + generation_2?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_memory_summary_debug_memory_summary_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": { + [key: string]: unknown; + }; + }; + }; + }; + }; delete_allowed_ip_delete_allowed_ip_post: { parameters: { query?: never; @@ -35392,6 +38622,261 @@ export interface operations { }; }; }; + block_user_end_user_block_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BlockUsers"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_customer_daily_activity_end_user_daily_activity_get: { + parameters: { + query?: { + end_user_ids?: string | null; + start_date?: string | null; + end_date?: string | null; + model?: string | null; + api_key?: string | null; + page?: number; + page_size?: number; + exclude_end_user_ids?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + delete_end_user_end_user_delete_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["DeleteCustomerRequest"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["DeleteCustomersResponse"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + end_user_info_end_user_info_get: { + parameters: { + query: { + /** @description End User ID in the request parameters */ + end_user_id: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerResponse"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + list_end_user_end_user_list_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerResponse"][]; + }; + }; + }; + }; + new_end_user_end_user_new_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["NewCustomerRequest"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerResponse"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + unblock_user_end_user_unblock_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["BlockUsers"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + update_end_user_end_user_update_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["UpdateCustomerRequest"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["CustomerResponse"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; chat_completion_engines__model__chat_completions_post: { parameters: { query?: never; @@ -36454,6 +39939,46 @@ export interface operations { }; }; }; + get_allowed_ips_get_allowed_ips_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + get_config_get_config_callbacks_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; get_default_team_settings_get_default_team_settings_get: { parameters: { query?: never; @@ -36634,6 +40159,423 @@ export interface operations { }; }; }; + get_global_activity_global_activity_get: { + parameters: { + query?: { + /** @description Time from which to start viewing spend */ + start_date?: string | null; + /** @description Time till which to view spend */ + end_date?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_global_activity_global_activity_cache_hits_get: { + parameters: { + query?: { + /** @description Time from which to start viewing spend */ + start_date?: string | null; + /** @description Time till which to view spend */ + end_date?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_global_activity_exceptions_global_activity_exceptions_get: { + parameters: { + query: { + /** @description Filter by model group */ + model_group: string; + /** @description Time from which to start viewing spend */ + start_date?: string | null; + /** @description Time till which to view spend */ + end_date?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_global_activity_exceptions_per_deployment_global_activity_exceptions_deployment_get: { + parameters: { + query: { + /** @description Filter by model group */ + model_group: string; + /** @description Time from which to start viewing spend */ + start_date?: string | null; + /** @description Time till which to view spend */ + end_date?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_global_activity_model_global_activity_model_get: { + parameters: { + query?: { + /** @description Time from which to start viewing spend */ + start_date?: string | null; + /** @description Time till which to view spend */ + end_date?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + global_view_all_end_users_global_all_end_users_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + global_spend_global_spend_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + global_get_all_tag_names_global_spend_all_tag_names_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + }; + }; + global_spend_end_users_global_spend_end_users_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["GlobalEndUsersSpend"] | null; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + global_spend_keys_global_spend_keys_get: { + parameters: { + query?: { + /** @description Number of keys to get. Will return Top 'n' keys. */ + limit?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + global_spend_logs_global_spend_logs_get: { + parameters: { + query?: { + /** @description API Key to get global spend (spend per day for last 30d). Admin-only endpoint */ + api_key?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + global_spend_models_global_spend_models_get: { + parameters: { + query?: { + /** @description Number of models to get. Will return Top 'n' models. */ + limit?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + get_global_spend_provider_global_spend_provider_get: { + parameters: { + query?: { + /** @description Time from which to start viewing spend */ + start_date?: string | null; + /** @description Time till which to view spend */ + end_date?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + global_spend_refresh_global_spend_refresh_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; get_global_spend_report_global_spend_report_get: { parameters: { query?: { @@ -36734,6 +40676,26 @@ export interface operations { }; }; }; + global_spend_per_team_global_spend_teams_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; create_guardrail_guardrails_post: { parameters: { query?: never; @@ -37962,6 +41924,136 @@ export interface operations { }; }; }; + invitation_delete_invitation_delete_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InvitationDelete"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InvitationModel"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + invitation_info_invitation_info_get: { + parameters: { + query: { + invitation_id: string; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InvitationModel"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + new_invitation_invitation_new_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InvitationNew"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InvitationModel"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + invitation_update_invitation_update_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody: { + content: { + "application/json": components["schemas"]["InvitationUpdate"]; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["InvitationModel"]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; delete_jwt_key_mapping_jwt_key_mapping_delete_post: { parameters: { query?: never; @@ -38807,6 +42899,37 @@ export interface operations { }; }; }; + warm_lazy_warm__name__post: { + parameters: { + query?: never; + header?: never; + path: { + name: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; get_ui_config_litellm__well_known_litellm_ui_config_get: { parameters: { query?: never; @@ -38827,6 +42950,26 @@ export interface operations { }; }; }; + login_login_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; test_connection_mcp_rest_test_connection_post: { parameters: { query?: never; @@ -38947,6 +43090,46 @@ export interface operations { }; }; }; + memory_usage_in_mem_cache_memory_usage_in_mem_cache_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + memory_usage_in_mem_cache_items_memory_usage_in_mem_cache_items_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; milvus_proxy_route_milvus__endpoint__get: { parameters: { query?: never; @@ -39293,6 +43476,26 @@ export interface operations { }; }; }; + get_model_cost_map_source_model_cost_map_source_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; delete_model_model_delete_post: { parameters: { query?: never; @@ -39361,6 +43564,111 @@ export interface operations { }; }; }; + model_metrics_model_metrics_get: { + parameters: { + query?: { + _selected_model_group?: string | null; + startTime?: string | null; + endTime?: string | null; + api_key?: string | null; + customer?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + model_metrics_exceptions_model_metrics_exceptions_get: { + parameters: { + query?: { + _selected_model_group?: string | null; + startTime?: string | null; + endTime?: string | null; + api_key?: string | null; + customer?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + model_metrics_slow_responses_model_metrics_slow_responses_get: { + parameters: { + query?: { + _selected_model_group?: string | null; + startTime?: string | null; + endTime?: string | null; + api_key?: string | null; + customer?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; add_new_model_model_new_post: { parameters: { query?: never; @@ -39394,6 +43702,59 @@ export interface operations { }; }; }; + model_settings_model_settings_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + model_streaming_metrics_model_streaming_metrics_get: { + parameters: { + query?: { + _selected_model_group?: string | null; + startTime?: string | null; + endTime?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; unblock_model_model_unblock_post: { parameters: { query?: never; @@ -41199,6 +45560,250 @@ export interface operations { }; }; }; + get_otel_spans_otel_spans_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + plugin_proxy_plugin_proxy__plugin_name___path__get: { + parameters: { + query?: never; + header?: never; + path: { + plugin_name: string; + path: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + plugin_proxy_plugin_proxy__plugin_name___path__put: { + parameters: { + query?: never; + header?: never; + path: { + plugin_name: string; + path: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + plugin_proxy_plugin_proxy__plugin_name___path__post: { + parameters: { + query?: never; + header?: never; + path: { + plugin_name: string; + path: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + plugin_proxy_plugin_proxy__plugin_name___path__delete: { + parameters: { + query?: never; + header?: never; + path: { + plugin_name: string; + path: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + plugin_proxy_plugin_proxy__plugin_name___path__options: { + parameters: { + query?: never; + header?: never; + path: { + plugin_name: string; + path: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + plugin_proxy_plugin_proxy__plugin_name___path__head: { + parameters: { + query?: never; + header?: never; + path: { + plugin_name: string; + path: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + plugin_proxy_plugin_proxy__plugin_name___path__patch: { + parameters: { + query?: never; + header?: never; + path: { + plugin_name: string; + path: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; create_policy_policies_post: { parameters: { query?: never; @@ -42770,6 +47375,37 @@ export interface operations { }; }; }; + async_queue_request_queue_chat_completions_post: { + parameters: { + query?: { + model?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; rag_ingest_rag_ingest_post: { parameters: { query?: never; @@ -42868,6 +47504,46 @@ export interface operations { }; }; }; + reload_anthropic_beta_headers_reload_anthropic_beta_headers_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + reload_model_cost_map_reload_model_cost_map_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; rerank_rerank_post: { parameters: { query?: never; @@ -42888,6 +47564,24 @@ export interface operations { }; }; }; + websocket_responses_websocket_endpoint_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description WebSocket Protocol Switched */ + 101: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; responses_api_responses_post: { parameters: { query?: never; @@ -43132,6 +47826,148 @@ export interface operations { }; }; }; + schedule_anthropic_beta_headers_reload_schedule_anthropic_beta_headers_reload_post: { + parameters: { + query: { + hours: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + cancel_anthropic_beta_headers_reload_schedule_anthropic_beta_headers_reload_delete: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + get_anthropic_beta_headers_reload_status_schedule_anthropic_beta_headers_reload_status_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + schedule_model_cost_map_reload_schedule_model_cost_map_reload_post: { + parameters: { + query: { + hours: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + cancel_model_cost_map_reload_schedule_model_cost_map_reload_delete: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + get_model_cost_map_reload_status_schedule_model_cost_map_reload_status_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; get_scim_base_scim_v2_get: { parameters: { query?: { @@ -44080,6 +48916,26 @@ export interface operations { }; }; }; + spend_key_fn_spend_keys_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; view_spend_logs_spend_logs_get: { parameters: { query?: { @@ -44122,6 +48978,150 @@ export interface operations { }; }; }; + ui_view_session_spend_logs_spend_logs_session_ui_get: { + parameters: { + query: { + /** @description Get all spend logs for a particular session */ + session_id: string; + /** @description Page number for pagination */ + page?: number; + /** @description Number of items per page */ + page_size?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + ui_view_spend_logs_spend_logs_ui_get: { + parameters: { + query?: { + /** @description Get spend logs based on api key */ + api_key?: string | null; + /** @description Get spend logs based on user_id */ + user_id?: string | null; + /** @description request_id to get spend logs for specific request_id */ + request_id?: string | null; + /** @description Filter spend logs by session_id (partial string match) */ + session_id?: string | null; + /** @description Filter spend logs by team_id */ + team_id?: string | null; + /** @description Filter logs with spend greater than or equal to this value */ + min_spend?: number | null; + /** @description Filter logs with spend less than or equal to this value */ + max_spend?: number | null; + /** @description Time from which to start viewing key spend */ + start_date?: string | null; + /** @description Time till which to view key spend */ + end_date?: string | null; + /** @description Page number for pagination */ + page?: number; + /** @description Number of items per page */ + page_size?: number; + /** @description Filter logs by status (e.g., success, failure) */ + status_filter?: string | null; + /** @description Filter logs by model */ + model?: string | null; + /** @description Filter logs by model ID (litellm model deployment id) */ + model_id?: string | null; + /** @description Filter logs by model group */ + model_group?: string | null; + /** @description Filter logs by key alias */ + key_alias?: string | null; + /** @description Filter logs by end user */ + end_user?: string | null; + /** @description Filter logs by error code (e.g., '404', '500') */ + error_code?: string | null; + /** @description Filter logs by error message (partial string match) */ + error_message?: string | null; + /** @description Sort logs by field: spend, total_tokens, startTime, endTime, request_duration_ms, model, or ttft_ms */ + sort_by?: string; + /** @description Sort order: asc or desc */ + sort_order?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_SpendLogs"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + ui_view_request_response_for_request_id_spend_logs_ui__request_id__get: { + parameters: { + query?: { + /** @description Time from which to start viewing key spend */ + start_date?: string | null; + /** @description Time till which to view key spend */ + end_date?: string | null; + }; + header?: never; + path: { + request_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; ui_view_spend_logs_spend_logs_v2_get: { parameters: { query?: { @@ -44230,6 +49230,250 @@ export interface operations { }; }; }; + spend_user_fn_spend_users_get: { + parameters: { + query?: { + /** @description Get User Table row for user_id */ + user_id?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + auth_callback_sso_callback_get: { + parameters: { + query?: { + state?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + cli_sso_complete_sso_cli_complete__login_id__post: { + parameters: { + query?: never; + header?: never; + path: { + login_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + cli_poll_key_sso_cli_poll__key_id__get: { + parameters: { + query?: { + team_id?: string | null; + }; + header?: { + "x-litellm-cli-poll-secret"?: string | null; + }; + path: { + key_id: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + cli_sso_start_sso_cli_start_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + debug_sso_callback_sso_debug_callback_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + debug_sso_login_sso_debug_login_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + get_ui_settings_sso_get_ui_settings_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + google_login_sso_key_generate_get: { + parameters: { + query?: { + source?: string | null; + key?: string | null; + existing_key?: string | null; + return_to?: string | null; + user_code?: string | null; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; sso_readiness_sso_readiness_get: { parameters: { query?: never; @@ -44822,6 +50066,44 @@ export interface operations { }; }; }; + ui_view_teams_team_filter_ui_get: { + parameters: { + query?: { + /** @description Team ID in the request parameters */ + team_id?: string | null; + /** @description Team alias in the request parameters */ + team_alias?: string | null; + /** @description Page number for pagination */ + page?: number; + /** @description Number of items per page */ + page_size?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_TeamTable"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; team_info_team_info_get: { parameters: { query?: { @@ -46141,6 +51423,26 @@ export interface operations { }; }; }; + ui_get_available_role_user_available_roles_get: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; available_enterprise_users_user_available_users_get: { parameters: { query?: never; @@ -46321,6 +51623,46 @@ export interface operations { }; }; }; + ui_view_users_user_filter_ui_get: { + parameters: { + query?: { + /** @description User ID in the request parameters */ + user_id?: string | null; + /** @description User email in the request parameters */ + user_email?: string | null; + /** @description Team ID — used when a team admin searches for users to add to their team */ + team_id?: string | null; + /** @description Page number for pagination */ + page?: number; + /** @description Number of items per page */ + page_size?: number; + }; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["LiteLLM_UserTableFiltered"][]; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; user_info_user_info_get: { parameters: { query?: { @@ -50022,6 +55364,24 @@ export interface operations { }; }; }; + websocket_responses_websocket_endpoint_get_2: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description WebSocket Protocol Switched */ + 101: { + headers: { + [name: string]: unknown; + }; + content?: never; + }; + }; + }; responses_api_v1_responses_post: { parameters: { query?: never; @@ -52086,6 +57446,59 @@ export interface operations { }; }; }; + info_key_fn_v2_v2_key_info_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: { + content: { + "application/json": components["schemas"]["KeyRequest"] | null; + }; + }; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + login_v2_v2_login_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; model_info_v2_v2_model_info_get: { parameters: { query?: { @@ -52239,6 +57652,46 @@ export interface operations { }; }; }; + login_v3_v3_login_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; + login_v3_exchange_v3_login_exchange_post: { + parameters: { + query?: never; + header?: never; + path?: never; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + }; + }; delete_vantage_settings_vantage_delete_delete: { parameters: { query?: never; @@ -52943,6 +58396,161 @@ export interface operations { }; }; }; + vertex_proxy_route_vertex_ai__endpoint__get_2: { + parameters: { + query?: never; + header?: never; + path: { + endpoint: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + vertex_proxy_route_vertex_ai__endpoint__put_2: { + parameters: { + query?: never; + header?: never; + path: { + endpoint: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + vertex_proxy_route_vertex_ai__endpoint__post_2: { + parameters: { + query?: never; + header?: never; + path: { + endpoint: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + vertex_proxy_route_vertex_ai__endpoint__delete_2: { + parameters: { + query?: never; + header?: never; + path: { + endpoint: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; + vertex_proxy_route_vertex_ai__endpoint__patch_2: { + parameters: { + query?: never; + header?: never; + path: { + endpoint: string; + }; + cookie?: never; + }; + requestBody?: never; + responses: { + /** @description Successful Response */ + 200: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": unknown; + }; + }; + /** @description Validation Error */ + 422: { + headers: { + [name: string]: unknown; + }; + content: { + "application/json": components["schemas"]["HTTPValidationError"]; + }; + }; + }; + }; vertex_discovery_proxy_route_vertex_ai_discovery__endpoint__get: { parameters: { query?: never;