@homeflare/distilled-litellm 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (390) hide show
  1. package/README.md +41 -12
  2. package/dist/services/a2a.js +1 -1
  3. package/dist/services/a2a_registration.js +1 -1
  4. package/dist/services/access_groups.d.ts +18 -0
  5. package/dist/services/access_groups.d.ts.map +1 -1
  6. package/dist/services/access_groups.js +15 -1
  7. package/dist/services/access_groups.js.map +1 -1
  8. package/dist/services/adaptive_router.js +1 -1
  9. package/dist/services/agents.d.ts +10 -0
  10. package/dist/services/agents.d.ts.map +1 -1
  11. package/dist/services/agents.js +10 -1
  12. package/dist/services/agents.js.map +1 -1
  13. package/dist/services/alerting.js +1 -1
  14. package/dist/services/anthropic_passthrough.js +1 -1
  15. package/dist/services/anthropic_skills.d.ts +7 -1
  16. package/dist/services/anthropic_skills.d.ts.map +1 -1
  17. package/dist/services/anthropic_skills.js +6 -2
  18. package/dist/services/anthropic_skills.js.map +1 -1
  19. package/dist/services/assistants.js +1 -1
  20. package/dist/services/audio.js +1 -1
  21. package/dist/services/audit_logging.d.ts +2 -0
  22. package/dist/services/audit_logging.d.ts.map +1 -1
  23. package/dist/services/audit_logging.js +2 -1
  24. package/dist/services/audit_logging.js.map +1 -1
  25. package/dist/services/auto_router.d.ts +162 -62
  26. package/dist/services/auto_router.d.ts.map +1 -1
  27. package/dist/services/auto_router.js +92 -31
  28. package/dist/services/auto_router.js.map +1 -1
  29. package/dist/services/batch.js +1 -1
  30. package/dist/services/beta_agents.js +1 -1
  31. package/dist/services/beta_mcp.js +1 -1
  32. package/dist/services/budget_management.d.ts +8 -3
  33. package/dist/services/budget_management.d.ts.map +1 -1
  34. package/dist/services/budget_management.js +7 -4
  35. package/dist/services/budget_management.js.map +1 -1
  36. package/dist/services/budget_spend_tracking.d.ts +24 -5
  37. package/dist/services/budget_spend_tracking.d.ts.map +1 -1
  38. package/dist/services/budget_spend_tracking.js +17 -4
  39. package/dist/services/budget_spend_tracking.js.map +1 -1
  40. package/dist/services/cache_settings.js +1 -1
  41. package/dist/services/caching.js +1 -1
  42. package/dist/services/chat_completions.js +1 -1
  43. package/dist/services/claude_code_marketplace.d.ts +11 -10
  44. package/dist/services/claude_code_marketplace.d.ts.map +1 -1
  45. package/dist/services/claude_code_marketplace.js +8 -6
  46. package/dist/services/claude_code_marketplace.js.map +1 -1
  47. package/dist/services/cloudzero.js +1 -1
  48. package/dist/services/completions.js +1 -1
  49. package/dist/services/compliance.js +1 -1
  50. package/dist/services/config_overrides.d.ts +5 -1
  51. package/dist/services/config_overrides.d.ts.map +1 -1
  52. package/dist/services/config_overrides.js +3 -1
  53. package/dist/services/config_overrides.js.map +1 -1
  54. package/dist/services/config_yaml.d.ts +120 -6
  55. package/dist/services/config_yaml.d.ts.map +1 -1
  56. package/dist/services/config_yaml.js +67 -1
  57. package/dist/services/config_yaml.js.map +1 -1
  58. package/dist/services/containers.d.ts +8 -2
  59. package/dist/services/containers.d.ts.map +1 -1
  60. package/dist/services/containers.js +13 -5
  61. package/dist/services/containers.js.map +1 -1
  62. package/dist/services/coordination_redis_settings.js +1 -1
  63. package/dist/services/cost_tracking.d.ts +91 -1
  64. package/dist/services/cost_tracking.d.ts.map +1 -1
  65. package/dist/services/cost_tracking.js +82 -2
  66. package/dist/services/cost_tracking.js.map +1 -1
  67. package/dist/services/credential_management.d.ts +2 -1
  68. package/dist/services/credential_management.d.ts.map +1 -1
  69. package/dist/services/credential_management.js +3 -2
  70. package/dist/services/credential_management.js.map +1 -1
  71. package/dist/services/customer_management.d.ts +25 -2
  72. package/dist/services/customer_management.d.ts.map +1 -1
  73. package/dist/services/customer_management.js +22 -3
  74. package/dist/services/customer_management.js.map +1 -1
  75. package/dist/services/email_management.js +1 -1
  76. package/dist/services/embeddings.js +1 -1
  77. package/dist/services/evals.js +1 -1
  78. package/dist/services/experimental.js +1 -1
  79. package/dist/services/fallback_management.js +1 -1
  80. package/dist/services/files.js +1 -1
  81. package/dist/services/fine_tuning.js +1 -1
  82. package/dist/services/gemini_agents.js +1 -1
  83. package/dist/services/google_genai_endpoints.js +1 -1
  84. package/dist/services/guardrails.d.ts +80 -7
  85. package/dist/services/guardrails.d.ts.map +1 -1
  86. package/dist/services/guardrails.js +37 -1
  87. package/dist/services/guardrails.js.map +1 -1
  88. package/dist/services/health.d.ts +2 -2
  89. package/dist/services/health.d.ts.map +1 -1
  90. package/dist/services/health.js +2 -2
  91. package/dist/services/health.js.map +1 -1
  92. package/dist/services/images.js +1 -1
  93. package/dist/services/index.d.ts +1 -15
  94. package/dist/services/index.d.ts.map +1 -1
  95. package/dist/services/index.js +1 -15
  96. package/dist/services/index.js.map +1 -1
  97. package/dist/services/internal_user_management.d.ts +227 -39
  98. package/dist/services/internal_user_management.d.ts.map +1 -1
  99. package/dist/services/internal_user_management.js +194 -37
  100. package/dist/services/internal_user_management.js.map +1 -1
  101. package/dist/services/invite_links.js +1 -1
  102. package/dist/services/jwt_mappings.d.ts +3 -0
  103. package/dist/services/jwt_mappings.d.ts.map +1 -1
  104. package/dist/services/jwt_mappings.js +4 -1
  105. package/dist/services/jwt_mappings.js.map +1 -1
  106. package/dist/services/key_management.d.ts +93 -49
  107. package/dist/services/key_management.d.ts.map +1 -1
  108. package/dist/services/key_management.js +75 -39
  109. package/dist/services/key_management.js.map +1 -1
  110. package/dist/services/langfuse_passthrough.js +1 -1
  111. package/dist/services/llm_passthrough.d.ts +1199 -0
  112. package/dist/services/llm_passthrough.d.ts.map +1 -0
  113. package/dist/services/llm_passthrough.js +2150 -0
  114. package/dist/services/llm_passthrough.js.map +1 -0
  115. package/dist/services/llm_utils.js +1 -1
  116. package/dist/services/logging_callbacks.js +1 -1
  117. package/dist/services/mcp_byok_oauth.d.ts +18 -11
  118. package/dist/services/mcp_byok_oauth.d.ts.map +1 -1
  119. package/dist/services/mcp_byok_oauth.js +27 -24
  120. package/dist/services/mcp_byok_oauth.js.map +1 -1
  121. package/dist/services/mcp_discoverable.d.ts +34 -0
  122. package/dist/services/mcp_discoverable.d.ts.map +1 -1
  123. package/dist/services/mcp_discoverable.js +51 -1
  124. package/dist/services/mcp_discoverable.js.map +1 -1
  125. package/dist/services/mcp_management.d.ts +90 -2
  126. package/dist/services/mcp_management.d.ts.map +1 -1
  127. package/dist/services/mcp_management.js +115 -3
  128. package/dist/services/mcp_management.js.map +1 -1
  129. package/dist/services/mcp_rest.d.ts +13 -0
  130. package/dist/services/mcp_rest.d.ts.map +1 -1
  131. package/dist/services/mcp_rest.js +10 -2
  132. package/dist/services/mcp_rest.js.map +1 -1
  133. package/dist/services/memory_management.d.ts +2 -0
  134. package/dist/services/memory_management.d.ts.map +1 -1
  135. package/dist/services/memory_management.js +2 -1
  136. package/dist/services/memory_management.js.map +1 -1
  137. package/dist/services/misc.d.ts +86 -1
  138. package/dist/services/misc.d.ts.map +1 -1
  139. package/dist/services/misc.js +126 -2
  140. package/dist/services/misc.js.map +1 -1
  141. package/dist/services/model_management.d.ts +310 -19
  142. package/dist/services/model_management.d.ts.map +1 -1
  143. package/dist/services/model_management.js +240 -7
  144. package/dist/services/model_management.js.map +1 -1
  145. package/dist/services/moderations.js +1 -1
  146. package/dist/services/ocr.js +1 -1
  147. package/dist/services/open_ai_pass_through.d.ts +35 -90
  148. package/dist/services/open_ai_pass_through.d.ts.map +1 -1
  149. package/dist/services/open_ai_pass_through.js +41 -139
  150. package/dist/services/open_ai_pass_through.js.map +1 -1
  151. package/dist/services/organization_management.d.ts +21 -1
  152. package/dist/services/organization_management.d.ts.map +1 -1
  153. package/dist/services/organization_management.js +20 -2
  154. package/dist/services/organization_management.js.map +1 -1
  155. package/dist/services/plugins.js +1 -1
  156. package/dist/services/policies.d.ts +2 -0
  157. package/dist/services/policies.d.ts.map +1 -1
  158. package/dist/services/policies.js +3 -1
  159. package/dist/services/policies.js.map +1 -1
  160. package/dist/services/policy_engine.d.ts +6 -0
  161. package/dist/services/policy_engine.d.ts.map +1 -1
  162. package/dist/services/policy_engine.js +4 -1
  163. package/dist/services/policy_engine.js.map +1 -1
  164. package/dist/services/project_management.d.ts +15 -0
  165. package/dist/services/project_management.d.ts.map +1 -1
  166. package/dist/services/project_management.js +14 -1
  167. package/dist/services/project_management.js.map +1 -1
  168. package/dist/services/prompts.js +1 -1
  169. package/dist/services/public.d.ts +124 -0
  170. package/dist/services/public.d.ts.map +1 -1
  171. package/dist/services/public.js +158 -1
  172. package/dist/services/public.js.map +1 -1
  173. package/dist/services/rag.js +1 -1
  174. package/dist/services/realtime.d.ts +4 -26
  175. package/dist/services/realtime.d.ts.map +1 -1
  176. package/dist/services/realtime.js +7 -57
  177. package/dist/services/realtime.js.map +1 -1
  178. package/dist/services/rerank.d.ts +72 -0
  179. package/dist/services/rerank.d.ts.map +1 -1
  180. package/dist/services/rerank.js +61 -4
  181. package/dist/services/rerank.js.map +1 -1
  182. package/dist/services/responses.d.ts +30 -0
  183. package/dist/services/responses.d.ts.map +1 -1
  184. package/dist/services/responses.js +59 -1
  185. package/dist/services/responses.js.map +1 -1
  186. package/dist/services/router_settings.js +1 -1
  187. package/dist/services/rust_control_plane.js +1 -1
  188. package/dist/services/scim.d.ts +41 -1
  189. package/dist/services/scim.d.ts.map +1 -1
  190. package/dist/services/scim.js +60 -2
  191. package/dist/services/scim.js.map +1 -1
  192. package/dist/services/search.js +1 -1
  193. package/dist/services/search_tools.js +1 -1
  194. package/dist/services/settings.d.ts +88 -0
  195. package/dist/services/settings.d.ts.map +1 -1
  196. package/dist/services/settings.js +113 -1
  197. package/dist/services/settings.js.map +1 -1
  198. package/dist/services/sso_settings.d.ts +1 -1
  199. package/dist/services/sso_settings.d.ts.map +1 -1
  200. package/dist/services/sso_settings.js +1 -1
  201. package/dist/services/sso_settings.js.map +1 -1
  202. package/dist/services/tag_management.d.ts +7 -0
  203. package/dist/services/tag_management.d.ts.map +1 -1
  204. package/dist/services/tag_management.js +8 -1
  205. package/dist/services/tag_management.js.map +1 -1
  206. package/dist/services/team_management.d.ts +265 -17
  207. package/dist/services/team_management.d.ts.map +1 -1
  208. package/dist/services/team_management.js +247 -12
  209. package/dist/services/team_management.js.map +1 -1
  210. package/dist/services/tools.js +1 -1
  211. package/dist/services/ui_settings.js +1 -1
  212. package/dist/services/ui_theme_settings.js +1 -1
  213. package/dist/services/usage_ai.js +1 -1
  214. package/dist/services/vantage.js +1 -1
  215. package/dist/services/vector_store_management.js +1 -1
  216. package/dist/services/vector_stores.js +1 -1
  217. package/dist/services/videos.js +1 -1
  218. package/dist/services/web_socket.d.ts +0 -18
  219. package/dist/services/web_socket.d.ts.map +1 -1
  220. package/dist/services/web_socket.js +1 -33
  221. package/dist/services/web_socket.js.map +1 -1
  222. package/dist/services/workflow_management.js +1 -1
  223. package/package.json +1 -1
  224. package/src/services/a2a.ts +1 -1
  225. package/src/services/a2a_registration.ts +1 -1
  226. package/src/services/access_groups.ts +44 -1
  227. package/src/services/adaptive_router.ts +1 -1
  228. package/src/services/agents.ts +22 -1
  229. package/src/services/alerting.ts +1 -1
  230. package/src/services/anthropic_passthrough.ts +1 -1
  231. package/src/services/anthropic_skills.ts +12 -2
  232. package/src/services/assistants.ts +1 -1
  233. package/src/services/audio.ts +1 -1
  234. package/src/services/audit_logging.ts +4 -1
  235. package/src/services/auto_router.ts +303 -93
  236. package/src/services/batch.ts +1 -1
  237. package/src/services/beta_agents.ts +1 -1
  238. package/src/services/beta_mcp.ts +1 -1
  239. package/src/services/budget_management.ts +12 -4
  240. package/src/services/budget_spend_tracking.ts +38 -6
  241. package/src/services/cache_settings.ts +1 -1
  242. package/src/services/caching.ts +1 -1
  243. package/src/services/chat_completions.ts +1 -1
  244. package/src/services/claude_code_marketplace.ts +20 -14
  245. package/src/services/cloudzero.ts +1 -1
  246. package/src/services/completions.ts +1 -1
  247. package/src/services/compliance.ts +1 -1
  248. package/src/services/config_overrides.ts +8 -2
  249. package/src/services/config_yaml.ts +251 -6
  250. package/src/services/containers.ts +29 -11
  251. package/src/services/coordination_redis_settings.ts +1 -1
  252. package/src/services/cost_tracking.ts +198 -2
  253. package/src/services/credential_management.ts +9 -4
  254. package/src/services/customer_management.ts +49 -3
  255. package/src/services/email_management.ts +1 -1
  256. package/src/services/embeddings.ts +1 -1
  257. package/src/services/evals.ts +1 -1
  258. package/src/services/experimental.ts +1 -1
  259. package/src/services/fallback_management.ts +1 -1
  260. package/src/services/files.ts +1 -1
  261. package/src/services/fine_tuning.ts +1 -1
  262. package/src/services/gemini_agents.ts +1 -1
  263. package/src/services/google_genai_endpoints.ts +1 -1
  264. package/src/services/guardrails.ts +198 -8
  265. package/src/services/health.ts +3 -2
  266. package/src/services/images.ts +1 -1
  267. package/src/services/index.ts +1 -15
  268. package/src/services/internal_user_management.ts +565 -103
  269. package/src/services/invite_links.ts +1 -1
  270. package/src/services/jwt_mappings.ts +7 -1
  271. package/src/services/key_management.ts +229 -126
  272. package/src/services/langfuse_passthrough.ts +1 -1
  273. package/src/services/llm_passthrough.ts +4542 -0
  274. package/src/services/llm_utils.ts +1 -1
  275. package/src/services/logging_callbacks.ts +1 -1
  276. package/src/services/mcp_byok_oauth.ts +65 -45
  277. package/src/services/mcp_discoverable.ts +109 -1
  278. package/src/services/mcp_management.ts +258 -3
  279. package/src/services/mcp_rest.ts +30 -5
  280. package/src/services/memory_management.ts +4 -1
  281. package/src/services/misc.ts +269 -2
  282. package/src/services/model_management.ts +666 -21
  283. package/src/services/moderations.ts +1 -1
  284. package/src/services/ocr.ts +1 -1
  285. package/src/services/open_ai_pass_through.ts +81 -286
  286. package/src/services/organization_management.ts +44 -2
  287. package/src/services/plugins.ts +1 -1
  288. package/src/services/policies.ts +5 -1
  289. package/src/services/policy_engine.ts +10 -1
  290. package/src/services/project_management.ts +33 -1
  291. package/src/services/prompts.ts +1 -1
  292. package/src/services/public.ts +356 -1
  293. package/src/services/rag.ts +1 -1
  294. package/src/services/realtime.ts +11 -111
  295. package/src/services/rerank.ts +187 -7
  296. package/src/services/responses.ts +117 -1
  297. package/src/services/router_settings.ts +1 -1
  298. package/src/services/rust_control_plane.ts +1 -1
  299. package/src/services/scim.ts +134 -3
  300. package/src/services/search.ts +1 -1
  301. package/src/services/search_tools.ts +1 -1
  302. package/src/services/settings.ts +278 -1
  303. package/src/services/sso_settings.ts +2 -1
  304. package/src/services/tag_management.ts +15 -1
  305. package/src/services/team_management.ts +676 -37
  306. package/src/services/tools.ts +1 -1
  307. package/src/services/ui_settings.ts +1 -1
  308. package/src/services/ui_theme_settings.ts +1 -1
  309. package/src/services/usage_ai.ts +1 -1
  310. package/src/services/vantage.ts +1 -1
  311. package/src/services/vector_store_management.ts +1 -1
  312. package/src/services/vector_stores.ts +1 -1
  313. package/src/services/videos.ts +1 -1
  314. package/src/services/web_socket.ts +1 -61
  315. package/src/services/workflow_management.ts +1 -1
  316. package/dist/services/anthropic_pass_through.d.ts +0 -70
  317. package/dist/services/anthropic_pass_through.d.ts.map +0 -1
  318. package/dist/services/anthropic_pass_through.js +0 -114
  319. package/dist/services/anthropic_pass_through.js.map +0 -1
  320. package/dist/services/assembly_ai_eu_pass_through.d.ts +0 -70
  321. package/dist/services/assembly_ai_eu_pass_through.d.ts.map +0 -1
  322. package/dist/services/assembly_ai_eu_pass_through.js +0 -114
  323. package/dist/services/assembly_ai_eu_pass_through.js.map +0 -1
  324. package/dist/services/assembly_ai_pass_through.d.ts +0 -70
  325. package/dist/services/assembly_ai_pass_through.d.ts.map +0 -1
  326. package/dist/services/assembly_ai_pass_through.js +0 -114
  327. package/dist/services/assembly_ai_pass_through.js.map +0 -1
  328. package/dist/services/aws_comprehend_medical_pass_through.d.ts +0 -36
  329. package/dist/services/aws_comprehend_medical_pass_through.d.ts.map +0 -1
  330. package/dist/services/aws_comprehend_medical_pass_through.js +0 -56
  331. package/dist/services/aws_comprehend_medical_pass_through.js.map +0 -1
  332. package/dist/services/azure_ai_pass_through.d.ts +0 -70
  333. package/dist/services/azure_ai_pass_through.d.ts.map +0 -1
  334. package/dist/services/azure_ai_pass_through.js +0 -112
  335. package/dist/services/azure_ai_pass_through.js.map +0 -1
  336. package/dist/services/azure_pass_through.d.ts +0 -70
  337. package/dist/services/azure_pass_through.d.ts.map +0 -1
  338. package/dist/services/azure_pass_through.js +0 -107
  339. package/dist/services/azure_pass_through.js.map +0 -1
  340. package/dist/services/bedrock_pass_through.d.ts +0 -70
  341. package/dist/services/bedrock_pass_through.d.ts.map +0 -1
  342. package/dist/services/bedrock_pass_through.js +0 -114
  343. package/dist/services/bedrock_pass_through.js.map +0 -1
  344. package/dist/services/cohere_pass_through.d.ts +0 -70
  345. package/dist/services/cohere_pass_through.d.ts.map +0 -1
  346. package/dist/services/cohere_pass_through.js +0 -112
  347. package/dist/services/cohere_pass_through.js.map +0 -1
  348. package/dist/services/cursor_pass_through.d.ts +0 -70
  349. package/dist/services/cursor_pass_through.d.ts.map +0 -1
  350. package/dist/services/cursor_pass_through.js +0 -112
  351. package/dist/services/cursor_pass_through.js.map +0 -1
  352. package/dist/services/google_ai_studio_pass_through.d.ts +0 -70
  353. package/dist/services/google_ai_studio_pass_through.d.ts.map +0 -1
  354. package/dist/services/google_ai_studio_pass_through.js +0 -112
  355. package/dist/services/google_ai_studio_pass_through.js.map +0 -1
  356. package/dist/services/milvus_pass_through.d.ts +0 -70
  357. package/dist/services/milvus_pass_through.d.ts.map +0 -1
  358. package/dist/services/milvus_pass_through.js +0 -112
  359. package/dist/services/milvus_pass_through.js.map +0 -1
  360. package/dist/services/mistral_pass_through.d.ts +0 -70
  361. package/dist/services/mistral_pass_through.d.ts.map +0 -1
  362. package/dist/services/mistral_pass_through.js +0 -114
  363. package/dist/services/mistral_pass_through.js.map +0 -1
  364. package/dist/services/vertex_ai_pass_through.d.ts +0 -180
  365. package/dist/services/vertex_ai_pass_through.d.ts.map +0 -1
  366. package/dist/services/vertex_ai_pass_through.js +0 -334
  367. package/dist/services/vertex_ai_pass_through.js.map +0 -1
  368. package/dist/services/vllm_pass_through.d.ts +0 -70
  369. package/dist/services/vllm_pass_through.d.ts.map +0 -1
  370. package/dist/services/vllm_pass_through.js +0 -104
  371. package/dist/services/vllm_pass_through.js.map +0 -1
  372. package/dist/services/watsonx_pass_through.d.ts +0 -70
  373. package/dist/services/watsonx_pass_through.d.ts.map +0 -1
  374. package/dist/services/watsonx_pass_through.js +0 -114
  375. package/dist/services/watsonx_pass_through.js.map +0 -1
  376. package/src/services/anthropic_pass_through.ts +0 -233
  377. package/src/services/assembly_ai_eu_pass_through.ts +0 -237
  378. package/src/services/assembly_ai_pass_through.ts +0 -237
  379. package/src/services/aws_comprehend_medical_pass_through.ts +0 -109
  380. package/src/services/azure_ai_pass_through.ts +0 -231
  381. package/src/services/azure_pass_through.ts +0 -227
  382. package/src/services/bedrock_pass_through.ts +0 -229
  383. package/src/services/cohere_pass_through.ts +0 -227
  384. package/src/services/cursor_pass_through.ts +0 -227
  385. package/src/services/google_ai_studio_pass_through.ts +0 -227
  386. package/src/services/milvus_pass_through.ts +0 -227
  387. package/src/services/mistral_pass_through.ts +0 -229
  388. package/src/services/vertex_ai_pass_through.ts +0 -684
  389. package/src/services/vllm_pass_through.ts +0 -227
  390. package/src/services/watsonx_pass_through.ts +0 -229
@@ -1,4 +1,4 @@
1
- // AUTO-GENERATED by scripts/generate.ts from .generated-specs (pinned litellm-openapi @ 1.100.0 — see README). Do not edit.
1
+ // AUTO-GENERATED by scripts/generate.ts from .generated-specs (pinned litellm-openapi @ 1.103.0 — see README). Do not edit.
2
2
  import * as S from "@distilled.cloud/core/schema";
3
3
  import * as Redacted from "effect/Redacted";
4
4
  import * as API from "@distilled.cloud/core/api";
@@ -49,16 +49,138 @@ export class UnprocessableEntity
49
49
  [{ status: 422 }],
50
50
  ) {}
51
51
 
52
+ export type LiteLLMObjectPermissionBaseAgentAccessGroupsList = Array<string>;
53
+ export const LiteLLMObjectPermissionBaseAgentAccessGroupsList =
54
+ /*@__PURE__*/ S.Array(
55
+ S.String,
56
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseAgentAccessGroupsList>;
57
+
58
+ export type LiteLLMObjectPermissionBaseAgentsList = Array<string>;
59
+ export const LiteLLMObjectPermissionBaseAgentsList = /*@__PURE__*/ S.Array(
60
+ S.String,
61
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseAgentsList>;
62
+
63
+ export type LiteLLMObjectPermissionBaseBlockedToolsList = Array<string>;
64
+ export const LiteLLMObjectPermissionBaseBlockedToolsList =
65
+ /*@__PURE__*/ S.Array(
66
+ S.String,
67
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseBlockedToolsList>;
68
+
69
+ export type LiteLLMObjectPermissionBaseMcpAccessGroupsList = Array<string>;
70
+ export const LiteLLMObjectPermissionBaseMcpAccessGroupsList =
71
+ /*@__PURE__*/ S.Array(
72
+ S.String,
73
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpAccessGroupsList>;
74
+
75
+ export type LiteLLMObjectPermissionBaseMcpServersList = Array<string>;
76
+ export const LiteLLMObjectPermissionBaseMcpServersList = /*@__PURE__*/ S.Array(
77
+ S.String,
78
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpServersList>;
79
+
80
+ export type LiteLLMObjectPermissionBaseMcpToolPermissionsValueList =
81
+ Array<string>;
82
+ export const LiteLLMObjectPermissionBaseMcpToolPermissionsValueList =
83
+ /*@__PURE__*/ S.Array(
84
+ S.String,
85
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpToolPermissionsValueList>;
86
+
87
+ export type LiteLLMObjectPermissionBaseMcpToolPermissionsMap = {
88
+ [key: string]:
89
+ | LiteLLMObjectPermissionBaseMcpToolPermissionsValueList
90
+ | undefined;
91
+ };
92
+ export const LiteLLMObjectPermissionBaseMcpToolPermissionsMap =
93
+ /*@__PURE__*/ S.Record(
94
+ S.String,
95
+ LiteLLMObjectPermissionBaseMcpToolPermissionsValueList,
96
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpToolPermissionsMap>;
97
+
98
+ export type LiteLLMObjectPermissionBaseMcpToolsetsList = Array<string>;
99
+ export const LiteLLMObjectPermissionBaseMcpToolsetsList = /*@__PURE__*/ S.Array(
100
+ S.String,
101
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpToolsetsList>;
102
+
103
+ export type LiteLLMObjectPermissionBaseModelsList = Array<string>;
104
+ export const LiteLLMObjectPermissionBaseModelsList = /*@__PURE__*/ S.Array(
105
+ S.String,
106
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseModelsList>;
107
+
108
+ export type LiteLLMObjectPermissionBaseSearchToolsList = Array<string>;
109
+ export const LiteLLMObjectPermissionBaseSearchToolsList = /*@__PURE__*/ S.Array(
110
+ S.String,
111
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseSearchToolsList>;
112
+
113
+ export type LiteLLMObjectPermissionBaseSkillsList = Array<string>;
114
+ export const LiteLLMObjectPermissionBaseSkillsList = /*@__PURE__*/ S.Array(
115
+ S.String,
116
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseSkillsList>;
117
+
118
+ export type LiteLLMObjectPermissionBaseVectorStoresList = Array<string>;
119
+ export const LiteLLMObjectPermissionBaseVectorStoresList =
120
+ /*@__PURE__*/ S.Array(
121
+ S.String,
122
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseVectorStoresList>;
123
+
124
+ export interface LiteLLMObjectPermissionBase {
125
+ agent_access_groups?: LiteLLMObjectPermissionBaseAgentAccessGroupsList | null;
126
+ agents?: LiteLLMObjectPermissionBaseAgentsList | null;
127
+ blocked_tools?: LiteLLMObjectPermissionBaseBlockedToolsList | null;
128
+ mcp_access_groups?: LiteLLMObjectPermissionBaseMcpAccessGroupsList | null;
129
+ mcp_servers?: LiteLLMObjectPermissionBaseMcpServersList | null;
130
+ mcp_tool_permissions?: LiteLLMObjectPermissionBaseMcpToolPermissionsMap | null;
131
+ mcp_tool_search_enabled?: boolean | null;
132
+ mcp_toolsets?: LiteLLMObjectPermissionBaseMcpToolsetsList | null;
133
+ models?: LiteLLMObjectPermissionBaseModelsList | null;
134
+ search_tools?: LiteLLMObjectPermissionBaseSearchToolsList | null;
135
+ skills?: LiteLLMObjectPermissionBaseSkillsList | null;
136
+ vector_stores?: LiteLLMObjectPermissionBaseVectorStoresList | null;
137
+ }
138
+ export const LiteLLMObjectPermissionBase = /*@__PURE__*/ S.suspend(() =>
139
+ S.Struct({
140
+ agent_access_groups: S.optional(
141
+ S.NullOr(LiteLLMObjectPermissionBaseAgentAccessGroupsList),
142
+ ),
143
+ agents: S.optional(S.NullOr(LiteLLMObjectPermissionBaseAgentsList)),
144
+ blocked_tools: S.optional(
145
+ S.NullOr(LiteLLMObjectPermissionBaseBlockedToolsList),
146
+ ),
147
+ mcp_access_groups: S.optional(
148
+ S.NullOr(LiteLLMObjectPermissionBaseMcpAccessGroupsList),
149
+ ),
150
+ mcp_servers: S.optional(
151
+ S.NullOr(LiteLLMObjectPermissionBaseMcpServersList),
152
+ ),
153
+ mcp_tool_permissions: S.optional(
154
+ S.NullOr(LiteLLMObjectPermissionBaseMcpToolPermissionsMap),
155
+ ),
156
+ mcp_tool_search_enabled: S.optional(S.NullOr(S.Boolean)),
157
+ mcp_toolsets: S.optional(
158
+ S.NullOr(LiteLLMObjectPermissionBaseMcpToolsetsList),
159
+ ),
160
+ models: S.optional(S.NullOr(LiteLLMObjectPermissionBaseModelsList)),
161
+ search_tools: S.optional(
162
+ S.NullOr(LiteLLMObjectPermissionBaseSearchToolsList),
163
+ ),
164
+ skills: S.optional(S.NullOr(LiteLLMObjectPermissionBaseSkillsList)),
165
+ vector_stores: S.optional(
166
+ S.NullOr(LiteLLMObjectPermissionBaseVectorStoresList),
167
+ ),
168
+ }),
169
+ ).annotate({
170
+ identifier: "LiteLLMObjectPermissionBase",
171
+ }) as any as S.Schema<LiteLLMObjectPermissionBase>;
172
+
52
173
  export type BulkUpdateKeyRequestItemTagsList = Array<string>;
53
174
  export const BulkUpdateKeyRequestItemTagsList = /*@__PURE__*/ S.Array(
54
175
  S.String,
55
176
  ) as any as S.Schema<BulkUpdateKeyRequestItemTagsList>;
56
177
 
57
- /** Individual key update request item */
178
+ /** One /key/bulk_update item; only the fields it carries are written. */
58
179
  export interface BulkUpdateKeyRequestItem {
59
180
  budget_id?: string | null;
60
181
  key: string;
61
182
  max_budget?: number | null;
183
+ object_permission?: LiteLLMObjectPermissionBase | null;
62
184
  tags?: BulkUpdateKeyRequestItemTagsList | null;
63
185
  team_id?: string | null;
64
186
  }
@@ -67,6 +189,7 @@ export const BulkUpdateKeyRequestItem = /*@__PURE__*/ S.suspend(() =>
67
189
  budget_id: S.optional(S.NullOr(S.String)),
68
190
  key: S.String,
69
191
  max_budget: S.optional(S.NullOr(S.Number)),
192
+ object_permission: S.optional(S.NullOr(LiteLLMObjectPermissionBase)),
70
193
  tags: S.optional(S.NullOr(BulkUpdateKeyRequestItemTagsList)),
71
194
  team_id: S.optional(S.NullOr(S.String)),
72
195
  }),
@@ -520,120 +643,6 @@ export const GenerateKeyFnKeyGeneratePostRequestModelsList =
520
643
  S.Unknown,
521
644
  ) as any as S.Schema<GenerateKeyFnKeyGeneratePostRequestModelsList>;
522
645
 
523
- export type LiteLLMObjectPermissionBaseAgentAccessGroupsList = Array<string>;
524
- export const LiteLLMObjectPermissionBaseAgentAccessGroupsList =
525
- /*@__PURE__*/ S.Array(
526
- S.String,
527
- ) as any as S.Schema<LiteLLMObjectPermissionBaseAgentAccessGroupsList>;
528
-
529
- export type LiteLLMObjectPermissionBaseAgentsList = Array<string>;
530
- export const LiteLLMObjectPermissionBaseAgentsList = /*@__PURE__*/ S.Array(
531
- S.String,
532
- ) as any as S.Schema<LiteLLMObjectPermissionBaseAgentsList>;
533
-
534
- export type LiteLLMObjectPermissionBaseBlockedToolsList = Array<string>;
535
- export const LiteLLMObjectPermissionBaseBlockedToolsList =
536
- /*@__PURE__*/ S.Array(
537
- S.String,
538
- ) as any as S.Schema<LiteLLMObjectPermissionBaseBlockedToolsList>;
539
-
540
- export type LiteLLMObjectPermissionBaseMcpAccessGroupsList = Array<string>;
541
- export const LiteLLMObjectPermissionBaseMcpAccessGroupsList =
542
- /*@__PURE__*/ S.Array(
543
- S.String,
544
- ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpAccessGroupsList>;
545
-
546
- export type LiteLLMObjectPermissionBaseMcpServersList = Array<string>;
547
- export const LiteLLMObjectPermissionBaseMcpServersList = /*@__PURE__*/ S.Array(
548
- S.String,
549
- ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpServersList>;
550
-
551
- export type LiteLLMObjectPermissionBaseMcpToolPermissionsValueList =
552
- Array<string>;
553
- export const LiteLLMObjectPermissionBaseMcpToolPermissionsValueList =
554
- /*@__PURE__*/ S.Array(
555
- S.String,
556
- ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpToolPermissionsValueList>;
557
-
558
- export type LiteLLMObjectPermissionBaseMcpToolPermissionsMap = {
559
- [key: string]:
560
- | LiteLLMObjectPermissionBaseMcpToolPermissionsValueList
561
- | undefined;
562
- };
563
- export const LiteLLMObjectPermissionBaseMcpToolPermissionsMap =
564
- /*@__PURE__*/ S.Record(
565
- S.String,
566
- LiteLLMObjectPermissionBaseMcpToolPermissionsValueList,
567
- ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpToolPermissionsMap>;
568
-
569
- export type LiteLLMObjectPermissionBaseMcpToolsetsList = Array<string>;
570
- export const LiteLLMObjectPermissionBaseMcpToolsetsList = /*@__PURE__*/ S.Array(
571
- S.String,
572
- ) as any as S.Schema<LiteLLMObjectPermissionBaseMcpToolsetsList>;
573
-
574
- export type LiteLLMObjectPermissionBaseModelsList = Array<string>;
575
- export const LiteLLMObjectPermissionBaseModelsList = /*@__PURE__*/ S.Array(
576
- S.String,
577
- ) as any as S.Schema<LiteLLMObjectPermissionBaseModelsList>;
578
-
579
- export type LiteLLMObjectPermissionBaseSearchToolsList = Array<string>;
580
- export const LiteLLMObjectPermissionBaseSearchToolsList = /*@__PURE__*/ S.Array(
581
- S.String,
582
- ) as any as S.Schema<LiteLLMObjectPermissionBaseSearchToolsList>;
583
-
584
- export type LiteLLMObjectPermissionBaseVectorStoresList = Array<string>;
585
- export const LiteLLMObjectPermissionBaseVectorStoresList =
586
- /*@__PURE__*/ S.Array(
587
- S.String,
588
- ) as any as S.Schema<LiteLLMObjectPermissionBaseVectorStoresList>;
589
-
590
- export interface LiteLLMObjectPermissionBase {
591
- agent_access_groups?: LiteLLMObjectPermissionBaseAgentAccessGroupsList | null;
592
- agents?: LiteLLMObjectPermissionBaseAgentsList | null;
593
- blocked_tools?: LiteLLMObjectPermissionBaseBlockedToolsList | null;
594
- mcp_access_groups?: LiteLLMObjectPermissionBaseMcpAccessGroupsList | null;
595
- mcp_servers?: LiteLLMObjectPermissionBaseMcpServersList | null;
596
- mcp_tool_permissions?: LiteLLMObjectPermissionBaseMcpToolPermissionsMap | null;
597
- mcp_tool_search_enabled?: boolean | null;
598
- mcp_toolsets?: LiteLLMObjectPermissionBaseMcpToolsetsList | null;
599
- models?: LiteLLMObjectPermissionBaseModelsList | null;
600
- search_tools?: LiteLLMObjectPermissionBaseSearchToolsList | null;
601
- vector_stores?: LiteLLMObjectPermissionBaseVectorStoresList | null;
602
- }
603
- export const LiteLLMObjectPermissionBase = /*@__PURE__*/ S.suspend(() =>
604
- S.Struct({
605
- agent_access_groups: S.optional(
606
- S.NullOr(LiteLLMObjectPermissionBaseAgentAccessGroupsList),
607
- ),
608
- agents: S.optional(S.NullOr(LiteLLMObjectPermissionBaseAgentsList)),
609
- blocked_tools: S.optional(
610
- S.NullOr(LiteLLMObjectPermissionBaseBlockedToolsList),
611
- ),
612
- mcp_access_groups: S.optional(
613
- S.NullOr(LiteLLMObjectPermissionBaseMcpAccessGroupsList),
614
- ),
615
- mcp_servers: S.optional(
616
- S.NullOr(LiteLLMObjectPermissionBaseMcpServersList),
617
- ),
618
- mcp_tool_permissions: S.optional(
619
- S.NullOr(LiteLLMObjectPermissionBaseMcpToolPermissionsMap),
620
- ),
621
- mcp_tool_search_enabled: S.optional(S.NullOr(S.Boolean)),
622
- mcp_toolsets: S.optional(
623
- S.NullOr(LiteLLMObjectPermissionBaseMcpToolsetsList),
624
- ),
625
- models: S.optional(S.NullOr(LiteLLMObjectPermissionBaseModelsList)),
626
- search_tools: S.optional(
627
- S.NullOr(LiteLLMObjectPermissionBaseSearchToolsList),
628
- ),
629
- vector_stores: S.optional(
630
- S.NullOr(LiteLLMObjectPermissionBaseVectorStoresList),
631
- ),
632
- }),
633
- ).annotate({
634
- identifier: "LiteLLMObjectPermissionBase",
635
- }) as any as S.Schema<LiteLLMObjectPermissionBase>;
636
-
637
646
  export type GenerateKeyFnKeyGeneratePostRequestPermissionsMap = {
638
647
  [key: string]: unknown | undefined;
639
648
  };
@@ -730,8 +739,10 @@ export interface RetryPolicy {
730
739
  AuthenticationErrorRetries?: number | null;
731
740
  BadRequestErrorRetries?: number | null;
732
741
  ContentPolicyViolationErrorRetries?: number | null;
742
+ DefaultRetries?: number | null;
733
743
  InternalServerErrorRetries?: number | null;
734
744
  RateLimitErrorRetries?: number | null;
745
+ ServiceUnavailableErrorRetries?: number | null;
735
746
  TimeoutErrorRetries?: number | null;
736
747
  }
737
748
  export const RetryPolicy = /*@__PURE__*/ S.suspend(() =>
@@ -739,8 +750,10 @@ export const RetryPolicy = /*@__PURE__*/ S.suspend(() =>
739
750
  AuthenticationErrorRetries: S.optional(S.NullOr(S.Number)),
740
751
  BadRequestErrorRetries: S.optional(S.NullOr(S.Number)),
741
752
  ContentPolicyViolationErrorRetries: S.optional(S.NullOr(S.Number)),
753
+ DefaultRetries: S.optional(S.NullOr(S.Number)),
742
754
  InternalServerErrorRetries: S.optional(S.NullOr(S.Number)),
743
755
  RateLimitErrorRetries: S.optional(S.NullOr(S.Number)),
756
+ ServiceUnavailableErrorRetries: S.optional(S.NullOr(S.Number)),
744
757
  TimeoutErrorRetries: S.optional(S.NullOr(S.Number)),
745
758
  }),
746
759
  ).annotate({ identifier: "RetryPolicy" }) as any as S.Schema<RetryPolicy>;
@@ -754,6 +767,25 @@ export const UpdateRouterConfigModelGroupRetryPolicyMap =
754
767
  RetryPolicy,
755
768
  ) as any as S.Schema<UpdateRouterConfigModelGroupRetryPolicyMap>;
756
769
 
770
+ export type UpdateRouterConfigOptionalPreCallChecksItem =
771
+ | "prompt_caching"
772
+ | "router_budget_limiting"
773
+ | "responses_api_deployment_check"
774
+ | "deployment_affinity"
775
+ | "session_affinity"
776
+ | "forward_client_headers_by_model_group"
777
+ | "enforce_model_rate_limits"
778
+ | "encrypted_content_affinity";
779
+ export const UpdateRouterConfigOptionalPreCallChecksItem = S.String;
780
+
781
+ export type UpdateRouterConfigOptionalPreCallChecksList = Array<
782
+ UpdateRouterConfigOptionalPreCallChecksItem | (string & {})
783
+ >;
784
+ export const UpdateRouterConfigOptionalPreCallChecksList =
785
+ /*@__PURE__*/ S.Array(
786
+ UpdateRouterConfigOptionalPreCallChecksItem,
787
+ ) as any as S.Schema<UpdateRouterConfigOptionalPreCallChecksList>;
788
+
757
789
  export type RoutingGroupModelsList = Array<string>;
758
790
  export const RoutingGroupModelsList = /*@__PURE__*/ S.Array(
759
791
  S.String,
@@ -810,6 +842,7 @@ export interface UpdateRouterConfig {
810
842
  model_group_alias?: UpdateRouterConfigModelGroupAliasMap | null;
811
843
  model_group_retry_policy?: UpdateRouterConfigModelGroupRetryPolicyMap | null;
812
844
  num_retries?: number | null;
845
+ optional_pre_call_checks?: UpdateRouterConfigOptionalPreCallChecksList | null;
813
846
  retry_after?: number | null;
814
847
  retry_policy?: RetryPolicy | null;
815
848
  routing_groups?: UpdateRouterConfigRoutingGroupsList | null;
@@ -817,6 +850,7 @@ export interface UpdateRouterConfig {
817
850
  routing_strategy_args?: UpdateRouterConfigRoutingStrategyArgsMap | null;
818
851
  tag_routing_prefix?: string | null;
819
852
  timeout?: number | null;
853
+ weights?: unknown | null;
820
854
  }
821
855
  export const UpdateRouterConfig = /*@__PURE__*/ S.suspend(() =>
822
856
  S.Struct({
@@ -838,6 +872,9 @@ export const UpdateRouterConfig = /*@__PURE__*/ S.suspend(() =>
838
872
  S.NullOr(UpdateRouterConfigModelGroupRetryPolicyMap),
839
873
  ),
840
874
  num_retries: S.optional(S.NullOr(S.Number)),
875
+ optional_pre_call_checks: S.optional(
876
+ S.NullOr(UpdateRouterConfigOptionalPreCallChecksList),
877
+ ),
841
878
  retry_after: S.optional(S.NullOr(S.Number)),
842
879
  retry_policy: S.optional(S.NullOr(RetryPolicy)),
843
880
  routing_groups: S.optional(S.NullOr(UpdateRouterConfigRoutingGroupsList)),
@@ -847,6 +884,7 @@ export const UpdateRouterConfig = /*@__PURE__*/ S.suspend(() =>
847
884
  ),
848
885
  tag_routing_prefix: S.optional(S.NullOr(S.String)),
849
886
  timeout: S.optional(S.NullOr(S.Number)),
887
+ weights: S.optional(S.NullOr(S.Unknown)),
850
888
  }),
851
889
  ).annotate({
852
890
  identifier: "UpdateRouterConfig",
@@ -900,6 +938,7 @@ export interface GenerateKeyFnKeyGeneratePostRequest {
900
938
  disable_global_guardrails?: boolean | null;
901
939
  duration?: string | null;
902
940
  enable_prompt_caching?: boolean | null;
941
+ end_user_budget_id?: string | null;
903
942
  enforced_params?: GenerateKeyFnKeyGeneratePostRequestEnforcedParamsList | null;
904
943
  guardrails?: GenerateKeyFnKeyGeneratePostRequestGuardrailsList | null;
905
944
  key?: string | null;
@@ -935,6 +974,7 @@ export interface GenerateKeyFnKeyGeneratePostRequest {
935
974
  tags?: GenerateKeyFnKeyGeneratePostRequestTagsList | null;
936
975
  team_id?: string | null;
937
976
  throttle_on_budget_exceeded?: boolean | null;
977
+ tpd_limit?: number | null;
938
978
  tpm_limit?: number | null;
939
979
  tpm_limit_type?:
940
980
  | GenerateKeyFnKeyGeneratePostRequestTpmLimitType
@@ -985,6 +1025,7 @@ export const GenerateKeyFnKeyGeneratePostRequest = /*@__PURE__*/ S.suspend(() =>
985
1025
  disable_global_guardrails: S.optional(S.NullOr(S.Boolean)),
986
1026
  duration: S.optional(S.NullOr(S.String)),
987
1027
  enable_prompt_caching: S.optional(S.NullOr(S.Boolean)),
1028
+ end_user_budget_id: S.optional(S.NullOr(S.String)),
988
1029
  enforced_params: S.optional(
989
1030
  S.NullOr(GenerateKeyFnKeyGeneratePostRequestEnforcedParamsList),
990
1031
  ),
@@ -1039,6 +1080,7 @@ export const GenerateKeyFnKeyGeneratePostRequest = /*@__PURE__*/ S.suspend(() =>
1039
1080
  tags: S.optional(S.NullOr(GenerateKeyFnKeyGeneratePostRequestTagsList)),
1040
1081
  team_id: S.optional(S.NullOr(S.String)),
1041
1082
  throttle_on_budget_exceeded: S.optional(S.NullOr(S.Boolean)),
1083
+ tpd_limit: S.optional(S.NullOr(S.Number)),
1042
1084
  tpm_limit: S.optional(S.NullOr(S.Number)),
1043
1085
  tpm_limit_type: S.optional(
1044
1086
  S.NullOr(GenerateKeyFnKeyGeneratePostRequestTpmLimitType),
@@ -1241,6 +1283,7 @@ export interface GenerateKeyResponse {
1241
1283
  disable_global_guardrails?: boolean | null;
1242
1284
  duration?: string | null;
1243
1285
  enable_prompt_caching?: boolean | null;
1286
+ end_user_budget_id?: string | null;
1244
1287
  enforced_params?: GenerateKeyResponseEnforcedParamsList | null;
1245
1288
  expires?: string | null;
1246
1289
  guardrails?: GenerateKeyResponseGuardrailsList | null;
@@ -1273,6 +1316,7 @@ export interface GenerateKeyResponse {
1273
1316
  throttle_on_budget_exceeded?: boolean | null;
1274
1317
  token?: string | null;
1275
1318
  token_id?: string | null;
1319
+ tpd_limit?: number | null;
1276
1320
  tpm_limit?: number | null;
1277
1321
  tpm_limit_type?: GenerateKeyResponseTpmLimitType | null;
1278
1322
  updated_at?: string | null;
@@ -1313,6 +1357,7 @@ export const GenerateKeyResponse = /*@__PURE__*/ S.suspend(() =>
1313
1357
  disable_global_guardrails: S.optional(S.NullOr(S.Boolean)),
1314
1358
  duration: S.optional(S.NullOr(S.String)),
1315
1359
  enable_prompt_caching: S.optional(S.NullOr(S.Boolean)),
1360
+ end_user_budget_id: S.optional(S.NullOr(S.String)),
1316
1361
  enforced_params: S.optional(
1317
1362
  S.NullOr(GenerateKeyResponseEnforcedParamsList),
1318
1363
  ),
@@ -1349,6 +1394,7 @@ export const GenerateKeyResponse = /*@__PURE__*/ S.suspend(() =>
1349
1394
  throttle_on_budget_exceeded: S.optional(S.NullOr(S.Boolean)),
1350
1395
  token: S.optional(S.NullOr(S.String)),
1351
1396
  token_id: S.optional(S.NullOr(S.String)),
1397
+ tpd_limit: S.optional(S.NullOr(S.Number)),
1352
1398
  tpm_limit: S.optional(S.NullOr(S.Number)),
1353
1399
  tpm_limit_type: S.optional(S.NullOr(GenerateKeyResponseTpmLimitType)),
1354
1400
  updated_at: S.optional(S.NullOr(S.String)),
@@ -1577,6 +1623,7 @@ export interface GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequest
1577
1623
  disable_global_guardrails?: boolean | null;
1578
1624
  duration?: string | null;
1579
1625
  enable_prompt_caching?: boolean | null;
1626
+ end_user_budget_id?: string | null;
1580
1627
  enforced_params?: GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequestEnforcedParamsList | null;
1581
1628
  guardrails?: GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequestGuardrailsList | null;
1582
1629
  key?: string | null;
@@ -1612,6 +1659,7 @@ export interface GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequest
1612
1659
  tags?: GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequestTagsList | null;
1613
1660
  team_id?: string | null;
1614
1661
  throttle_on_budget_exceeded?: boolean | null;
1662
+ tpd_limit?: number | null;
1615
1663
  tpm_limit?: number | null;
1616
1664
  tpm_limit_type?:
1617
1665
  | GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequestTpmLimitType
@@ -1681,6 +1729,7 @@ export const GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequest =
1681
1729
  disable_global_guardrails: S.optional(S.NullOr(S.Boolean)),
1682
1730
  duration: S.optional(S.NullOr(S.String)),
1683
1731
  enable_prompt_caching: S.optional(S.NullOr(S.Boolean)),
1732
+ end_user_budget_id: S.optional(S.NullOr(S.String)),
1684
1733
  enforced_params: S.optional(
1685
1734
  S.NullOr(
1686
1735
  GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequestEnforcedParamsList,
@@ -1767,6 +1816,7 @@ export const GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequest =
1767
1816
  ),
1768
1817
  team_id: S.optional(S.NullOr(S.String)),
1769
1818
  throttle_on_budget_exceeded: S.optional(S.NullOr(S.Boolean)),
1819
+ tpd_limit: S.optional(S.NullOr(S.Number)),
1770
1820
  tpm_limit: S.optional(S.NullOr(S.Number)),
1771
1821
  tpm_limit_type: S.optional(
1772
1822
  S.NullOr(
@@ -1800,7 +1850,7 @@ export const GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostResponse =
1800
1850
  }) as any as S.Schema<GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostResponse>;
1801
1851
 
1802
1852
  export interface GetInfoKeyFnKeyInfoRequest {
1803
- /** Key in the request parameters */
1853
+ /** Key to look up. Pass the key's sha256 hash so the raw key stays out of URLs and access logs. Example key='d5345c0ecc68ae6295c69f91926b2bd379e25481a40c34b5884d157a9f65d8fa' */
1804
1854
  key?: string;
1805
1855
  }
1806
1856
  export const GetInfoKeyFnKeyInfoRequest = /*@__PURE__*/ S.suspend(() =>
@@ -1880,8 +1930,10 @@ export interface ListKeysKeyListGetRequest {
1880
1930
  organization_id?: string;
1881
1931
  /** Filter keys by key hash */
1882
1932
  key_hash?: string;
1883
- /** Filter keys by key alias. Exact match by default; set substring_matching=true (admin only) for case-insensitive substring matching. */
1933
+ /** Filter keys by key alias. Exact match by default; set substring_matching=true for case-insensitive substring matching. */
1884
1934
  key_alias?: string;
1935
+ /** Combined search: matches keys whose token (key hash) equals the value OR whose key_alias contains it (case-insensitive). */
1936
+ search?: string;
1885
1937
  /** Return full key object */
1886
1938
  return_full_object?: boolean;
1887
1939
  /** Include all keys for teams that user is an admin of. */
@@ -1894,7 +1946,7 @@ export interface ListKeysKeyListGetRequest {
1894
1946
  sort_order?: string;
1895
1947
  /** Expand related objects (e.g. 'user') */
1896
1948
  expand?: ListKeysKeyListGetRequestExpandList;
1897
- /** Filter by status (e.g. 'deleted') */
1949
+ /** Filter by status: 'active' (not blocked, not expired), 'expired' (not blocked, past expiry), 'revoked' (blocked) or 'deleted' (archived keys). Omit to return live keys regardless of status. */
1898
1950
  status?: string;
1899
1951
  /** Filter keys by project ID */
1900
1952
  project_id?: string;
@@ -1902,7 +1954,7 @@ export interface ListKeysKeyListGetRequest {
1902
1954
  access_group_id?: string;
1903
1955
  /** Filter keys by agent ID */
1904
1956
  agent_id?: string;
1905
- /** If true (proxy admins only), match user_id/key_alias as case-insensitive substrings instead of exact values. Defaults to false: /key/list matched these exactly before substring search was added, and an exact user_id/key_alias filter must never return another user's keys. */
1957
+ /** If true, match key_alias (any caller) and user_id (proxy admins only) as case-insensitive substrings instead of exact values. Defaults to false: /key/list matched these exactly before substring search was added, and an exact user_id filter must never return another user's keys. */
1906
1958
  substring_matching?: boolean;
1907
1959
  /** Filter keys by expiration. 'expired' returns keys whose expires is in the past; 'active' returns keys that never expire or expire in the future. Omit to return keys regardless of expiration. */
1908
1960
  expires?: string;
@@ -1916,6 +1968,7 @@ export const ListKeysKeyListGetRequest = /*@__PURE__*/ S.suspend(() =>
1916
1968
  organization_id: S.optional(S.String.pipe(T.Query())),
1917
1969
  key_hash: S.optional(S.String.pipe(T.Query())),
1918
1970
  key_alias: S.optional(S.String.pipe(T.Query())),
1971
+ search: S.optional(S.String.pipe(T.Query())),
1919
1972
  return_full_object: S.optional(S.Boolean.pipe(T.Query())),
1920
1973
  include_team_keys: S.optional(S.Boolean.pipe(T.Query())),
1921
1974
  include_created_by_keys: S.optional(S.Boolean.pipe(T.Query())),
@@ -2061,6 +2114,11 @@ export const LiteLLMObjectPermissionTableSearchToolsList =
2061
2114
  S.String,
2062
2115
  ) as any as S.Schema<LiteLLMObjectPermissionTableSearchToolsList>;
2063
2116
 
2117
+ export type LiteLLMObjectPermissionTableSkillsList = Array<string>;
2118
+ export const LiteLLMObjectPermissionTableSkillsList = /*@__PURE__*/ S.Array(
2119
+ S.String,
2120
+ ) as any as S.Schema<LiteLLMObjectPermissionTableSkillsList>;
2121
+
2064
2122
  export type LiteLLMObjectPermissionTableVectorStoresList = Array<string>;
2065
2123
  export const LiteLLMObjectPermissionTableVectorStoresList =
2066
2124
  /*@__PURE__*/ S.Array(
@@ -2080,6 +2138,7 @@ export interface LiteLLMObjectPermissionTable {
2080
2138
  models?: LiteLLMObjectPermissionTableModelsList | null;
2081
2139
  object_permission_id: string;
2082
2140
  search_tools?: LiteLLMObjectPermissionTableSearchToolsList | null;
2141
+ skills?: LiteLLMObjectPermissionTableSkillsList | null;
2083
2142
  vector_stores?: LiteLLMObjectPermissionTableVectorStoresList | null;
2084
2143
  }
2085
2144
  export const LiteLLMObjectPermissionTable = /*@__PURE__*/ S.suspend(() =>
@@ -2109,6 +2168,7 @@ export const LiteLLMObjectPermissionTable = /*@__PURE__*/ S.suspend(() =>
2109
2168
  search_tools: S.optional(
2110
2169
  S.NullOr(LiteLLMObjectPermissionTableSearchToolsList),
2111
2170
  ),
2171
+ skills: S.optional(S.NullOr(LiteLLMObjectPermissionTableSkillsList)),
2112
2172
  vector_stores: S.optional(
2113
2173
  S.NullOr(LiteLLMObjectPermissionTableVectorStoresList),
2114
2174
  ),
@@ -2234,6 +2294,14 @@ export const UserAPIKeyAuthTeamModelAliasesMap = /*@__PURE__*/ S.Record(
2234
2294
  S.Unknown,
2235
2295
  ) as any as S.Schema<UserAPIKeyAuthTeamModelAliasesMap>;
2236
2296
 
2297
+ export type UserAPIKeyAuthTeamModelMaxBudgetMap = {
2298
+ [key: string]: unknown | undefined;
2299
+ };
2300
+ export const UserAPIKeyAuthTeamModelMaxBudgetMap = /*@__PURE__*/ S.Record(
2301
+ S.String,
2302
+ S.Unknown,
2303
+ ) as any as S.Schema<UserAPIKeyAuthTeamModelMaxBudgetMap>;
2304
+
2237
2305
  export type UserAPIKeyAuthTeamModelsList = Array<unknown>;
2238
2306
  export const UserAPIKeyAuthTeamModelsList = /*@__PURE__*/ S.Array(
2239
2307
  S.Unknown,
@@ -2291,6 +2359,7 @@ export interface UserAPIKeyAuth {
2291
2359
  end_user_model_max_budget?: UserAPIKeyAuthEndUserModelMaxBudgetMap | null;
2292
2360
  end_user_object_permission?: LiteLLMObjectPermissionTable | null;
2293
2361
  end_user_rpm_limit?: number | null;
2362
+ end_user_tpd_limit?: number | null;
2294
2363
  end_user_tpm_limit?: number | null;
2295
2364
  expires?: string | null;
2296
2365
  is_session_token?: boolean;
@@ -2342,14 +2411,18 @@ export interface UserAPIKeyAuth {
2342
2411
  team_member_tpm_limit?: number | null;
2343
2412
  team_metadata?: UserAPIKeyAuthTeamMetadataMap | null;
2344
2413
  team_model_aliases?: UserAPIKeyAuthTeamModelAliasesMap | null;
2414
+ team_model_max_budget?: UserAPIKeyAuthTeamModelMaxBudgetMap | null;
2345
2415
  team_models?: UserAPIKeyAuthTeamModelsList;
2346
2416
  team_object_permission?: LiteLLMObjectPermissionTable | null;
2347
2417
  team_object_permission_id?: string | null;
2348
2418
  team_rpm_limit?: number | null;
2349
2419
  team_soft_budget?: number | null;
2350
2420
  team_spend?: number | null;
2421
+ team_tpd_limit?: number | null;
2351
2422
  team_tpm_limit?: number | null;
2352
2423
  token?: string | null;
2424
+ total_spend?: number;
2425
+ tpd_limit?: number | null;
2353
2426
  tpm_limit?: number | null;
2354
2427
  tpm_limit_per_model?: UserAPIKeyAuthTpmLimitPerModelMap | null;
2355
2428
  updated_at?: string | null;
@@ -2397,6 +2470,7 @@ export const UserAPIKeyAuth = /*@__PURE__*/ S.suspend(() =>
2397
2470
  S.NullOr(LiteLLMObjectPermissionTable),
2398
2471
  ),
2399
2472
  end_user_rpm_limit: S.optional(S.NullOr(S.Number)),
2473
+ end_user_tpd_limit: S.optional(S.NullOr(S.Number)),
2400
2474
  end_user_tpm_limit: S.optional(S.NullOr(S.Number)),
2401
2475
  expires: S.optional(S.NullOr(S.String)),
2402
2476
  is_session_token: S.optional(S.Boolean),
@@ -2454,14 +2528,20 @@ export const UserAPIKeyAuth = /*@__PURE__*/ S.suspend(() =>
2454
2528
  team_member_tpm_limit: S.optional(S.NullOr(S.Number)),
2455
2529
  team_metadata: S.optional(S.NullOr(UserAPIKeyAuthTeamMetadataMap)),
2456
2530
  team_model_aliases: S.optional(S.NullOr(UserAPIKeyAuthTeamModelAliasesMap)),
2531
+ team_model_max_budget: S.optional(
2532
+ S.NullOr(UserAPIKeyAuthTeamModelMaxBudgetMap),
2533
+ ),
2457
2534
  team_models: S.optional(UserAPIKeyAuthTeamModelsList),
2458
2535
  team_object_permission: S.optional(S.NullOr(LiteLLMObjectPermissionTable)),
2459
2536
  team_object_permission_id: S.optional(S.NullOr(S.String)),
2460
2537
  team_rpm_limit: S.optional(S.NullOr(S.Number)),
2461
2538
  team_soft_budget: S.optional(S.NullOr(S.Number)),
2462
2539
  team_spend: S.optional(S.NullOr(S.Number)),
2540
+ team_tpd_limit: S.optional(S.NullOr(S.Number)),
2463
2541
  team_tpm_limit: S.optional(S.NullOr(S.Number)),
2464
2542
  token: S.optional(S.NullOr(S.String)),
2543
+ total_spend: S.optional(S.Number),
2544
+ tpd_limit: S.optional(S.NullOr(S.Number)),
2465
2545
  tpm_limit: S.optional(S.NullOr(S.Number)),
2466
2546
  tpm_limit_per_model: S.optional(
2467
2547
  S.NullOr(UserAPIKeyAuthTpmLimitPerModelMap),
@@ -2649,6 +2729,7 @@ export interface LiteLLMDeletedVerificationToken {
2649
2729
  object_permission?: LiteLLMObjectPermissionTable | null;
2650
2730
  object_permission_id?: string | null;
2651
2731
  org_id?: string | null;
2732
+ organization_id?: string | null;
2652
2733
  permissions?: LiteLLMDeletedVerificationTokenPermissionsMap;
2653
2734
  project_id?: string | null;
2654
2735
  rotation_count?: number | null;
@@ -2660,6 +2741,8 @@ export interface LiteLLMDeletedVerificationToken {
2660
2741
  spend?: number;
2661
2742
  team_id?: string | null;
2662
2743
  token?: string | null;
2744
+ total_spend?: number;
2745
+ tpd_limit?: number | null;
2663
2746
  tpm_limit?: number | null;
2664
2747
  updated_at?: string | null;
2665
2748
  updated_by?: string | null;
@@ -2718,6 +2801,7 @@ export const LiteLLMDeletedVerificationToken = /*@__PURE__*/ S.suspend(() =>
2718
2801
  object_permission: S.optional(S.NullOr(LiteLLMObjectPermissionTable)),
2719
2802
  object_permission_id: S.optional(S.NullOr(S.String)),
2720
2803
  org_id: S.optional(S.NullOr(S.String)),
2804
+ organization_id: S.optional(S.NullOr(S.String)),
2721
2805
  permissions: S.optional(LiteLLMDeletedVerificationTokenPermissionsMap),
2722
2806
  project_id: S.optional(S.NullOr(S.String)),
2723
2807
  rotation_count: S.optional(S.NullOr(S.Number)),
@@ -2731,6 +2815,8 @@ export const LiteLLMDeletedVerificationToken = /*@__PURE__*/ S.suspend(() =>
2731
2815
  spend: S.optional(S.Number),
2732
2816
  team_id: S.optional(S.NullOr(S.String)),
2733
2817
  token: S.optional(S.NullOr(S.String)),
2818
+ total_spend: S.optional(S.Number),
2819
+ tpd_limit: S.optional(S.NullOr(S.Number)),
2734
2820
  tpm_limit: S.optional(S.NullOr(S.Number)),
2735
2821
  updated_at: S.optional(S.NullOr(S.String)),
2736
2822
  updated_by: S.optional(S.NullOr(S.String)),
@@ -2941,6 +3027,8 @@ export interface LiteLLMVerificationToken {
2941
3027
  spend?: number;
2942
3028
  team_id?: string | null;
2943
3029
  token?: string | null;
3030
+ total_spend?: number;
3031
+ tpd_limit?: number | null;
2944
3032
  tpm_limit?: number | null;
2945
3033
  updated_at?: string | null;
2946
3034
  updated_by?: string | null;
@@ -3003,6 +3091,8 @@ export const LiteLLMVerificationToken = /*@__PURE__*/ S.suspend(() =>
3003
3091
  spend: S.optional(S.Number),
3004
3092
  team_id: S.optional(S.NullOr(S.String)),
3005
3093
  token: S.optional(S.NullOr(S.String)),
3094
+ total_spend: S.optional(S.Number),
3095
+ tpd_limit: S.optional(S.NullOr(S.Number)),
3006
3096
  tpm_limit: S.optional(S.NullOr(S.Number)),
3007
3097
  updated_at: S.optional(S.NullOr(S.String)),
3008
3098
  updated_by: S.optional(S.NullOr(S.String)),
@@ -3304,6 +3394,7 @@ export interface RegenerateKeyRequest {
3304
3394
  disable_global_guardrails?: boolean | null;
3305
3395
  duration?: string | null;
3306
3396
  enable_prompt_caching?: boolean | null;
3397
+ end_user_budget_id?: string | null;
3307
3398
  enforced_params?: RegenerateKeyRequestEnforcedParamsList | null;
3308
3399
  grace_period?: string | null;
3309
3400
  guardrails?: RegenerateKeyRequestGuardrailsList | null;
@@ -3339,6 +3430,7 @@ export interface RegenerateKeyRequest {
3339
3430
  tags?: RegenerateKeyRequestTagsList | null;
3340
3431
  team_id?: string | null;
3341
3432
  throttle_on_budget_exceeded?: boolean | null;
3433
+ tpd_limit?: number | null;
3342
3434
  tpm_limit?: number | null;
3343
3435
  tpm_limit_type?: RegenerateKeyRequestTpmLimitType | (string & {}) | null;
3344
3436
  user_id?: string | null;
@@ -3376,6 +3468,7 @@ export const RegenerateKeyRequest = /*@__PURE__*/ S.suspend(() =>
3376
3468
  disable_global_guardrails: S.optional(S.NullOr(S.Boolean)),
3377
3469
  duration: S.optional(S.NullOr(S.String)),
3378
3470
  enable_prompt_caching: S.optional(S.NullOr(S.Boolean)),
3471
+ end_user_budget_id: S.optional(S.NullOr(S.String)),
3379
3472
  enforced_params: S.optional(
3380
3473
  S.NullOr(RegenerateKeyRequestEnforcedParamsList),
3381
3474
  ),
@@ -3413,6 +3506,7 @@ export const RegenerateKeyRequest = /*@__PURE__*/ S.suspend(() =>
3413
3506
  tags: S.optional(S.NullOr(RegenerateKeyRequestTagsList)),
3414
3507
  team_id: S.optional(S.NullOr(S.String)),
3415
3508
  throttle_on_budget_exceeded: S.optional(S.NullOr(S.Boolean)),
3509
+ tpd_limit: S.optional(S.NullOr(S.Number)),
3416
3510
  tpm_limit: S.optional(S.NullOr(S.Number)),
3417
3511
  tpm_limit_type: S.optional(S.NullOr(RegenerateKeyRequestTpmLimitType)),
3418
3512
  user_id: S.optional(S.NullOr(S.String)),
@@ -3744,6 +3838,7 @@ export interface UpdateKeyFnKeyUpdatePostRequest {
3744
3838
  disable_global_guardrails?: boolean | null;
3745
3839
  duration?: string | null;
3746
3840
  enable_prompt_caching?: boolean | null;
3841
+ end_user_budget_id?: string | null;
3747
3842
  enforced_params?: UpdateKeyFnKeyUpdatePostRequestEnforcedParamsList | null;
3748
3843
  guardrails?: UpdateKeyFnKeyUpdatePostRequestGuardrailsList | null;
3749
3844
  key?: string | null;
@@ -3760,6 +3855,8 @@ export interface UpdateKeyFnKeyUpdatePostRequest {
3760
3855
  organization_id?: string | null;
3761
3856
  permissions?: UpdateKeyFnKeyUpdatePostRequestPermissionsMap | null;
3762
3857
  policies?: UpdateKeyFnKeyUpdatePostRequestPoliciesList | null;
3858
+ /** Omit to retain the project, or send null to detach. Assigning a different project is not supported. */
3859
+ project_id?: string | null;
3763
3860
  prompts?: UpdateKeyFnKeyUpdatePostRequestPromptsList | null;
3764
3861
  rotation_interval?: string | null;
3765
3862
  router_settings?: UpdateRouterConfig | null;
@@ -3768,6 +3865,7 @@ export interface UpdateKeyFnKeyUpdatePostRequest {
3768
3865
  | UpdateKeyFnKeyUpdatePostRequestRpmLimitType
3769
3866
  | (string & {})
3770
3867
  | null;
3868
+ soft_budget?: number | null;
3771
3869
  spend?: number | null;
3772
3870
  tag_rpm_limit?: UpdateKeyFnKeyUpdatePostRequestTagRpmLimitMap | null;
3773
3871
  tags?: UpdateKeyFnKeyUpdatePostRequestTagsList | null;
@@ -3775,6 +3873,7 @@ export interface UpdateKeyFnKeyUpdatePostRequest {
3775
3873
  temp_budget_expiry?: string | null;
3776
3874
  temp_budget_increase?: number | null;
3777
3875
  throttle_on_budget_exceeded?: boolean | null;
3876
+ tpd_limit?: number | null;
3778
3877
  tpm_limit?: number | null;
3779
3878
  tpm_limit_type?:
3780
3879
  | UpdateKeyFnKeyUpdatePostRequestTpmLimitType
@@ -3821,6 +3920,7 @@ export const UpdateKeyFnKeyUpdatePostRequest = /*@__PURE__*/ S.suspend(() =>
3821
3920
  disable_global_guardrails: S.optional(S.NullOr(S.Boolean)),
3822
3921
  duration: S.optional(S.NullOr(S.String)),
3823
3922
  enable_prompt_caching: S.optional(S.NullOr(S.Boolean)),
3923
+ end_user_budget_id: S.optional(S.NullOr(S.String)),
3824
3924
  enforced_params: S.optional(
3825
3925
  S.NullOr(UpdateKeyFnKeyUpdatePostRequestEnforcedParamsList),
3826
3926
  ),
@@ -3851,6 +3951,7 @@ export const UpdateKeyFnKeyUpdatePostRequest = /*@__PURE__*/ S.suspend(() =>
3851
3951
  S.NullOr(UpdateKeyFnKeyUpdatePostRequestPermissionsMap),
3852
3952
  ),
3853
3953
  policies: S.optional(S.NullOr(UpdateKeyFnKeyUpdatePostRequestPoliciesList)),
3954
+ project_id: S.optional(S.NullOr(S.String)),
3854
3955
  prompts: S.optional(S.NullOr(UpdateKeyFnKeyUpdatePostRequestPromptsList)),
3855
3956
  rotation_interval: S.optional(S.NullOr(S.String)),
3856
3957
  router_settings: S.optional(S.NullOr(UpdateRouterConfig)),
@@ -3858,6 +3959,7 @@ export const UpdateKeyFnKeyUpdatePostRequest = /*@__PURE__*/ S.suspend(() =>
3858
3959
  rpm_limit_type: S.optional(
3859
3960
  S.NullOr(UpdateKeyFnKeyUpdatePostRequestRpmLimitType),
3860
3961
  ),
3962
+ soft_budget: S.optional(S.NullOr(S.Number)),
3861
3963
  spend: S.optional(S.NullOr(S.Number)),
3862
3964
  tag_rpm_limit: S.optional(
3863
3965
  S.NullOr(UpdateKeyFnKeyUpdatePostRequestTagRpmLimitMap),
@@ -3867,6 +3969,7 @@ export const UpdateKeyFnKeyUpdatePostRequest = /*@__PURE__*/ S.suspend(() =>
3867
3969
  temp_budget_expiry: S.optional(S.NullOr(S.String)),
3868
3970
  temp_budget_increase: S.optional(S.NullOr(S.Number)),
3869
3971
  throttle_on_budget_exceeded: S.optional(S.NullOr(S.Boolean)),
3972
+ tpd_limit: S.optional(S.NullOr(S.Number)),
3870
3973
  tpm_limit: S.optional(S.NullOr(S.Number)),
3871
3974
  tpm_limit_type: S.optional(
3872
3975
  S.NullOr(UpdateKeyFnKeyUpdatePostRequestTpmLimitType),
@@ -3893,7 +3996,7 @@ export type BulkUpdateKeysKeyBulkUpdatePostError =
3893
3996
  | Forbidden
3894
3997
  | UnprocessableEntity
3895
3998
  | LitellmOpError;
3896
- /** Bulk Update Keys Bulk update multiple keys at once. This endpoint allows updating multiple keys in a single request. Each key update is processed independently - if some updates fail, others will still succeed. Parameters: - keys: List[BulkUpdateKeyRequestItem] - List of key update requests, each containing: - key: str - The key identifier (token) to update - budget_id: Optional[str] - Budget ID associated with the key - max_budget: Optional[float] - Max budget for key - team_id: Optional[str] - Team ID associated with key - tags: Optional[List[str]] - Tags for organizing keys Returns: - total_requested: int - Total number of keys requested for update - successful_updates: List[SuccessfulKeyUpdate] - List of successfully updated keys with their updated info - failed_updates: List[FailedKeyUpdate] - List of failed updates with key_info and failed_reason Example request: ```bash curl --location 'http://0.0.0.0:4000/key/bulk_update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "keys": [ { "key": "sk-1234", "max_budget": 100.0, "team_id": "team-123", "tags": ["production", "api"] }, { "key": "sk-5678", "budget_id": "budget-456", "tags": ["staging"] } ] }' ``` */
3999
+ /** Bulk Update Keys Bulk update multiple keys at once. This endpoint allows updating multiple keys in a single request. Each key update is processed independently - if some updates fail, others will still succeed. Parameters: - keys: List[BulkUpdateKeyRequestItem] - List of key update requests, each containing: - key: str - The key identifier (token) to update - budget_id: Optional[str] - Budget ID associated with the key - max_budget: Optional[float] - Max budget for key - team_id: Optional[str] - Team ID associated with key - tags: Optional[List[str]] - Tags for organizing keys - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission, as on /key/update Only the fields an item carries are written: a field left out keeps its current value, and a field sent explicitly, null included, is applied exactly as /key/update applies it. Returns: - total_requested: int - Total number of keys requested for update - successful_updates: List[SuccessfulKeyUpdate] - List of successfully updated keys with their updated info - failed_updates: List[FailedKeyUpdate] - List of failed updates with key_info and failed_reason Example request: ```bash curl --location 'http://0.0.0.0:4000/key/bulk_update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "keys": [ { "key": "sk-1234", "max_budget": 100.0, "team_id": "team-123", "tags": ["production", "api"] }, { "key": "sk-5678", "budget_id": "budget-456", "tags": ["staging"] } ] }' ``` */
3897
4000
  export const bulkUpdateKeysKeyBulkUpdatePost: API.OperationMethod<
3898
4001
  BulkUpdateKeysKeyBulkUpdatePostRequest,
3899
4002
  BulkUpdateKeyResponse,
@@ -3947,7 +4050,7 @@ export type GenerateKeyFnKeyGeneratePostError =
3947
4050
  | Forbidden
3948
4051
  | UnprocessableEntity
3949
4052
  | LitellmOpError;
3950
- /** Generate Key Fn Generate an API key based on the provided data. Docs: https://docs.litellm.ai/docs/proxy/virtual_keys Parameters: - duration: Optional[str] - Specify the length of time the token is valid for. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). - key_alias: Optional[str] - User defined key alias - key: Optional[str] - User defined key value. Must start with 'sk-' and be at least 16 characters long. If not set, a 16-digit unique sk-key is created for you. - team_id: Optional[str] - The team id of the key - user_id: Optional[str] - The user id of the key - agent_id: Optional[str] - The agent id associated with the key. - organization_id: Optional[str] - The organization id of the key. If not set, and team_id is set, the organization id will be the same as the team id. If conflict, an error will be raised. - project_id: Optional[str] - The project id of the key. When set, models and max_budget are validated against the project's limits. - budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`. - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models) - aliases: Optional[dict] - Any alias mappings, on top of anything in the config.yaml model list. - https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models - config: Optional[dict] - any key-specific configs, overrides config in config.yaml - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - send_invite_email: Optional[bool] - Whether to send an invite email to the user_id, with the generate key - max_budget: Optional[float] - Specify max budget for a given key. - 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"). - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - metadata: Optional[dict] - Metadata for key, store information for key. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - guardrails: Optional[List[str]] - List of active guardrails for the key - policies: Optional[List[str]] - List of policy names to apply to the key. Policies define guardrails, conditions, and inheritance rules. - disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key. - throttle_on_budget_exceeded: Optional[bool] - When the key exceeds its max_budget, throttle its tpm/rpm to the global budget_exceeded_throttle_percentage instead of blocking the key entirely. - enable_prompt_caching: Optional[bool] - Auto-inject prompt caching breakpoints (Anthropic cache_control markers) on requests made with this key. Anthropic and Bedrock Claude models only. - permissions: Optional[dict] - key-specific permissions. Currently just used for turning off pii masking (if connected). Example - {"pii": false} - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}}. IF null or {} then no model specific budget. - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model specific rpm limit. - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model specific tpm limit. - default_estimated_output_tokens: Optional[int] - Proxy admin only. Expected output tokens reserved for TPM limiting when a request omits max_tokens. Positive integer. Falls back to the team setting, then to the built-in estimate. - default_estimated_output_tokens_per_model: Optional[dict] - Proxy admin only. Per-model override of the above. Example - {"gpt-4": 4096, "gpt-3.5-turbo": 1024}. Takes precedence over the key-wide value. - mcp_rpm_limit: Optional[dict] - key-specific per-MCP-server rpm limit, keyed by MCP server name (alias if set, else the configured name). Example - {"github": 100, "slack": 200}. IF null or {} then no MCP-specific rpm limit. - tag_rpm_limit: Optional[dict] - key-specific per-request-tag rpm limit, keyed by request tag. Example - {"cell-1": 1000, "cell-2": 500}. Each tag gets an independent counter; requests whose tag is absent fall back to the key-level rpm limit. - tpm_limit_type: Optional[str] - Type of tpm limit. Options: "best_effort_throughput" (no error if we're overallocating tpm), "guaranteed_throughput" (raise an error if we're overallocating tpm), "dynamic" (dynamically exceed limit when no 429 errors). Defaults to "best_effort_throughput". - rpm_limit_type: Optional[str] - Type of rpm limit. Options: "best_effort_throughput" (no error if we're overallocating rpm), "guaranteed_throughput" (raise an error if we're overallocating rpm), "dynamic" (dynamically exceed limit when no 429 errors). Defaults to "best_effort_throughput". - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - ["no-cache", "no-store"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request - blocked: Optional[bool] - Whether the key is blocked. - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per minute) - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per minute) - soft_budget: Optional[float] - Specify soft budget for a given key. Will trigger a slack alert when this soft budget is reached. - tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - ["/chat/completions", "/embeddings", "/keys/*"] - allowed_passthrough_routes: Optional[list] - List of allowed pass through endpoints for the key. Store the actual endpoint or store a wildcard pattern for a set of endpoints. Example - ["/my-custom-endpoint"]. Use this instead of allowed_routes, if you just want to specify which pass through endpoints the key can access, without specifying the routes. If allowed_routes is specified, allowed_pass_through_endpoints is ignored. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {"vector_stores": ["vector_store_1", "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": ["dev_group"]}. IF null or {} then no object permission. - key_type: Optional[str] - Type of key that determines default allowed routes. Options: "llm_api" (can call LLM API routes), "management" (can call management routes), "read_only" (can only call info/read routes), "default" (uses default allowed routes). Defaults to "default". - prompts: Optional[List[str]] - List of allowed prompts for the key. If specified, the key will only be able to use these specific prompts. - auto_rotate: Optional[bool] - Whether this key should be automatically rotated (regenerated) - rotation_interval: Optional[str] - How often to auto-rotate this key (e.g., '30s', '30m', '30h', '30d'). Required if auto_rotate=True. - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{"index_name": "my-index", "index_permissions": ["write", "read"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint. - router_settings: Optional[UpdateRouterConfig] - key-specific router settings. Example - {"model_group_retry_policy": {"gpt-4": {"RateLimitErrorRetries": 5}}}. IF null or {} then no router settings. - access_group_ids: Optional[List[str]] - List of access group IDs to associate with the key. Access groups define which models a key can access. Example - ["access_group_1", "access_group_2"]. - budget_limits: Optional[list] - List of concurrent budget windows for the key. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{"budget_limit": 10.0, "time_period": "1d"}, {"budget_limit": 50.0, "time_period": "7d"}]. Examples: 1. Allow users to turn on/off pii masking ```bash curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "permissions": {"allow_pii_controls": true} }' ``` Returns: - key: (str) The generated api key - expires: (datetime) Datetime object for when key expires. - user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id. */
4053
+ /** Generate Key Fn Generate an API key based on the provided data. Docs: https://docs.litellm.ai/docs/proxy/virtual_keys Parameters: - duration: Optional[str] - Specify the length of time the token is valid for. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). - key_alias: Optional[str] - User defined key alias - key: Optional[str] - User defined key value. Must start with 'sk-' and be at least 16 characters long. If not set, a 16-digit unique sk-key is created for you. - team_id: Optional[str] - The team id of the key - user_id: Optional[str] - The user id of the key - agent_id: Optional[str] - The agent id associated with the key. - organization_id: Optional[str] - The organization id of the key. If not set, and team_id is set, the organization id will be the same as the team id. If conflict, an error will be raised. - project_id: Optional[str] - The project id of the key. When set, models and max_budget are validated against the project's limits. - budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`. - end_user_budget_id: Optional[str] - Proxy admin only. Budget id applied to end users first seen through this key that carry no budget of their own. Takes precedence over `litellm_settings.max_end_user_budget_id`. - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models) - aliases: Optional[dict] - Any alias mappings, on top of anything in the config.yaml model list. - https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models - config: Optional[dict] - any key-specific configs, overrides config in config.yaml - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - send_invite_email: Optional[bool] - Whether to send an invite email to the user_id, with the generate key - max_budget: Optional[float] - Specify max budget for a given key. - 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"). - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - metadata: Optional[dict] - Metadata for key, store information for key. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - guardrails: Optional[List[str]] - List of active guardrails for the key - policies: Optional[List[str]] - List of policy names to apply to the key. Policies define guardrails, conditions, and inheritance rules. - disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key. - throttle_on_budget_exceeded: Optional[bool] - When the key exceeds its max_budget, throttle its tpm/rpm to the global budget_exceeded_throttle_percentage instead of blocking the key entirely. - enable_prompt_caching: Optional[bool] - Auto-inject prompt caching breakpoints (Anthropic cache_control markers) on requests made with this key. Supported Claude models on Anthropic, Bedrock, Vertex AI, and Azure AI only. - permissions: Optional[dict] - key-specific permissions. Currently just used for turning off pii masking (if connected). Example - {"pii": false} - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}}. IF null or {} then no model specific budget. - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model specific rpm limit. - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model specific tpm limit. - default_estimated_output_tokens: Optional[int] - Proxy admin only. Expected output tokens reserved for TPM limiting when a request omits max_tokens. Positive integer. Falls back to the team setting, then to the built-in estimate. - default_estimated_output_tokens_per_model: Optional[dict] - Proxy admin only. Per-model override of the above. Example - {"gpt-4": 4096, "gpt-3.5-turbo": 1024}. Takes precedence over the key-wide value. - mcp_rpm_limit: Optional[dict] - key-specific per-MCP-server rpm limit, keyed by MCP server name (alias if set, else the configured name). Example - {"github": 100, "slack": 200}. IF null or {} then no MCP-specific rpm limit. - tag_rpm_limit: Optional[dict] - key-specific per-request-tag rpm limit, keyed by request tag. Example - {"cell-1": 1000, "cell-2": 500}. Each tag gets an independent counter; requests whose tag is absent fall back to the key-level rpm limit. - tpm_limit_type: Optional[str] - Type of tpm limit. Options: "best_effort_throughput" (no error if we're overallocating tpm), "guaranteed_throughput" (raise an error if we're overallocating tpm), "dynamic" (dynamically exceed limit when no 429 errors). Defaults to "best_effort_throughput". - rpm_limit_type: Optional[str] - Type of rpm limit. Options: "best_effort_throughput" (no error if we're overallocating rpm), "guaranteed_throughput" (raise an error if we're overallocating rpm), "dynamic" (dynamically exceed limit when no 429 errors). Defaults to "best_effort_throughput". - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - ["no-cache", "no-store"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request - blocked: Optional[bool] - Whether the key is blocked. - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per minute) - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per minute) - tpd_limit: Optional[int] - Specify tpd limit for a given key (Tokens per day). Charged by batch submissions instead of tpm_limit/rpm_limit. - soft_budget: Optional[float] - Specify soft budget for a given key. Will trigger a slack alert when this soft budget is reached. - tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - ["/chat/completions", "/embeddings", "/keys/*"] - allowed_passthrough_routes: Optional[list] - List of allowed pass through endpoints for the key. Store the actual endpoint or store a wildcard pattern for a set of endpoints. Example - ["/my-custom-endpoint"]. Use this instead of allowed_routes, if you just want to specify which pass through endpoints the key can access, without specifying the routes. If allowed_routes is specified, allowed_pass_through_endpoints is ignored. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {"vector_stores": ["vector_store_1", "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": ["dev_group"]}. IF null or {} then no object permission. - key_type: Optional[str] - Type of key that determines default allowed routes. Options: "llm_api" (can call LLM API routes), "management" (can call management routes), "read_only" (can only call info/read routes), "default" (uses default allowed routes). Defaults to "default". - prompts: Optional[List[str]] - List of allowed prompts for the key. If specified, the key will only be able to use these specific prompts. - auto_rotate: Optional[bool] - Whether this key should be automatically rotated (regenerated) - rotation_interval: Optional[str] - How often to auto-rotate this key (e.g., '30s', '30m', '30h', '30d'). Required if auto_rotate=True. - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{"index_name": "my-index", "index_permissions": ["write", "read"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint. - router_settings: Optional[UpdateRouterConfig] - key-specific router settings. Example - {"model_group_retry_policy": {"gpt-4": {"RateLimitErrorRetries": 5}}}. IF null or {} then no router settings. - access_group_ids: Optional[List[str]] - List of access group IDs to associate with the key. Access groups define which models a key can access. Example - ["access_group_1", "access_group_2"]. - budget_limits: Optional[list] - List of concurrent budget windows for the key. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{"budget_limit": 10.0, "time_period": "1d"}, {"budget_limit": 50.0, "time_period": "7d"}]. Examples: 1. Allow users to turn on/off pii masking ```bash curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "permissions": {"allow_pii_controls": true} }' ``` Returns: - key: (str) The generated api key - expires: (datetime) Datetime object for when key expires. - user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id. */
3951
4054
  export const generateKeyFnKeyGeneratePost: API.OperationMethod<
3952
4055
  GenerateKeyFnKeyGeneratePostRequest,
3953
4056
  GenerateKeyResponse,
@@ -3964,7 +4067,7 @@ export const generateKeyFnKeyGeneratePost: API.OperationMethod<
3964
4067
  export type GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostError =
3965
4068
  | UnprocessableEntity
3966
4069
  | LitellmOpError;
3967
- /** Generate Service Account Key Fn Generate a Service Account API key based on the provided data. This key does not belong to any user. It belongs to the team. Why use a service account key? - Prevent key from being deleted when user is deleted. - Apply team limits, not team member limits to key. Docs: https://docs.litellm.ai/docs/proxy/virtual_keys Parameters: - duration: Optional[str] - Specify the length of time the token is valid for. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). - key_alias: Optional[str] - User defined key alias - key: Optional[str] - User defined key value. Must start with 'sk-' and be at least 16 characters long. If not set, a 16-digit unique sk-key is created for you. - team_id: Optional[str] - The team id of the key - user_id: Optional[str] - [NON-FUNCTIONAL] THIS WILL BE IGNORED. The user id of the key - budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`. - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models) - aliases: Optional[dict] - Any alias mappings, on top of anything in the config.yaml model list. - https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models - config: Optional[dict] - any key-specific configs, overrides config in config.yaml - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - send_invite_email: Optional[bool] - Whether to send an invite email to the user_id, with the generate key - max_budget: Optional[float] - Specify max budget for a given key. - 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"). - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - metadata: Optional[dict] - Metadata for key, store information for key. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - guardrails: Optional[List[str]] - List of active guardrails for the key - permissions: Optional[dict] - key-specific permissions. Currently just used for turning off pii masking (if connected). Example - {"pii": false} - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}}. IF null or {} then no model specific budget. - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model specific rpm limit. - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model specific tpm limit. - default_estimated_output_tokens: Optional[int] - Proxy admin only. Expected output tokens reserved for TPM limiting when a request omits max_tokens. Positive integer. Falls back to the team setting, then to the built-in estimate. - default_estimated_output_tokens_per_model: Optional[dict] - Proxy admin only. Per-model override of the above. Example - {"gpt-4": 4096, "gpt-3.5-turbo": 1024}. Takes precedence over the key-wide value. - mcp_rpm_limit: Optional[dict] - key-specific per-MCP-server rpm limit, keyed by MCP server name (alias if set, else the configured name). Example - {"github": 100, "slack": 200}. IF null or {} then no MCP-specific rpm limit. - tpm_limit_type: Optional[str] - TPM rate limit type - "best_effort_throughput", "guaranteed_throughput", or "dynamic" - rpm_limit_type: Optional[str] - RPM rate limit type - "best_effort_throughput", "guaranteed_throughput", or "dynamic" - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - ["no-cache", "no-store"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request - blocked: Optional[bool] - Whether the key is blocked. - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per minute) - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per minute) - soft_budget: Optional[float] - Specify soft budget for a given key. Will trigger a slack alert when this soft budget is reached. - tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - ["/chat/completions", "/embeddings", "/keys/*"] - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {"vector_stores": ["vector_store_1", "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": ["dev_group"]}. IF null or {} then no object permission. Examples: - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{"index_name": "my-index", "index_permissions": ["write", "read"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint. 1. Allow users to turn on/off pii masking ```bash curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "permissions": {"allow_pii_controls": true} }' ``` Returns: - key: (str) The generated api key - expires: (datetime) Datetime object for when key expires. - user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id. */
4070
+ /** Generate Service Account Key Fn Generate a Service Account API key based on the provided data. This key does not belong to any user. It belongs to the team. Why use a service account key? - Prevent key from being deleted when user is deleted. - Apply team limits, not team member limits to key. Docs: https://docs.litellm.ai/docs/proxy/virtual_keys Parameters: - duration: Optional[str] - Specify the length of time the token is valid for. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"). - key_alias: Optional[str] - User defined key alias - key: Optional[str] - User defined key value. Must start with 'sk-' and be at least 16 characters long. If not set, a 16-digit unique sk-key is created for you. - team_id: Optional[str] - The team id of the key - user_id: Optional[str] - [NON-FUNCTIONAL] THIS WILL BE IGNORED. The user id of the key - budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`. - end_user_budget_id: Optional[str] - Proxy admin only. Budget id applied to end users first seen through this key that carry no budget of their own. Omit to keep the current value, pass an empty string to clear it. - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models) - aliases: Optional[dict] - Any alias mappings, on top of anything in the config.yaml model list. - https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models - config: Optional[dict] - any key-specific configs, overrides config in config.yaml - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - send_invite_email: Optional[bool] - Whether to send an invite email to the user_id, with the generate key - max_budget: Optional[float] - Specify max budget for a given key. - 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"). - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - metadata: Optional[dict] - Metadata for key, store information for key. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - guardrails: Optional[List[str]] - List of active guardrails for the key - permissions: Optional[dict] - key-specific permissions. Currently just used for turning off pii masking (if connected). Example - {"pii": false} - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}}}. IF null or {} then no model specific budget. - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model specific rpm limit. - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - {"text-davinci-002": 1000, "gpt-3.5-turbo": 1000}. IF null or {} then no model specific tpm limit. - default_estimated_output_tokens: Optional[int] - Proxy admin only. Expected output tokens reserved for TPM limiting when a request omits max_tokens. Positive integer. Falls back to the team setting, then to the built-in estimate. - default_estimated_output_tokens_per_model: Optional[dict] - Proxy admin only. Per-model override of the above. Example - {"gpt-4": 4096, "gpt-3.5-turbo": 1024}. Takes precedence over the key-wide value. - mcp_rpm_limit: Optional[dict] - key-specific per-MCP-server rpm limit, keyed by MCP server name (alias if set, else the configured name). Example - {"github": 100, "slack": 200}. IF null or {} then no MCP-specific rpm limit. - tpm_limit_type: Optional[str] - TPM rate limit type - "best_effort_throughput", "guaranteed_throughput", or "dynamic" - rpm_limit_type: Optional[str] - RPM rate limit type - "best_effort_throughput", "guaranteed_throughput", or "dynamic" - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - ["no-cache", "no-store"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request - blocked: Optional[bool] - Whether the key is blocked. - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per minute) - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per minute) - tpd_limit: Optional[int] - Specify tpd limit for a given key (Tokens per day). Charged by batch submissions instead of tpm_limit/rpm_limit. - soft_budget: Optional[float] - Specify soft budget for a given key. Will trigger a slack alert when this soft budget is reached. - tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - ["/chat/completions", "/embeddings", "/keys/*"] - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {"vector_stores": ["vector_store_1", "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": ["dev_group"]}. IF null or {} then no object permission. Examples: - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{"index_name": "my-index", "index_permissions": ["write", "read"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint. 1. Allow users to turn on/off pii masking ```bash curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "permissions": {"allow_pii_controls": true} }' ``` Returns: - key: (str) The generated api key - expires: (datetime) Datetime object for when key expires. - user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id. */
3968
4071
  export const generateServiceAccountKeyFnKeyServiceAccountGeneratePost: API.OperationMethod<
3969
4072
  GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostRequest,
3970
4073
  GenerateServiceAccountKeyFnKeyServiceAccountGeneratePostResponse,
@@ -3979,7 +4082,7 @@ export const generateServiceAccountKeyFnKeyServiceAccountGeneratePost: API.Opera
3979
4082
  }));
3980
4083
 
3981
4084
  export type GetInfoKeyFnKeyInfoError = UnprocessableEntity | LitellmOpError;
3982
- /** Info Key Fn Retrieve information about a key. Parameters: - key: str | None (query parameter) - The key to look up. Accepts the plaintext key or its hash. Defaults to the key in the Authorization header. Returns: - key: str - The key that was looked up, echoed back as it was passed in - info: dict - The key's row, minus the hashed token - key_alias: str | None - User-friendly key alias - spend: float - Amount spent by the key. When budget_duration is set this covers only the current budget window, not the key's lifetime - max_budget: float | None - Max budget for the key, enforced against spend - budget_duration: str | None - Budget reset period ("30d", "1h", etc.) - budget_reset_at: datetime | None - When the current budget window ends and spend is next reset to 0, not when it was last reset. Reset times snap to standard boundaries in the configured timezone (30d and 1mo land on the 1st of the month, 7d on Monday, 1h on the hour), so subtracting budget_duration from it does not give the window's start - model_max_budget: dict - Per-model budgets, e.g. {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - model_max_budget_usage: dict | None - Current-window spend per model, present only when the key has per-model budgets - models: list - Model_name's the key is allowed to call - tpm_limit / rpm_limit: int | None - Tokens and requests per minute limits - metadata: dict - Metadata for the key, e.g. {"team": "core-infra"} - blocked: bool | None - Whether the key is blocked - expires: datetime | None - When the key stops authenticating requests - last_active: datetime | None - When the key was last used - object_permission: dict | None - Resolved vector store / MCP permissions when the key has an object_permission_id Example Curl: ``` curl -X GET "http://0.0.0.0:4000/key/info?key=sk-test-example-key-123" -H "Authorization: Bearer sk-1234" ``` Example Curl - if no key is passed, it will use the Key Passed in Authorization Header ``` curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-test-example-key-123" ``` */
4085
+ /** Info Key Fn Retrieve information about a key. Parameters: - key: str | None (query parameter) - The key to look up. Accepts the plaintext key or its hash; prefer the hash, since a query parameter is recorded verbatim by any HTTP access log in front of the proxy. Defaults to the key in the Authorization header. Returns: - key: str - The key that was looked up, echoed back as it was passed in - info: dict - The key's row, minus the hashed token. Deleted keys are served from the LiteLLM_DeletedVerificationToken archive and carry deleted_at / deleted_by - status: "active" | "expired" | "revoked" | "deleted" - Derived from blocked, expires and whether the row came from the archive - key_alias: str | None - User-friendly key alias - spend: float - Amount spent by the key. When budget_duration is set this covers only the current budget window, not the key's lifetime - max_budget: float | None - Max budget for the key, enforced against spend - budget_duration: str | None - Budget reset period ("30d", "1h", etc.) - budget_reset_at: datetime | None - When the current budget window ends and spend is next reset to 0, not when it was last reset. Reset times snap to standard boundaries in the configured timezone (30d and 1mo land on the 1st of the month, 7d on Monday, 1h on the hour), so subtracting budget_duration from it does not give the window's start - model_max_budget: dict - Per-model budgets, e.g. {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - model_max_budget_usage: dict | None - Current-window spend per model, present only when the key has per-model budgets - budget_limits: list | None - Concurrent budget windows, exactly as stored - budget_limits_usage: dict | None - Current-window spend per budget window, e.g. {"1h": {"current_spend": 0.0009}}, present only when the key has budget windows (read from the same cross-pod spend counter the budget enforcement uses) - models: list - Model_name's the key is allowed to call - tpm_limit / rpm_limit: int | None - Tokens and requests per minute limits - metadata: dict - Metadata for the key, e.g. {"team": "core-infra"} - blocked: bool | None - Whether the key is blocked - expires: datetime | None - When the key stops authenticating requests - last_active: datetime | None - When the key was last used - object_permission: dict | None - Resolved vector store / MCP permissions when the key has an object_permission_id Example Curl: ``` curl -X GET "http://0.0.0.0:4000/key/info?key=d5345c0ecc68ae6295c69f91926b2bd379e25481a40c34b5884d157a9f65d8fa" -H "Authorization: Bearer sk-1234" ``` Example Curl - if no key is passed, it will use the Key Passed in Authorization Header ``` curl -X GET "http://0.0.0.0:4000/key/info" -H "Authorization: Bearer sk-test-example-key-123" ``` */
3983
4086
  export const getInfoKeyFnKeyInfo: API.OperationMethod<
3984
4087
  GetInfoKeyFnKeyInfoRequest,
3985
4088
  GetInfoKeyFnKeyInfoResponse,
@@ -4012,7 +4115,7 @@ export type ListKeysKeyListGetError =
4012
4115
  | BadRequest
4013
4116
  | UnprocessableEntity
4014
4117
  | LitellmOpError;
4015
- /** List Keys List all keys for a given user / team / organization. Parameters: expand: Optional[List[str]] - Expand related objects (e.g. 'user' to include user information) status: Optional[str] - Filter by status. Currently supports "deleted" to query deleted keys. Returns: { "keys": List[str] or List[UserAPIKeyAuth], "total_count": int, "current_page": int, "total_pages": int, } When expand includes "user", each key object will include a "user" field with the associated user object. Note: When expand=user is specified, full key objects are returned regardless of the return_full_object parameter. */
4118
+ /** List Keys List all keys for a given user / team / organization. Parameters: expand: Optional[List[str]] - Expand related objects (e.g. 'user' to include user information) status: Optional[str] - Filter by status: "active", "expired", "revoked" (blocked) or "deleted". "deleted" reads the LiteLLM_DeletedVerificationToken archive; the other values partition the live key table, so every live key matches exactly one of them. Returns: { "keys": List[str] or List[UserAPIKeyAuth], "total_count": int, "current_page": int, "total_pages": int, } When expand includes "user", each key object will include a "user" field with the associated user object. Note: When expand=user is specified, full key objects are returned regardless of the return_full_object parameter. */
4016
4119
  export const listKeysKeyListGet: API.OperationMethod<
4017
4120
  ListKeysKeyListGetRequest,
4018
4121
  KeyListResponseObject,
@@ -4147,7 +4250,7 @@ export type UpdateKeyFnKeyUpdatePostError =
4147
4250
  | NotFound
4148
4251
  | UnprocessableEntity
4149
4252
  | LitellmOpError;
4150
- /** Update Key Fn Update an existing API key's parameters. Parameters: - key: Optional[str] - The key to update. Either key or key_alias must be provided. - key_alias: Optional[str] - User-friendly key alias. If key is omitted, also identifies the key to update (must match exactly one key, same as /key/delete's key_aliases) - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - agent_id: Optional[str] - The agent id associated with the key. - organization_id: Optional[str] - The organization id of the key. - budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`. - models: Optional[list] - Model_name's a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - soft_budget: Optional[float] - [TODO] Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", "app": "app2"} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, "claude-v1": 200} - mcp_rpm_limit: Optional[dict] - Per-MCP-server RPM limits, keyed by MCP server name {"github": 100, "slack": 200} - tag_rpm_limit: Optional[dict] - Per-request-tag RPM limits, keyed by request tag {"cell-1": 1000, "cell-2": 500}. Each tag gets an independent counter; absent tags fall back to the key-level rpm limit. - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, "claude-v1": 200000} - default_estimated_output_tokens: Optional[int] - Proxy admin only. Expected output tokens reserved for TPM limiting when a request omits max_tokens. Positive integer. - default_estimated_output_tokens_per_model: Optional[dict] - Proxy admin only. Per-model override of the above {"gpt-4": 4096, "gpt-3.5-turbo": 1024} - tpm_limit_type: Optional[str] - TPM rate limit type - "best_effort_throughput", "guaranteed_throughput", or "dynamic" - rpm_limit_type: Optional[str] - RPM rate limit type - "best_effort_throughput", "guaranteed_throughput", or "dynamic" - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration ("30d", "1h", etc.), null to never expire, or "-1" to never expire (deprecated, use null) - permissions: Optional[dict] - Key-specific permissions - send_invite_email: Optional[bool] - Send invite email to user_id - guardrails: Optional[List[str]] - List of active guardrails for the key - policies: Optional[List[str]] - List of policy names to apply to the key. Policies define guardrails, conditions, and inheritance rules. - disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key. - throttle_on_budget_exceeded: Optional[bool] - When the key exceeds its max_budget, throttle its tpm/rpm to the global budget_exceeded_throttle_percentage instead of blocking the key entirely. - enable_prompt_caching: Optional[bool] - Auto-inject prompt caching breakpoints (Anthropic cache_control markers) on requests made with this key. Anthropic and Bedrock Claude models only. - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. - blocked: Optional[bool] - Whether the key is blocked - aliases: Optional[dict] - Model aliases for the key - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: Optional[dict] - [DEPRECATED PARAM] Key-specific config. - temp_budget_increase: Optional[float] - Temporary budget increase for the key (Enterprise only). - temp_budget_expiry: Optional[str] - Expiry time for the temporary budget increase (Enterprise only). - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - ["/chat/completions", "/embeddings", "/keys/*"] - allowed_passthrough_routes: Optional[list] - List of allowed pass through routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - ["/my-custom-endpoint"]. Use this instead of allowed_routes, if you just want to specify which pass through routes the key can access, without specifying the routes. If allowed_routes is specified, allowed_passthrough_routes is ignored. - prompts: Optional[List[str]] - List of allowed prompts for the key. If specified, the key will only be able to use these specific prompts. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {"vector_stores": ["vector_store_1", "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": ["dev_group"]}. IF null or {} then no object permission. - auto_rotate: Optional[bool] - Whether this key should be automatically rotated - rotation_interval: Optional[str] - How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{"index_name": "my-index", "index_permissions": ["write", "read"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint. - router_settings: Optional[UpdateRouterConfig] - key-specific router settings. Example - {"model_group_retry_policy": {"gpt-4": {"RateLimitErrorRetries": 5}}}. IF null or {} then no router settings. - access_group_ids: Optional[List[str]] - List of access group IDs to associate with the key. Access groups define which models a key can access. Example - ["access_group_1", "access_group_2"]. - budget_limits: Optional[list] - List of concurrent budget windows for the key. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{"budget_limit": 10.0, "time_period": "1d"}, {"budget_limit": 50.0, "time_period": "7d"}]. Example: ```bash curl --location 'http://0.0.0.0:4000/key/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "key": "sk-1234", "key_alias": "my-key", "user_id": "user-1234", "team_id": "team-1234", "max_budget": 100, "metadata": {"any_key": "any-val"}, }' ``` */
4253
+ /** Update Key Fn Update an existing API key's parameters. The body is a merge patch: a field left out keeps its stored value, and on the key's own columns an explicit null clears it. The metadata-backed fields below are the exception, merging into the stored metadata instead: passing one as null leaves it unchanged, while `metadata` itself replaces the stored metadata wholesale. Parameters: - key: Optional[str] - The key to update. Either key or key_alias must be provided. - key_alias: Optional[str] - User-friendly key alias. If key is omitted, also identifies the key to update (must match exactly one key, same as /key/delete's key_aliases) - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - agent_id: Optional[str] - The agent id associated with the key. - project_id: Optional[str] - Omit to retain the project, or send null to detach. A different project ID is rejected. - organization_id: Optional[str] - The organization id of the key. - budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`. - end_user_budget_id: Optional[str] - Proxy admin only. Budget id applied to end users first seen through this key that carry no budget of their own. Omit to keep the current value, pass an empty string to clear it. - models: Optional[list] - Model_name's a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {"gpt-4": {"budget_limit": 0.0005, "time_period": "30d"}} - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - budget_duration: Optional[str] - Budget reset period ("30d", "1h", etc.) - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. Set to null to remove the soft budget. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {"team": "core-infra", "app": "app2"} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - tpd_limit: Optional[int] - Tokens per day limit, charged by batch submissions instead of tpm_limit/rpm_limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {"gpt-4": 100, "claude-v1": 200} - mcp_rpm_limit: Optional[dict] - Per-MCP-server RPM limits, keyed by MCP server name {"github": 100, "slack": 200} - tag_rpm_limit: Optional[dict] - Per-request-tag RPM limits, keyed by request tag {"cell-1": 1000, "cell-2": 500}. Each tag gets an independent counter; absent tags fall back to the key-level rpm limit. - model_tpm_limit: Optional[dict] - Model-specific TPM limits {"gpt-4": 100000, "claude-v1": 200000} - default_estimated_output_tokens: Optional[int] - Proxy admin only. Expected output tokens reserved for TPM limiting when a request omits max_tokens. Positive integer. - default_estimated_output_tokens_per_model: Optional[dict] - Proxy admin only. Per-model override of the above {"gpt-4": 4096, "gpt-3.5-turbo": 1024} - tpm_limit_type: Optional[str] - TPM rate limit type - "best_effort_throughput", "guaranteed_throughput", or "dynamic" - rpm_limit_type: Optional[str] - RPM rate limit type - "best_effort_throughput", "guaranteed_throughput", or "dynamic" - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration ("30d", "1h", etc.), null to never expire, or "-1" to never expire (deprecated, use null) - permissions: Optional[dict] - Key-specific permissions - send_invite_email: Optional[bool] - Send invite email to user_id - guardrails: Optional[List[str]] - List of active guardrails for the key - policies: Optional[List[str]] - List of policy names to apply to the key. Policies define guardrails, conditions, and inheritance rules. - disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key. - throttle_on_budget_exceeded: Optional[bool] - When the key exceeds its max_budget, throttle its tpm/rpm to the global budget_exceeded_throttle_percentage instead of blocking the key entirely. - enable_prompt_caching: Optional[bool] - Auto-inject prompt caching breakpoints (Anthropic cache_control markers) on requests made with this key. Supported Claude models on Anthropic, Bedrock, Vertex AI, and Azure AI only. - prompts: Optional[List[str]] - List of prompts that the key is allowed to use. - blocked: Optional[bool] - Whether the key is blocked - aliases: Optional[dict] - Model aliases for the key - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: Optional[dict] - [DEPRECATED PARAM] Key-specific config. - temp_budget_increase: Optional[float] - Temporary budget increase for the key (Enterprise only). - temp_budget_expiry: Optional[str] - Expiry time for the temporary budget increase (Enterprise only). - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - ["/chat/completions", "/embeddings", "/keys/*"] - allowed_passthrough_routes: Optional[list] - List of allowed pass through routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - ["/my-custom-endpoint"]. Use this instead of allowed_routes, if you just want to specify which pass through routes the key can access, without specifying the routes. If allowed_routes is specified, allowed_passthrough_routes is ignored. - prompts: Optional[List[str]] - List of allowed prompts for the key. If specified, the key will only be able to use these specific prompts. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {"vector_stores": ["vector_store_1", "vector_store_2"], "agents": ["agent_1", "agent_2"], "agent_access_groups": ["dev_group"]}. IF null or {} then no object permission. - auto_rotate: Optional[bool] - Whether this key should be automatically rotated - rotation_interval: Optional[str] - How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True - allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{"index_name": "my-index", "index_permissions": ["write", "read"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint. - router_settings: Optional[UpdateRouterConfig] - key-specific router settings. Example - {"model_group_retry_policy": {"gpt-4": {"RateLimitErrorRetries": 5}}}. IF null or {} then no router settings. - access_group_ids: Optional[List[str]] - List of access group IDs to associate with the key. Access groups define which models a key can access. Example - ["access_group_1", "access_group_2"]. - budget_limits: Optional[list] - List of concurrent budget windows for the key. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{"budget_limit": 10.0, "time_period": "1d"}, {"budget_limit": 50.0, "time_period": "7d"}]. Example: ```bash curl --location 'http://0.0.0.0:4000/key/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "key": "sk-1234", "key_alias": "my-key", "user_id": "user-1234", "team_id": "team-1234", "max_budget": 100, "metadata": {"any_key": "any-val"}, }' ``` */
4151
4254
  export const updateKeyFnKeyUpdatePost: API.OperationMethod<
4152
4255
  UpdateKeyFnKeyUpdatePostRequest,
4153
4256
  UpdateKeyFnKeyUpdatePostResponse,