@homeflare/distilled-litellm 0.2.0 → 0.4.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 +48 -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 +16 -3
  68. package/dist/services/credential_management.d.ts.map +1 -1
  69. package/dist/services/credential_management.js +13 -4
  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 +116 -50
  107. package/dist/services/key_management.d.ts.map +1 -1
  108. package/dist/services/key_management.js +95 -40
  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 +25 -6
  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 +257 -127
  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 API from "@distilled.cloud/core/api";
4
4
  import * as C from "@distilled.cloud/core/category";
@@ -102,6 +102,83 @@ export const AddTeamCallbacksTeamTeamIdCallbackPostResponse =
102
102
  identifier: "AddTeamCallbacksTeamTeamIdCallbackPostResponse",
103
103
  }) as any as S.Schema<AddTeamCallbacksTeamTeamIdCallbackPostResponse>;
104
104
 
105
+ /** One member, named by exactly one of `user_id` or `user_email`. */
106
+ export interface TeamMemberRef {
107
+ user_email?: string | null;
108
+ user_id?: string | null;
109
+ }
110
+ export const TeamMemberRef = /*@__PURE__*/ S.suspend(() =>
111
+ S.Struct({
112
+ user_email: S.optional(S.NullOr(S.String)),
113
+ user_id: S.optional(S.NullOr(S.String)),
114
+ }),
115
+ ).annotate({ identifier: "TeamMemberRef" }) as any as S.Schema<TeamMemberRef>;
116
+
117
+ export type BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequestMembersList =
118
+ Array<TeamMemberRef>;
119
+ export const BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequestMembersList =
120
+ /*@__PURE__*/ S.Array(
121
+ TeamMemberRef,
122
+ ) as any as S.Schema<BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequestMembersList>;
123
+
124
+ export interface BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequest {
125
+ team_id: string;
126
+ members: BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequestMembersList;
127
+ }
128
+ export const BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequest =
129
+ /*@__PURE__*/ S.suspend(() =>
130
+ S.Struct({
131
+ team_id: S.String.pipe(T.Label()),
132
+ members:
133
+ BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequestMembersList,
134
+ }).pipe(
135
+ T.Http({
136
+ method: "POST",
137
+ uri: "/management/v1/teams/{team_id}/members/bulk_delete",
138
+ code: 200,
139
+ }),
140
+ ),
141
+ ).annotate({
142
+ identifier:
143
+ "BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequest",
144
+ }) as any as S.Schema<BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequest>;
145
+
146
+ /** Outcome for one requested member, in request order. */
147
+ export interface TeamMemberDeleteResult {
148
+ error?: string | null;
149
+ success: boolean;
150
+ user_email?: string | null;
151
+ user_id?: string | null;
152
+ }
153
+ export const TeamMemberDeleteResult = /*@__PURE__*/ S.suspend(() =>
154
+ S.Struct({
155
+ error: S.optional(S.NullOr(S.String)),
156
+ success: S.Boolean,
157
+ user_email: S.optional(S.NullOr(S.String)),
158
+ user_id: S.optional(S.NullOr(S.String)),
159
+ }),
160
+ ).annotate({
161
+ identifier: "TeamMemberDeleteResult",
162
+ }) as any as S.Schema<TeamMemberDeleteResult>;
163
+
164
+ export type BulkTeamMemberDeleteResponseDataList =
165
+ Array<TeamMemberDeleteResult>;
166
+ export const BulkTeamMemberDeleteResponseDataList = /*@__PURE__*/ S.Array(
167
+ TeamMemberDeleteResult,
168
+ ) as any as S.Schema<BulkTeamMemberDeleteResponseDataList>;
169
+
170
+ /** `{data: [...]}` with one `TeamMemberDeleteResult` per requested member, in request order. */
171
+ export interface BulkTeamMemberDeleteResponse {
172
+ data: BulkTeamMemberDeleteResponseDataList;
173
+ }
174
+ export const BulkTeamMemberDeleteResponse = /*@__PURE__*/ S.suspend(() =>
175
+ S.Struct({
176
+ data: BulkTeamMemberDeleteResponseDataList,
177
+ }),
178
+ ).annotate({
179
+ identifier: "BulkTeamMemberDeleteResponse",
180
+ }) as any as S.Schema<BulkTeamMemberDeleteResponse>;
181
+
105
182
  /** The role of the user within the team. 'admin' users can manage team settings and members, 'user' is a regular team member */
106
183
  export type MemberRole = "admin" | "user";
107
184
  export const MemberRole = S.String;
@@ -227,6 +304,131 @@ export const BulkTeamMemberAddResponse = /*@__PURE__*/ S.suspend(() =>
227
304
  identifier: "BulkTeamMemberAddResponse",
228
305
  }) as any as S.Schema<BulkTeamMemberAddResponse>;
229
306
 
307
+ export type TeamMemberBudgetPatchAllowedModelsList = Array<string>;
308
+ export const TeamMemberBudgetPatchAllowedModelsList = /*@__PURE__*/ S.Array(
309
+ S.String,
310
+ ) as any as S.Schema<TeamMemberBudgetPatchAllowedModelsList>;
311
+
312
+ /** One member's per-member limits, merge-patch style: a field left out of the row is untouched, a field sent as null is cleared, and clearing the last limit drops the member back to the team default. */
313
+ export interface TeamMemberBudgetPatch {
314
+ allowed_models?: TeamMemberBudgetPatchAllowedModelsList | null;
315
+ budget_duration?: string | null;
316
+ max_budget_in_team?: number | null;
317
+ rpm_limit?: number | null;
318
+ tpm_limit?: number | null;
319
+ user_email?: string | null;
320
+ user_id?: string | null;
321
+ }
322
+ export const TeamMemberBudgetPatch = /*@__PURE__*/ S.suspend(() =>
323
+ S.Struct({
324
+ allowed_models: S.optional(
325
+ S.NullOr(TeamMemberBudgetPatchAllowedModelsList),
326
+ ),
327
+ budget_duration: S.optional(S.NullOr(S.String)),
328
+ max_budget_in_team: S.optional(S.NullOr(S.Number)),
329
+ rpm_limit: S.optional(S.NullOr(S.Number)),
330
+ tpm_limit: S.optional(S.NullOr(S.Number)),
331
+ user_email: S.optional(S.NullOr(S.String)),
332
+ user_id: S.optional(S.NullOr(S.String)),
333
+ }),
334
+ ).annotate({
335
+ identifier: "TeamMemberBudgetPatch",
336
+ }) as any as S.Schema<TeamMemberBudgetPatch>;
337
+
338
+ export type BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequestMembersList =
339
+ Array<TeamMemberBudgetPatch>;
340
+ export const BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequestMembersList =
341
+ /*@__PURE__*/ S.Array(
342
+ TeamMemberBudgetPatch,
343
+ ) as any as S.Schema<BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequestMembersList>;
344
+
345
+ export interface BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequest {
346
+ team_id: string;
347
+ members: BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequestMembersList;
348
+ }
349
+ export const BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequest =
350
+ /*@__PURE__*/ S.suspend(() =>
351
+ S.Struct({
352
+ team_id: S.String.pipe(T.Label()),
353
+ members:
354
+ BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequestMembersList,
355
+ }).pipe(
356
+ T.Http({
357
+ method: "POST",
358
+ uri: "/management/v1/teams/{team_id}/members/bulk_update",
359
+ code: 200,
360
+ }),
361
+ ),
362
+ ).annotate({
363
+ identifier:
364
+ "BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequest",
365
+ }) as any as S.Schema<BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequest>;
366
+
367
+ export type TeamMemberBudgetUpdateResultAllowedModelsList = Array<string>;
368
+ export const TeamMemberBudgetUpdateResultAllowedModelsList =
369
+ /*@__PURE__*/ S.Array(
370
+ S.String,
371
+ ) as any as S.Schema<TeamMemberBudgetUpdateResultAllowedModelsList>;
372
+
373
+ export type TeamMemberBudgetUpdateResultMaxBudgetSource =
374
+ | "member"
375
+ | "team_default";
376
+ export const TeamMemberBudgetUpdateResultMaxBudgetSource = S.String;
377
+
378
+ /** Outcome for one requested member, in request order, carrying the limits in force after the write rather than the ones that were asked for. */
379
+ export interface TeamMemberBudgetUpdateResult {
380
+ allowed_models?: TeamMemberBudgetUpdateResultAllowedModelsList | null;
381
+ budget_duration?: string | null;
382
+ budget_id?: string | null;
383
+ error?: string | null;
384
+ max_budget?: number | null;
385
+ max_budget_source?: TeamMemberBudgetUpdateResultMaxBudgetSource | null;
386
+ rpm_limit?: number | null;
387
+ success: boolean;
388
+ tpm_limit?: number | null;
389
+ user_email?: string | null;
390
+ user_id?: string | null;
391
+ }
392
+ export const TeamMemberBudgetUpdateResult = /*@__PURE__*/ S.suspend(() =>
393
+ S.Struct({
394
+ allowed_models: S.optional(
395
+ S.NullOr(TeamMemberBudgetUpdateResultAllowedModelsList),
396
+ ),
397
+ budget_duration: S.optional(S.NullOr(S.String)),
398
+ budget_id: S.optional(S.NullOr(S.String)),
399
+ error: S.optional(S.NullOr(S.String)),
400
+ max_budget: S.optional(S.NullOr(S.Number)),
401
+ max_budget_source: S.optional(
402
+ S.NullOr(TeamMemberBudgetUpdateResultMaxBudgetSource),
403
+ ),
404
+ rpm_limit: S.optional(S.NullOr(S.Number)),
405
+ success: S.Boolean,
406
+ tpm_limit: S.optional(S.NullOr(S.Number)),
407
+ user_email: S.optional(S.NullOr(S.String)),
408
+ user_id: S.optional(S.NullOr(S.String)),
409
+ }),
410
+ ).annotate({
411
+ identifier: "TeamMemberBudgetUpdateResult",
412
+ }) as any as S.Schema<TeamMemberBudgetUpdateResult>;
413
+
414
+ export type BulkTeamMemberBudgetUpdateResponseDataList =
415
+ Array<TeamMemberBudgetUpdateResult>;
416
+ export const BulkTeamMemberBudgetUpdateResponseDataList = /*@__PURE__*/ S.Array(
417
+ TeamMemberBudgetUpdateResult,
418
+ ) as any as S.Schema<BulkTeamMemberBudgetUpdateResponseDataList>;
419
+
420
+ /** `{data: [...]}` with one `TeamMemberBudgetUpdateResult` per requested member, in request order. */
421
+ export interface BulkTeamMemberBudgetUpdateResponse {
422
+ data: BulkTeamMemberBudgetUpdateResponseDataList;
423
+ }
424
+ export const BulkTeamMemberBudgetUpdateResponse = /*@__PURE__*/ S.suspend(() =>
425
+ S.Struct({
426
+ data: BulkTeamMemberBudgetUpdateResponseDataList,
427
+ }),
428
+ ).annotate({
429
+ identifier: "BulkTeamMemberBudgetUpdateResponse",
430
+ }) as any as S.Schema<BulkTeamMemberBudgetUpdateResponse>;
431
+
230
432
  /** Enum for key management routes */
231
433
  export type KeyManagementRoutes =
232
434
  | "/key/generate"
@@ -241,6 +443,7 @@ export type KeyManagementRoutes =
241
443
  | "/team/key/bulk_update"
242
444
  | "/key/{key_id}/reset_spend"
243
445
  | "/key/access_group_assignment"
446
+ | "/auto_router/manage"
244
447
  | "/key/info"
245
448
  | "/key/health"
246
449
  | "/key/list"
@@ -513,8 +716,10 @@ export interface DailySpendMetadata {
513
716
  total_pages?: number;
514
717
  total_prompt_caching_savings_spend?: number;
515
718
  total_prompt_tokens?: number;
719
+ total_response_time_ms?: number;
516
720
  total_spend?: number;
517
721
  total_successful_requests?: number;
722
+ total_timed_requests?: number;
518
723
  total_tokens?: number;
519
724
  }
520
725
  export const DailySpendMetadata = /*@__PURE__*/ S.suspend(() =>
@@ -534,8 +739,10 @@ export const DailySpendMetadata = /*@__PURE__*/ S.suspend(() =>
534
739
  total_pages: S.optional(S.Number),
535
740
  total_prompt_caching_savings_spend: S.optional(S.Number),
536
741
  total_prompt_tokens: S.optional(S.Number),
742
+ total_response_time_ms: S.optional(S.Number),
537
743
  total_spend: S.optional(S.Number),
538
744
  total_successful_requests: S.optional(S.Number),
745
+ total_timed_requests: S.optional(S.Number),
539
746
  total_tokens: S.optional(S.Number),
540
747
  }),
541
748
  ).annotate({
@@ -545,12 +752,18 @@ export const DailySpendMetadata = /*@__PURE__*/ S.suspend(() =>
545
752
  /** Metadata for a key */
546
753
  export interface KeyMetadata {
547
754
  key_alias?: string | null;
755
+ key_exists?: boolean | null;
548
756
  team_id?: string | null;
757
+ user_email?: string | null;
758
+ user_id?: string | null;
549
759
  }
550
760
  export const KeyMetadata = /*@__PURE__*/ S.suspend(() =>
551
761
  S.Struct({
552
762
  key_alias: S.optional(S.NullOr(S.String)),
763
+ key_exists: S.optional(S.NullOr(S.Boolean)),
553
764
  team_id: S.optional(S.NullOr(S.String)),
765
+ user_email: S.optional(S.NullOr(S.String)),
766
+ user_id: S.optional(S.NullOr(S.String)),
554
767
  }),
555
768
  ).annotate({ identifier: "KeyMetadata" }) as any as S.Schema<KeyMetadata>;
556
769
 
@@ -569,6 +782,8 @@ export interface SpendMetrics {
569
782
  prompt_tokens?: number;
570
783
  spend?: number;
571
784
  successful_requests?: number;
785
+ timed_requests?: number;
786
+ total_response_time_ms?: number;
572
787
  total_tokens?: number;
573
788
  }
574
789
  export const SpendMetrics = /*@__PURE__*/ S.suspend(() =>
@@ -587,6 +802,8 @@ export const SpendMetrics = /*@__PURE__*/ S.suspend(() =>
587
802
  prompt_tokens: S.optional(S.Number),
588
803
  spend: S.optional(S.Number),
589
804
  successful_requests: S.optional(S.Number),
805
+ timed_requests: S.optional(S.Number),
806
+ total_response_time_ms: S.optional(S.Number),
590
807
  total_tokens: S.optional(S.Number),
591
808
  }),
592
809
  ).annotate({ identifier: "SpendMetrics" }) as any as S.Schema<SpendMetrics>;
@@ -838,6 +1055,9 @@ export interface LiteLLMBudgetTableFull {
838
1055
  model_max_budget?: LiteLLMBudgetTableFullModelMaxBudgetMap | null;
839
1056
  rpm_limit?: number | null;
840
1057
  soft_budget?: number | null;
1058
+ temp_budget_expiry?: string | null;
1059
+ temp_budget_increase?: number | null;
1060
+ tpd_limit?: number | null;
841
1061
  tpm_limit?: number | null;
842
1062
  }
843
1063
  export const LiteLLMBudgetTableFull = /*@__PURE__*/ S.suspend(() =>
@@ -856,6 +1076,9 @@ export const LiteLLMBudgetTableFull = /*@__PURE__*/ S.suspend(() =>
856
1076
  ),
857
1077
  rpm_limit: S.optional(S.NullOr(S.Number)),
858
1078
  soft_budget: S.optional(S.NullOr(S.Number)),
1079
+ temp_budget_expiry: S.optional(S.NullOr(S.String)),
1080
+ temp_budget_increase: S.optional(S.NullOr(S.Number)),
1081
+ tpd_limit: S.optional(S.NullOr(S.Number)),
859
1082
  tpm_limit: S.optional(S.NullOr(S.Number)),
860
1083
  }),
861
1084
  ).annotate({
@@ -885,6 +1108,9 @@ export interface LiteLLMBudgetTable {
885
1108
  model_max_budget?: LiteLLMBudgetTableModelMaxBudgetMap | null;
886
1109
  rpm_limit?: number | null;
887
1110
  soft_budget?: number | null;
1111
+ temp_budget_expiry?: string | null;
1112
+ temp_budget_increase?: number | null;
1113
+ tpd_limit?: number | null;
888
1114
  tpm_limit?: number | null;
889
1115
  }
890
1116
  export const LiteLLMBudgetTable = /*@__PURE__*/ S.suspend(() =>
@@ -897,6 +1123,9 @@ export const LiteLLMBudgetTable = /*@__PURE__*/ S.suspend(() =>
897
1123
  model_max_budget: S.optional(S.NullOr(LiteLLMBudgetTableModelMaxBudgetMap)),
898
1124
  rpm_limit: S.optional(S.NullOr(S.Number)),
899
1125
  soft_budget: S.optional(S.NullOr(S.Number)),
1126
+ temp_budget_expiry: S.optional(S.NullOr(S.String)),
1127
+ temp_budget_increase: S.optional(S.NullOr(S.Number)),
1128
+ tpd_limit: S.optional(S.NullOr(S.Number)),
900
1129
  tpm_limit: S.optional(S.NullOr(S.Number)),
901
1130
  }),
902
1131
  ).annotate({
@@ -981,6 +1210,75 @@ export const TeamMetadataSchemaResponse = /*@__PURE__*/ S.suspend(() =>
981
1210
  identifier: "TeamMetadataSchemaResponse",
982
1211
  }) as any as S.Schema<TeamMetadataSchemaResponse>;
983
1212
 
1213
+ export interface GetTeamSpendByUserTeamSpendByUserGetRequest {
1214
+ team_ids?: string;
1215
+ start_date?: string;
1216
+ end_date?: string;
1217
+ }
1218
+ export const GetTeamSpendByUserTeamSpendByUserGetRequest =
1219
+ /*@__PURE__*/ S.suspend(() =>
1220
+ S.Struct({
1221
+ team_ids: S.optional(S.String.pipe(T.Query())),
1222
+ start_date: S.optional(S.String.pipe(T.Query())),
1223
+ end_date: S.optional(S.String.pipe(T.Query())),
1224
+ }).pipe(T.Http({ method: "GET", uri: "/team/spend/by_user", code: 200 })),
1225
+ ).annotate({
1226
+ identifier: "GetTeamSpendByUserTeamSpendByUserGetRequest",
1227
+ }) as any as S.Schema<GetTeamSpendByUserTeamSpendByUserGetRequest>;
1228
+
1229
+ export interface TeamUserSpendRow {
1230
+ api_requests?: number;
1231
+ completion_tokens?: number;
1232
+ failed_requests?: number;
1233
+ prompt_tokens?: number;
1234
+ spend?: number;
1235
+ successful_requests?: number;
1236
+ team_alias?: string | null;
1237
+ team_id: string;
1238
+ total_tokens?: number;
1239
+ user_alias?: string | null;
1240
+ user_email?: string | null;
1241
+ user_id: string;
1242
+ }
1243
+ export const TeamUserSpendRow = /*@__PURE__*/ S.suspend(() =>
1244
+ S.Struct({
1245
+ api_requests: S.optional(S.Number),
1246
+ completion_tokens: S.optional(S.Number),
1247
+ failed_requests: S.optional(S.Number),
1248
+ prompt_tokens: S.optional(S.Number),
1249
+ spend: S.optional(S.Number),
1250
+ successful_requests: S.optional(S.Number),
1251
+ team_alias: S.optional(S.NullOr(S.String)),
1252
+ team_id: S.String,
1253
+ total_tokens: S.optional(S.Number),
1254
+ user_alias: S.optional(S.NullOr(S.String)),
1255
+ user_email: S.optional(S.NullOr(S.String)),
1256
+ user_id: S.String,
1257
+ }),
1258
+ ).annotate({
1259
+ identifier: "TeamUserSpendRow",
1260
+ }) as any as S.Schema<TeamUserSpendRow>;
1261
+
1262
+ export type TeamUserSpendResponseResultsList = Array<TeamUserSpendRow>;
1263
+ export const TeamUserSpendResponseResultsList = /*@__PURE__*/ S.Array(
1264
+ TeamUserSpendRow,
1265
+ ) as any as S.Schema<TeamUserSpendResponseResultsList>;
1266
+
1267
+ export interface TeamUserSpendResponse {
1268
+ end_date: string;
1269
+ results: TeamUserSpendResponseResultsList;
1270
+ start_date: string;
1271
+ }
1272
+ export const TeamUserSpendResponse = /*@__PURE__*/ S.suspend(() =>
1273
+ S.Struct({
1274
+ end_date: S.String,
1275
+ results: TeamUserSpendResponseResultsList,
1276
+ start_date: S.String,
1277
+ }),
1278
+ ).annotate({
1279
+ identifier: "TeamUserSpendResponse",
1280
+ }) as any as S.Schema<TeamUserSpendResponse>;
1281
+
984
1282
  export interface GetUiViewTeamsTeamFilterUiRequest {
985
1283
  /** Team ID in the request parameters */
986
1284
  team_id?: string;
@@ -1174,6 +1472,11 @@ export const LiteLLMObjectPermissionTableSearchToolsList =
1174
1472
  S.String,
1175
1473
  ) as any as S.Schema<LiteLLMObjectPermissionTableSearchToolsList>;
1176
1474
 
1475
+ export type LiteLLMObjectPermissionTableSkillsList = Array<string>;
1476
+ export const LiteLLMObjectPermissionTableSkillsList = /*@__PURE__*/ S.Array(
1477
+ S.String,
1478
+ ) as any as S.Schema<LiteLLMObjectPermissionTableSkillsList>;
1479
+
1177
1480
  export type LiteLLMObjectPermissionTableVectorStoresList = Array<string>;
1178
1481
  export const LiteLLMObjectPermissionTableVectorStoresList =
1179
1482
  /*@__PURE__*/ S.Array(
@@ -1193,6 +1496,7 @@ export interface LiteLLMObjectPermissionTable {
1193
1496
  models?: LiteLLMObjectPermissionTableModelsList | null;
1194
1497
  object_permission_id: string;
1195
1498
  search_tools?: LiteLLMObjectPermissionTableSearchToolsList | null;
1499
+ skills?: LiteLLMObjectPermissionTableSkillsList | null;
1196
1500
  vector_stores?: LiteLLMObjectPermissionTableVectorStoresList | null;
1197
1501
  }
1198
1502
  export const LiteLLMObjectPermissionTable = /*@__PURE__*/ S.suspend(() =>
@@ -1222,6 +1526,7 @@ export const LiteLLMObjectPermissionTable = /*@__PURE__*/ S.suspend(() =>
1222
1526
  search_tools: S.optional(
1223
1527
  S.NullOr(LiteLLMObjectPermissionTableSearchToolsList),
1224
1528
  ),
1529
+ skills: S.optional(S.NullOr(LiteLLMObjectPermissionTableSkillsList)),
1225
1530
  vector_stores: S.optional(
1226
1531
  S.NullOr(LiteLLMObjectPermissionTableVectorStoresList),
1227
1532
  ),
@@ -1279,6 +1584,7 @@ export interface LiteLLMTeamTable {
1279
1584
  team_alias?: string | null;
1280
1585
  team_id: string;
1281
1586
  team_member_permissions?: LiteLLMTeamTableTeamMemberPermissionsList | null;
1587
+ tpd_limit?: number | null;
1282
1588
  tpm_limit?: number | null;
1283
1589
  updated_at?: string | null;
1284
1590
  }
@@ -1318,6 +1624,7 @@ export const LiteLLMTeamTable = /*@__PURE__*/ S.suspend(() =>
1318
1624
  team_member_permissions: S.optional(
1319
1625
  S.NullOr(LiteLLMTeamTableTeamMemberPermissionsList),
1320
1626
  ),
1627
+ tpd_limit: S.optional(S.NullOr(S.Number)),
1321
1628
  tpm_limit: S.optional(S.NullOr(S.Number)),
1322
1629
  updated_at: S.optional(S.NullOr(S.String)),
1323
1630
  }),
@@ -1544,6 +1851,7 @@ export interface TeamListItem {
1544
1851
  team_alias?: string | null;
1545
1852
  team_id: string;
1546
1853
  team_member_permissions?: TeamListItemTeamMemberPermissionsList | null;
1854
+ tpd_limit?: number | null;
1547
1855
  tpm_limit?: number | null;
1548
1856
  updated_at?: string | null;
1549
1857
  }
@@ -1594,6 +1902,7 @@ export const TeamListItem = /*@__PURE__*/ S.suspend(() =>
1594
1902
  team_member_permissions: S.optional(
1595
1903
  S.NullOr(TeamListItemTeamMemberPermissionsList),
1596
1904
  ),
1905
+ tpd_limit: S.optional(S.NullOr(S.Number)),
1597
1906
  tpm_limit: S.optional(S.NullOr(S.Number)),
1598
1907
  updated_at: S.optional(S.NullOr(S.String)),
1599
1908
  }),
@@ -1716,6 +2025,7 @@ export interface LiteLLMDeletedTeamTable {
1716
2025
  team_alias?: string | null;
1717
2026
  team_id: string;
1718
2027
  team_member_permissions?: LiteLLMDeletedTeamTableTeamMemberPermissionsList | null;
2028
+ tpd_limit?: number | null;
1719
2029
  tpm_limit?: number | null;
1720
2030
  updated_at?: string | null;
1721
2031
  }
@@ -1768,6 +2078,7 @@ export const LiteLLMDeletedTeamTable = /*@__PURE__*/ S.suspend(() =>
1768
2078
  team_member_permissions: S.optional(
1769
2079
  S.NullOr(LiteLLMDeletedTeamTableTeamMemberPermissionsList),
1770
2080
  ),
2081
+ tpd_limit: S.optional(S.NullOr(S.Number)),
1771
2082
  tpm_limit: S.optional(S.NullOr(S.Number)),
1772
2083
  updated_at: S.optional(S.NullOr(S.String)),
1773
2084
  }),
@@ -1923,6 +2234,30 @@ export const PatchTeamTeamTeamIdPatchRequestModelAliasesMap =
1923
2234
  S.Unknown,
1924
2235
  ) as any as S.Schema<PatchTeamTeamTeamIdPatchRequestModelAliasesMap>;
1925
2236
 
2237
+ export interface BudgetConfig {
2238
+ budget_duration?: string | null;
2239
+ max_budget?: number | null;
2240
+ rpm_limit?: number | null;
2241
+ tpm_limit?: number | null;
2242
+ }
2243
+ export const BudgetConfig = /*@__PURE__*/ S.suspend(() =>
2244
+ S.Struct({
2245
+ budget_duration: S.optional(S.NullOr(S.String)),
2246
+ max_budget: S.optional(S.NullOr(S.Number)),
2247
+ rpm_limit: S.optional(S.NullOr(S.Number)),
2248
+ tpm_limit: S.optional(S.NullOr(S.Number)),
2249
+ }),
2250
+ ).annotate({ identifier: "BudgetConfig" }) as any as S.Schema<BudgetConfig>;
2251
+
2252
+ export type PatchTeamTeamTeamIdPatchRequestModelMaxBudgetMap = {
2253
+ [key: string]: BudgetConfig | undefined;
2254
+ };
2255
+ export const PatchTeamTeamTeamIdPatchRequestModelMaxBudgetMap =
2256
+ /*@__PURE__*/ S.Record(
2257
+ S.String,
2258
+ BudgetConfig,
2259
+ ) as any as S.Schema<PatchTeamTeamTeamIdPatchRequestModelMaxBudgetMap>;
2260
+
1926
2261
  export type PatchTeamTeamTeamIdPatchRequestModelRpmLimitMap = {
1927
2262
  [key: string]: number | undefined;
1928
2263
  };
@@ -2007,6 +2342,11 @@ export const LiteLLMObjectPermissionBaseSearchToolsList = /*@__PURE__*/ S.Array(
2007
2342
  S.String,
2008
2343
  ) as any as S.Schema<LiteLLMObjectPermissionBaseSearchToolsList>;
2009
2344
 
2345
+ export type LiteLLMObjectPermissionBaseSkillsList = Array<string>;
2346
+ export const LiteLLMObjectPermissionBaseSkillsList = /*@__PURE__*/ S.Array(
2347
+ S.String,
2348
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseSkillsList>;
2349
+
2010
2350
  export type LiteLLMObjectPermissionBaseVectorStoresList = Array<string>;
2011
2351
  export const LiteLLMObjectPermissionBaseVectorStoresList =
2012
2352
  /*@__PURE__*/ S.Array(
@@ -2024,6 +2364,7 @@ export interface LiteLLMObjectPermissionBase {
2024
2364
  mcp_toolsets?: LiteLLMObjectPermissionBaseMcpToolsetsList | null;
2025
2365
  models?: LiteLLMObjectPermissionBaseModelsList | null;
2026
2366
  search_tools?: LiteLLMObjectPermissionBaseSearchToolsList | null;
2367
+ skills?: LiteLLMObjectPermissionBaseSkillsList | null;
2027
2368
  vector_stores?: LiteLLMObjectPermissionBaseVectorStoresList | null;
2028
2369
  }
2029
2370
  export const LiteLLMObjectPermissionBase = /*@__PURE__*/ S.suspend(() =>
@@ -2052,6 +2393,7 @@ export const LiteLLMObjectPermissionBase = /*@__PURE__*/ S.suspend(() =>
2052
2393
  search_tools: S.optional(
2053
2394
  S.NullOr(LiteLLMObjectPermissionBaseSearchToolsList),
2054
2395
  ),
2396
+ skills: S.optional(S.NullOr(LiteLLMObjectPermissionBaseSkillsList)),
2055
2397
  vector_stores: S.optional(
2056
2398
  S.NullOr(LiteLLMObjectPermissionBaseVectorStoresList),
2057
2399
  ),
@@ -2071,14 +2413,231 @@ export const PatchTeamTeamTeamIdPatchRequestPromptsList = /*@__PURE__*/ S.Array(
2071
2413
  S.String,
2072
2414
  ) as any as S.Schema<PatchTeamTeamTeamIdPatchRequestPromptsList>;
2073
2415
 
2074
- export type PatchTeamTeamTeamIdPatchRequestRouterSettingsMap = {
2416
+ export type UpdateRouterConfigContextWindowFallbacksItemMap = {
2417
+ [key: string]: unknown | undefined;
2418
+ };
2419
+ export const UpdateRouterConfigContextWindowFallbacksItemMap =
2420
+ /*@__PURE__*/ S.Record(
2421
+ S.String,
2422
+ S.Unknown,
2423
+ ) as any as S.Schema<UpdateRouterConfigContextWindowFallbacksItemMap>;
2424
+
2425
+ export type UpdateRouterConfigContextWindowFallbacksList =
2426
+ Array<UpdateRouterConfigContextWindowFallbacksItemMap>;
2427
+ export const UpdateRouterConfigContextWindowFallbacksList =
2428
+ /*@__PURE__*/ S.Array(
2429
+ UpdateRouterConfigContextWindowFallbacksItemMap,
2430
+ ) as any as S.Schema<UpdateRouterConfigContextWindowFallbacksList>;
2431
+
2432
+ export type UpdateRouterConfigFallbacksItemMap = {
2433
+ [key: string]: unknown | undefined;
2434
+ };
2435
+ export const UpdateRouterConfigFallbacksItemMap = /*@__PURE__*/ S.Record(
2436
+ S.String,
2437
+ S.Unknown,
2438
+ ) as any as S.Schema<UpdateRouterConfigFallbacksItemMap>;
2439
+
2440
+ export type UpdateRouterConfigFallbacksList =
2441
+ Array<UpdateRouterConfigFallbacksItemMap>;
2442
+ export const UpdateRouterConfigFallbacksList = /*@__PURE__*/ S.Array(
2443
+ UpdateRouterConfigFallbacksItemMap,
2444
+ ) as any as S.Schema<UpdateRouterConfigFallbacksList>;
2445
+
2446
+ export type UpdateRouterConfigModelGroupAffinityConfigValueList = Array<string>;
2447
+ export const UpdateRouterConfigModelGroupAffinityConfigValueList =
2448
+ /*@__PURE__*/ S.Array(
2449
+ S.String,
2450
+ ) as any as S.Schema<UpdateRouterConfigModelGroupAffinityConfigValueList>;
2451
+
2452
+ export type UpdateRouterConfigModelGroupAffinityConfigMap = {
2453
+ [key: string]:
2454
+ | UpdateRouterConfigModelGroupAffinityConfigValueList
2455
+ | undefined;
2456
+ };
2457
+ export const UpdateRouterConfigModelGroupAffinityConfigMap =
2458
+ /*@__PURE__*/ S.Record(
2459
+ S.String,
2460
+ UpdateRouterConfigModelGroupAffinityConfigValueList,
2461
+ ) as any as S.Schema<UpdateRouterConfigModelGroupAffinityConfigMap>;
2462
+
2463
+ export type UpdateRouterConfigModelGroupAliasValueCase1Map = {
2075
2464
  [key: string]: unknown | undefined;
2076
2465
  };
2077
- export const PatchTeamTeamTeamIdPatchRequestRouterSettingsMap =
2466
+ export const UpdateRouterConfigModelGroupAliasValueCase1Map =
2078
2467
  /*@__PURE__*/ S.Record(
2079
2468
  S.String,
2080
2469
  S.Unknown,
2081
- ) as any as S.Schema<PatchTeamTeamTeamIdPatchRequestRouterSettingsMap>;
2470
+ ) as any as S.Schema<UpdateRouterConfigModelGroupAliasValueCase1Map>;
2471
+
2472
+ export type UpdateRouterConfigModelGroupAliasValue =
2473
+ | string
2474
+ | UpdateRouterConfigModelGroupAliasValueCase1Map;
2475
+ export const UpdateRouterConfigModelGroupAliasValue =
2476
+ S.Unknown as any as S.Schema<UpdateRouterConfigModelGroupAliasValue>;
2477
+
2478
+ export type UpdateRouterConfigModelGroupAliasMap = {
2479
+ [key: string]: UpdateRouterConfigModelGroupAliasValue | undefined;
2480
+ };
2481
+ export const UpdateRouterConfigModelGroupAliasMap = /*@__PURE__*/ S.Record(
2482
+ S.String,
2483
+ UpdateRouterConfigModelGroupAliasValue,
2484
+ ) as any as S.Schema<UpdateRouterConfigModelGroupAliasMap>;
2485
+
2486
+ /** Use this to set a custom number of retries per exception type If RateLimitErrorRetries = 3, then 3 retries will be made for RateLimitError Mapping of Exception type to number of retries https://docs.litellm.ai/docs/exception_mapping */
2487
+ export interface RetryPolicy {
2488
+ AuthenticationErrorRetries?: number | null;
2489
+ BadRequestErrorRetries?: number | null;
2490
+ ContentPolicyViolationErrorRetries?: number | null;
2491
+ DefaultRetries?: number | null;
2492
+ InternalServerErrorRetries?: number | null;
2493
+ RateLimitErrorRetries?: number | null;
2494
+ ServiceUnavailableErrorRetries?: number | null;
2495
+ TimeoutErrorRetries?: number | null;
2496
+ }
2497
+ export const RetryPolicy = /*@__PURE__*/ S.suspend(() =>
2498
+ S.Struct({
2499
+ AuthenticationErrorRetries: S.optional(S.NullOr(S.Number)),
2500
+ BadRequestErrorRetries: S.optional(S.NullOr(S.Number)),
2501
+ ContentPolicyViolationErrorRetries: S.optional(S.NullOr(S.Number)),
2502
+ DefaultRetries: S.optional(S.NullOr(S.Number)),
2503
+ InternalServerErrorRetries: S.optional(S.NullOr(S.Number)),
2504
+ RateLimitErrorRetries: S.optional(S.NullOr(S.Number)),
2505
+ ServiceUnavailableErrorRetries: S.optional(S.NullOr(S.Number)),
2506
+ TimeoutErrorRetries: S.optional(S.NullOr(S.Number)),
2507
+ }),
2508
+ ).annotate({ identifier: "RetryPolicy" }) as any as S.Schema<RetryPolicy>;
2509
+
2510
+ export type UpdateRouterConfigModelGroupRetryPolicyMap = {
2511
+ [key: string]: RetryPolicy | undefined;
2512
+ };
2513
+ export const UpdateRouterConfigModelGroupRetryPolicyMap =
2514
+ /*@__PURE__*/ S.Record(
2515
+ S.String,
2516
+ RetryPolicy,
2517
+ ) as any as S.Schema<UpdateRouterConfigModelGroupRetryPolicyMap>;
2518
+
2519
+ export type UpdateRouterConfigOptionalPreCallChecksItem =
2520
+ | "prompt_caching"
2521
+ | "router_budget_limiting"
2522
+ | "responses_api_deployment_check"
2523
+ | "deployment_affinity"
2524
+ | "session_affinity"
2525
+ | "forward_client_headers_by_model_group"
2526
+ | "enforce_model_rate_limits"
2527
+ | "encrypted_content_affinity";
2528
+ export const UpdateRouterConfigOptionalPreCallChecksItem = S.String;
2529
+
2530
+ export type UpdateRouterConfigOptionalPreCallChecksList = Array<
2531
+ UpdateRouterConfigOptionalPreCallChecksItem | (string & {})
2532
+ >;
2533
+ export const UpdateRouterConfigOptionalPreCallChecksList =
2534
+ /*@__PURE__*/ S.Array(
2535
+ UpdateRouterConfigOptionalPreCallChecksItem,
2536
+ ) as any as S.Schema<UpdateRouterConfigOptionalPreCallChecksList>;
2537
+
2538
+ export type RoutingGroupModelsList = Array<string>;
2539
+ export const RoutingGroupModelsList = /*@__PURE__*/ S.Array(
2540
+ S.String,
2541
+ ) as any as S.Schema<RoutingGroupModelsList>;
2542
+
2543
+ export type RoutingGroupRoutingStrategyArgsMap = {
2544
+ [key: string]: unknown | undefined;
2545
+ };
2546
+ export const RoutingGroupRoutingStrategyArgsMap = /*@__PURE__*/ S.Record(
2547
+ S.String,
2548
+ S.Unknown,
2549
+ ) as any as S.Schema<RoutingGroupRoutingStrategyArgsMap>;
2550
+
2551
+ /** A group of models that share a routing strategy. */
2552
+ export interface RoutingGroup {
2553
+ group_name: string;
2554
+ models: RoutingGroupModelsList;
2555
+ routing_strategy: string;
2556
+ routing_strategy_args?: RoutingGroupRoutingStrategyArgsMap | null;
2557
+ }
2558
+ export const RoutingGroup = /*@__PURE__*/ S.suspend(() =>
2559
+ S.Struct({
2560
+ group_name: S.String,
2561
+ models: RoutingGroupModelsList,
2562
+ routing_strategy: S.String,
2563
+ routing_strategy_args: S.optional(
2564
+ S.NullOr(RoutingGroupRoutingStrategyArgsMap),
2565
+ ),
2566
+ }),
2567
+ ).annotate({ identifier: "RoutingGroup" }) as any as S.Schema<RoutingGroup>;
2568
+
2569
+ export type UpdateRouterConfigRoutingGroupsList = Array<RoutingGroup>;
2570
+ export const UpdateRouterConfigRoutingGroupsList = /*@__PURE__*/ S.Array(
2571
+ RoutingGroup,
2572
+ ) as any as S.Schema<UpdateRouterConfigRoutingGroupsList>;
2573
+
2574
+ export type UpdateRouterConfigRoutingStrategyArgsMap = {
2575
+ [key: string]: unknown | undefined;
2576
+ };
2577
+ export const UpdateRouterConfigRoutingStrategyArgsMap = /*@__PURE__*/ S.Record(
2578
+ S.String,
2579
+ S.Unknown,
2580
+ ) as any as S.Schema<UpdateRouterConfigRoutingStrategyArgsMap>;
2581
+
2582
+ /** Set of params that you can modify via `router.update_settings()`. */
2583
+ export interface UpdateRouterConfig {
2584
+ allowed_fails?: number | null;
2585
+ context_window_fallbacks?: UpdateRouterConfigContextWindowFallbacksList | null;
2586
+ cooldown_time?: number | null;
2587
+ enable_tag_filtering?: boolean | null;
2588
+ fallbacks?: UpdateRouterConfigFallbacksList | null;
2589
+ max_retries?: number | null;
2590
+ model_group_affinity_config?: UpdateRouterConfigModelGroupAffinityConfigMap | null;
2591
+ model_group_alias?: UpdateRouterConfigModelGroupAliasMap | null;
2592
+ model_group_retry_policy?: UpdateRouterConfigModelGroupRetryPolicyMap | null;
2593
+ num_retries?: number | null;
2594
+ optional_pre_call_checks?: UpdateRouterConfigOptionalPreCallChecksList | null;
2595
+ retry_after?: number | null;
2596
+ retry_policy?: RetryPolicy | null;
2597
+ routing_groups?: UpdateRouterConfigRoutingGroupsList | null;
2598
+ routing_strategy?: string | null;
2599
+ routing_strategy_args?: UpdateRouterConfigRoutingStrategyArgsMap | null;
2600
+ tag_routing_prefix?: string | null;
2601
+ timeout?: number | null;
2602
+ weights?: unknown | null;
2603
+ }
2604
+ export const UpdateRouterConfig = /*@__PURE__*/ S.suspend(() =>
2605
+ S.Struct({
2606
+ allowed_fails: S.optional(S.NullOr(S.Number)),
2607
+ context_window_fallbacks: S.optional(
2608
+ S.NullOr(UpdateRouterConfigContextWindowFallbacksList),
2609
+ ),
2610
+ cooldown_time: S.optional(S.NullOr(S.Number)),
2611
+ enable_tag_filtering: S.optional(S.NullOr(S.Boolean)),
2612
+ fallbacks: S.optional(S.NullOr(UpdateRouterConfigFallbacksList)),
2613
+ max_retries: S.optional(S.NullOr(S.Number)),
2614
+ model_group_affinity_config: S.optional(
2615
+ S.NullOr(UpdateRouterConfigModelGroupAffinityConfigMap),
2616
+ ),
2617
+ model_group_alias: S.optional(
2618
+ S.NullOr(UpdateRouterConfigModelGroupAliasMap),
2619
+ ),
2620
+ model_group_retry_policy: S.optional(
2621
+ S.NullOr(UpdateRouterConfigModelGroupRetryPolicyMap),
2622
+ ),
2623
+ num_retries: S.optional(S.NullOr(S.Number)),
2624
+ optional_pre_call_checks: S.optional(
2625
+ S.NullOr(UpdateRouterConfigOptionalPreCallChecksList),
2626
+ ),
2627
+ retry_after: S.optional(S.NullOr(S.Number)),
2628
+ retry_policy: S.optional(S.NullOr(RetryPolicy)),
2629
+ routing_groups: S.optional(S.NullOr(UpdateRouterConfigRoutingGroupsList)),
2630
+ routing_strategy: S.optional(S.NullOr(S.String)),
2631
+ routing_strategy_args: S.optional(
2632
+ S.NullOr(UpdateRouterConfigRoutingStrategyArgsMap),
2633
+ ),
2634
+ tag_routing_prefix: S.optional(S.NullOr(S.String)),
2635
+ timeout: S.optional(S.NullOr(S.Number)),
2636
+ weights: S.optional(S.NullOr(S.Unknown)),
2637
+ }),
2638
+ ).annotate({
2639
+ identifier: "UpdateRouterConfig",
2640
+ }) as any as S.Schema<UpdateRouterConfig>;
2082
2641
 
2083
2642
  export type PatchTeamTeamTeamIdPatchRequestSecretManagerSettingsMap = {
2084
2643
  [key: string]: unknown | undefined;
@@ -2113,6 +2672,8 @@ export interface PatchTeamTeamTeamIdPatchRequest {
2113
2672
  mcp_rpm_limit?: PatchTeamTeamTeamIdPatchRequestMcpRpmLimitMap | null;
2114
2673
  metadata?: PatchTeamTeamTeamIdPatchRequestMetadataMap | null;
2115
2674
  model_aliases?: PatchTeamTeamTeamIdPatchRequestModelAliasesMap | null;
2675
+ /** Max budget per model for every key on the team, overridable per key (e.g. {'gpt-4o': {'max_budget': 10, 'budget_duration': '1d'}}) */
2676
+ model_max_budget?: PatchTeamTeamTeamIdPatchRequestModelMaxBudgetMap | null;
2116
2677
  model_rpm_limit?: PatchTeamTeamTeamIdPatchRequestModelRpmLimitMap | null;
2117
2678
  model_tpm_limit?: PatchTeamTeamTeamIdPatchRequestModelTpmLimitMap | null;
2118
2679
  models?: PatchTeamTeamTeamIdPatchRequestModelsList | null;
@@ -2120,7 +2681,7 @@ export interface PatchTeamTeamTeamIdPatchRequest {
2120
2681
  organization_id?: string | null;
2121
2682
  policies?: PatchTeamTeamTeamIdPatchRequestPoliciesList | null;
2122
2683
  prompts?: PatchTeamTeamTeamIdPatchRequestPromptsList | null;
2123
- router_settings?: PatchTeamTeamTeamIdPatchRequestRouterSettingsMap | null;
2684
+ router_settings?: UpdateRouterConfig | null;
2124
2685
  rpm_limit?: number | null;
2125
2686
  secret_manager_settings?: PatchTeamTeamTeamIdPatchRequestSecretManagerSettingsMap | null;
2126
2687
  soft_budget?: number | null;
@@ -2131,6 +2692,7 @@ export interface PatchTeamTeamTeamIdPatchRequest {
2131
2692
  team_member_key_duration?: string | null;
2132
2693
  team_member_rpm_limit?: number | null;
2133
2694
  team_member_tpm_limit?: number | null;
2695
+ tpd_limit?: number | null;
2134
2696
  tpm_limit?: number | null;
2135
2697
  }
2136
2698
  export const PatchTeamTeamTeamIdPatchRequest = /*@__PURE__*/ S.suspend(() =>
@@ -2179,6 +2741,9 @@ export const PatchTeamTeamTeamIdPatchRequest = /*@__PURE__*/ S.suspend(() =>
2179
2741
  model_aliases: S.optional(
2180
2742
  S.NullOr(PatchTeamTeamTeamIdPatchRequestModelAliasesMap),
2181
2743
  ),
2744
+ model_max_budget: S.optional(
2745
+ S.NullOr(PatchTeamTeamTeamIdPatchRequestModelMaxBudgetMap),
2746
+ ),
2182
2747
  model_rpm_limit: S.optional(
2183
2748
  S.NullOr(PatchTeamTeamTeamIdPatchRequestModelRpmLimitMap),
2184
2749
  ),
@@ -2190,9 +2755,7 @@ export const PatchTeamTeamTeamIdPatchRequest = /*@__PURE__*/ S.suspend(() =>
2190
2755
  organization_id: S.optional(S.NullOr(S.String)),
2191
2756
  policies: S.optional(S.NullOr(PatchTeamTeamTeamIdPatchRequestPoliciesList)),
2192
2757
  prompts: S.optional(S.NullOr(PatchTeamTeamTeamIdPatchRequestPromptsList)),
2193
- router_settings: S.optional(
2194
- S.NullOr(PatchTeamTeamTeamIdPatchRequestRouterSettingsMap),
2195
- ),
2758
+ router_settings: S.optional(S.NullOr(UpdateRouterConfig)),
2196
2759
  rpm_limit: S.optional(S.NullOr(S.Number)),
2197
2760
  secret_manager_settings: S.optional(
2198
2761
  S.NullOr(PatchTeamTeamTeamIdPatchRequestSecretManagerSettingsMap),
@@ -2205,6 +2768,7 @@ export const PatchTeamTeamTeamIdPatchRequest = /*@__PURE__*/ S.suspend(() =>
2205
2768
  team_member_key_duration: S.optional(S.NullOr(S.String)),
2206
2769
  team_member_rpm_limit: S.optional(S.NullOr(S.Number)),
2207
2770
  team_member_tpm_limit: S.optional(S.NullOr(S.Number)),
2771
+ tpd_limit: S.optional(S.NullOr(S.Number)),
2208
2772
  tpm_limit: S.optional(S.NullOr(S.Number)),
2209
2773
  }).pipe(T.Http({ method: "PATCH", uri: "/team/{team_id}", code: 200 })),
2210
2774
  ).annotate({
@@ -2337,6 +2901,15 @@ export const PostNewTeamTeamNewRequestModelAliasesMap = /*@__PURE__*/ S.Record(
2337
2901
  S.Unknown,
2338
2902
  ) as any as S.Schema<PostNewTeamTeamNewRequestModelAliasesMap>;
2339
2903
 
2904
+ export type PostNewTeamTeamNewRequestModelMaxBudgetMap = {
2905
+ [key: string]: BudgetConfig | undefined;
2906
+ };
2907
+ export const PostNewTeamTeamNewRequestModelMaxBudgetMap =
2908
+ /*@__PURE__*/ S.Record(
2909
+ S.String,
2910
+ BudgetConfig,
2911
+ ) as any as S.Schema<PostNewTeamTeamNewRequestModelMaxBudgetMap>;
2912
+
2340
2913
  export type PostNewTeamTeamNewRequestModelRpmLimitMap = {
2341
2914
  [key: string]: number | undefined;
2342
2915
  };
@@ -2368,15 +2941,6 @@ export const PostNewTeamTeamNewRequestPromptsList = /*@__PURE__*/ S.Array(
2368
2941
  S.String,
2369
2942
  ) as any as S.Schema<PostNewTeamTeamNewRequestPromptsList>;
2370
2943
 
2371
- export type PostNewTeamTeamNewRequestRouterSettingsMap = {
2372
- [key: string]: unknown | undefined;
2373
- };
2374
- export const PostNewTeamTeamNewRequestRouterSettingsMap =
2375
- /*@__PURE__*/ S.Record(
2376
- S.String,
2377
- S.Unknown,
2378
- ) as any as S.Schema<PostNewTeamTeamNewRequestRouterSettingsMap>;
2379
-
2380
2944
  export type PostNewTeamTeamNewRequestRpmLimitType =
2381
2945
  | "guaranteed_throughput"
2382
2946
  | "best_effort_throughput";
@@ -2428,6 +2992,8 @@ export interface PostNewTeamTeamNewRequest {
2428
2992
  members_with_roles?: PostNewTeamTeamNewRequestMembersWithRolesList;
2429
2993
  metadata?: PostNewTeamTeamNewRequestMetadataMap | null;
2430
2994
  model_aliases?: PostNewTeamTeamNewRequestModelAliasesMap | null;
2995
+ /** Max budget per model for every key on the team, overridable per key (e.g. {'gpt-4o': {'max_budget': 10, 'budget_duration': '1d'}}) */
2996
+ model_max_budget?: PostNewTeamTeamNewRequestModelMaxBudgetMap | null;
2431
2997
  model_rpm_limit?: PostNewTeamTeamNewRequestModelRpmLimitMap | null;
2432
2998
  model_tpm_limit?: PostNewTeamTeamNewRequestModelTpmLimitMap | null;
2433
2999
  models?: PostNewTeamTeamNewRequestModelsList;
@@ -2435,7 +3001,7 @@ export interface PostNewTeamTeamNewRequest {
2435
3001
  organization_id?: string | null;
2436
3002
  policies?: PostNewTeamTeamNewRequestPoliciesList | null;
2437
3003
  prompts?: PostNewTeamTeamNewRequestPromptsList | null;
2438
- router_settings?: PostNewTeamTeamNewRequestRouterSettingsMap | null;
3004
+ router_settings?: UpdateRouterConfig | null;
2439
3005
  rpm_limit?: number | null;
2440
3006
  rpm_limit_type?: PostNewTeamTeamNewRequestRpmLimitType | (string & {}) | null;
2441
3007
  secret_manager_settings?: PostNewTeamTeamNewRequestSecretManagerSettingsMap | null;
@@ -2449,6 +3015,7 @@ export interface PostNewTeamTeamNewRequest {
2449
3015
  team_member_permissions?: PostNewTeamTeamNewRequestTeamMemberPermissionsList | null;
2450
3016
  team_member_rpm_limit?: number | null;
2451
3017
  team_member_tpm_limit?: number | null;
3018
+ tpd_limit?: number | null;
2452
3019
  tpm_limit?: number | null;
2453
3020
  tpm_limit_type?: PostNewTeamTeamNewRequestTpmLimitType | (string & {}) | null;
2454
3021
  }
@@ -2498,6 +3065,9 @@ export const PostNewTeamTeamNewRequest = /*@__PURE__*/ S.suspend(() =>
2498
3065
  model_aliases: S.optional(
2499
3066
  S.NullOr(PostNewTeamTeamNewRequestModelAliasesMap),
2500
3067
  ),
3068
+ model_max_budget: S.optional(
3069
+ S.NullOr(PostNewTeamTeamNewRequestModelMaxBudgetMap),
3070
+ ),
2501
3071
  model_rpm_limit: S.optional(
2502
3072
  S.NullOr(PostNewTeamTeamNewRequestModelRpmLimitMap),
2503
3073
  ),
@@ -2509,9 +3079,7 @@ export const PostNewTeamTeamNewRequest = /*@__PURE__*/ S.suspend(() =>
2509
3079
  organization_id: S.optional(S.NullOr(S.String)),
2510
3080
  policies: S.optional(S.NullOr(PostNewTeamTeamNewRequestPoliciesList)),
2511
3081
  prompts: S.optional(S.NullOr(PostNewTeamTeamNewRequestPromptsList)),
2512
- router_settings: S.optional(
2513
- S.NullOr(PostNewTeamTeamNewRequestRouterSettingsMap),
2514
- ),
3082
+ router_settings: S.optional(S.NullOr(UpdateRouterConfig)),
2515
3083
  rpm_limit: S.optional(S.NullOr(S.Number)),
2516
3084
  rpm_limit_type: S.optional(S.NullOr(PostNewTeamTeamNewRequestRpmLimitType)),
2517
3085
  secret_manager_settings: S.optional(
@@ -2529,6 +3097,7 @@ export const PostNewTeamTeamNewRequest = /*@__PURE__*/ S.suspend(() =>
2529
3097
  ),
2530
3098
  team_member_rpm_limit: S.optional(S.NullOr(S.Number)),
2531
3099
  team_member_tpm_limit: S.optional(S.NullOr(S.Number)),
3100
+ tpd_limit: S.optional(S.NullOr(S.Number)),
2532
3101
  tpm_limit: S.optional(S.NullOr(S.Number)),
2533
3102
  tpm_limit_type: S.optional(S.NullOr(PostNewTeamTeamNewRequestTpmLimitType)),
2534
3103
  }).pipe(T.Http({ method: "POST", uri: "/team/new", code: 200 })),
@@ -2917,6 +3486,7 @@ export interface TeamAddMemberResponse {
2917
3486
  team_alias?: string | null;
2918
3487
  team_id: string;
2919
3488
  team_member_permissions?: TeamAddMemberResponseTeamMemberPermissionsList | null;
3489
+ tpd_limit?: number | null;
2920
3490
  tpm_limit?: number | null;
2921
3491
  updated_at?: string | null;
2922
3492
  updated_team_memberships: TeamAddMemberResponseUpdatedTeamMembershipsList;
@@ -2964,6 +3534,7 @@ export const TeamAddMemberResponse = /*@__PURE__*/ S.suspend(() =>
2964
3534
  team_member_permissions: S.optional(
2965
3535
  S.NullOr(TeamAddMemberResponseTeamMemberPermissionsList),
2966
3536
  ),
3537
+ tpd_limit: S.optional(S.NullOr(S.Number)),
2967
3538
  tpm_limit: S.optional(S.NullOr(S.Number)),
2968
3539
  updated_at: S.optional(S.NullOr(S.String)),
2969
3540
  updated_team_memberships: TeamAddMemberResponseUpdatedTeamMembershipsList,
@@ -3069,6 +3640,10 @@ export interface TeamMemberUpdateTeamMemberUpdatePostRequest {
3069
3640
  /** Requests per minute limit for this team member */
3070
3641
  rpm_limit?: number | null;
3071
3642
  team_id: string;
3643
+ /** UTC expiry for temp_budget_increase */
3644
+ temp_budget_expiry?: string | null;
3645
+ /** Temporary additive budget increase for this team member, active until temp_budget_expiry */
3646
+ temp_budget_increase?: number | null;
3072
3647
  /** Tokens per minute limit for this team member */
3073
3648
  tpm_limit?: number | null;
3074
3649
  user_email?: string | null;
@@ -3087,6 +3662,8 @@ export const TeamMemberUpdateTeamMemberUpdatePostRequest =
3087
3662
  ),
3088
3663
  rpm_limit: S.optional(S.NullOr(S.Number)),
3089
3664
  team_id: S.String,
3665
+ temp_budget_expiry: S.optional(S.NullOr(S.String)),
3666
+ temp_budget_increase: S.optional(S.NullOr(S.Number)),
3090
3667
  tpm_limit: S.optional(S.NullOr(S.Number)),
3091
3668
  user_email: S.optional(S.NullOr(S.String)),
3092
3669
  user_id: S.optional(S.NullOr(S.String)),
@@ -3106,6 +3683,8 @@ export interface TeamMemberUpdateResponse {
3106
3683
  max_budget_in_team?: number | null;
3107
3684
  rpm_limit?: number | null;
3108
3685
  team_id: string;
3686
+ temp_budget_expiry?: string | null;
3687
+ temp_budget_increase?: number | null;
3109
3688
  tpm_limit?: number | null;
3110
3689
  user_email?: string | null;
3111
3690
  user_id: string;
@@ -3119,6 +3698,8 @@ export const TeamMemberUpdateResponse = /*@__PURE__*/ S.suspend(() =>
3119
3698
  max_budget_in_team: S.optional(S.NullOr(S.Number)),
3120
3699
  rpm_limit: S.optional(S.NullOr(S.Number)),
3121
3700
  team_id: S.String,
3701
+ temp_budget_expiry: S.optional(S.NullOr(S.String)),
3702
+ temp_budget_increase: S.optional(S.NullOr(S.Number)),
3122
3703
  tpm_limit: S.optional(S.NullOr(S.Number)),
3123
3704
  user_email: S.optional(S.NullOr(S.String)),
3124
3705
  user_id: S.String,
@@ -3328,6 +3909,15 @@ export const UpdateTeamTeamUpdatePostRequestModelAliasesMap =
3328
3909
  S.Unknown,
3329
3910
  ) as any as S.Schema<UpdateTeamTeamUpdatePostRequestModelAliasesMap>;
3330
3911
 
3912
+ export type UpdateTeamTeamUpdatePostRequestModelMaxBudgetMap = {
3913
+ [key: string]: BudgetConfig | undefined;
3914
+ };
3915
+ export const UpdateTeamTeamUpdatePostRequestModelMaxBudgetMap =
3916
+ /*@__PURE__*/ S.Record(
3917
+ S.String,
3918
+ BudgetConfig,
3919
+ ) as any as S.Schema<UpdateTeamTeamUpdatePostRequestModelMaxBudgetMap>;
3920
+
3331
3921
  export type UpdateTeamTeamUpdatePostRequestModelRpmLimitMap = {
3332
3922
  [key: string]: number | undefined;
3333
3923
  };
@@ -3362,15 +3952,6 @@ export const UpdateTeamTeamUpdatePostRequestPromptsList = /*@__PURE__*/ S.Array(
3362
3952
  S.String,
3363
3953
  ) as any as S.Schema<UpdateTeamTeamUpdatePostRequestPromptsList>;
3364
3954
 
3365
- export type UpdateTeamTeamUpdatePostRequestRouterSettingsMap = {
3366
- [key: string]: unknown | undefined;
3367
- };
3368
- export const UpdateTeamTeamUpdatePostRequestRouterSettingsMap =
3369
- /*@__PURE__*/ S.Record(
3370
- S.String,
3371
- S.Unknown,
3372
- ) as any as S.Schema<UpdateTeamTeamUpdatePostRequestRouterSettingsMap>;
3373
-
3374
3955
  export type UpdateTeamTeamUpdatePostRequestSecretManagerSettingsMap = {
3375
3956
  [key: string]: unknown | undefined;
3376
3957
  };
@@ -3403,6 +3984,8 @@ export interface UpdateTeamTeamUpdatePostRequest {
3403
3984
  mcp_rpm_limit?: UpdateTeamTeamUpdatePostRequestMcpRpmLimitMap | null;
3404
3985
  metadata?: UpdateTeamTeamUpdatePostRequestMetadataMap | null;
3405
3986
  model_aliases?: UpdateTeamTeamUpdatePostRequestModelAliasesMap | null;
3987
+ /** Max budget per model for every key on the team, overridable per key (e.g. {'gpt-4o': {'max_budget': 10, 'budget_duration': '1d'}}) */
3988
+ model_max_budget?: UpdateTeamTeamUpdatePostRequestModelMaxBudgetMap | null;
3406
3989
  model_rpm_limit?: UpdateTeamTeamUpdatePostRequestModelRpmLimitMap | null;
3407
3990
  model_tpm_limit?: UpdateTeamTeamUpdatePostRequestModelTpmLimitMap | null;
3408
3991
  models?: UpdateTeamTeamUpdatePostRequestModelsList | null;
@@ -3410,7 +3993,7 @@ export interface UpdateTeamTeamUpdatePostRequest {
3410
3993
  organization_id?: string | null;
3411
3994
  policies?: UpdateTeamTeamUpdatePostRequestPoliciesList | null;
3412
3995
  prompts?: UpdateTeamTeamUpdatePostRequestPromptsList | null;
3413
- router_settings?: UpdateTeamTeamUpdatePostRequestRouterSettingsMap | null;
3996
+ router_settings?: UpdateRouterConfig | null;
3414
3997
  rpm_limit?: number | null;
3415
3998
  secret_manager_settings?: UpdateTeamTeamUpdatePostRequestSecretManagerSettingsMap | null;
3416
3999
  soft_budget?: number | null;
@@ -3422,6 +4005,7 @@ export interface UpdateTeamTeamUpdatePostRequest {
3422
4005
  team_member_key_duration?: string | null;
3423
4006
  team_member_rpm_limit?: number | null;
3424
4007
  team_member_tpm_limit?: number | null;
4008
+ tpd_limit?: number | null;
3425
4009
  tpm_limit?: number | null;
3426
4010
  }
3427
4011
  export const UpdateTeamTeamUpdatePostRequest = /*@__PURE__*/ S.suspend(() =>
@@ -3469,6 +4053,9 @@ export const UpdateTeamTeamUpdatePostRequest = /*@__PURE__*/ S.suspend(() =>
3469
4053
  model_aliases: S.optional(
3470
4054
  S.NullOr(UpdateTeamTeamUpdatePostRequestModelAliasesMap),
3471
4055
  ),
4056
+ model_max_budget: S.optional(
4057
+ S.NullOr(UpdateTeamTeamUpdatePostRequestModelMaxBudgetMap),
4058
+ ),
3472
4059
  model_rpm_limit: S.optional(
3473
4060
  S.NullOr(UpdateTeamTeamUpdatePostRequestModelRpmLimitMap),
3474
4061
  ),
@@ -3480,9 +4067,7 @@ export const UpdateTeamTeamUpdatePostRequest = /*@__PURE__*/ S.suspend(() =>
3480
4067
  organization_id: S.optional(S.NullOr(S.String)),
3481
4068
  policies: S.optional(S.NullOr(UpdateTeamTeamUpdatePostRequestPoliciesList)),
3482
4069
  prompts: S.optional(S.NullOr(UpdateTeamTeamUpdatePostRequestPromptsList)),
3483
- router_settings: S.optional(
3484
- S.NullOr(UpdateTeamTeamUpdatePostRequestRouterSettingsMap),
3485
- ),
4070
+ router_settings: S.optional(S.NullOr(UpdateRouterConfig)),
3486
4071
  rpm_limit: S.optional(S.NullOr(S.Number)),
3487
4072
  secret_manager_settings: S.optional(
3488
4073
  S.NullOr(UpdateTeamTeamUpdatePostRequestSecretManagerSettingsMap),
@@ -3496,6 +4081,7 @@ export const UpdateTeamTeamUpdatePostRequest = /*@__PURE__*/ S.suspend(() =>
3496
4081
  team_member_key_duration: S.optional(S.NullOr(S.String)),
3497
4082
  team_member_rpm_limit: S.optional(S.NullOr(S.Number)),
3498
4083
  team_member_tpm_limit: S.optional(S.NullOr(S.Number)),
4084
+ tpd_limit: S.optional(S.NullOr(S.Number)),
3499
4085
  tpm_limit: S.optional(S.NullOr(S.Number)),
3500
4086
  }).pipe(T.Http({ method: "POST", uri: "/team/update", code: 200 })),
3501
4087
  ).annotate({
@@ -3516,7 +4102,7 @@ export const UpdateTeamTeamUpdatePostResponse = /*@__PURE__*/ S.suspend(() =>
3516
4102
  export type AddTeamCallbacksTeamTeamIdCallbackPostError =
3517
4103
  | UnprocessableEntity
3518
4104
  | LitellmOpError;
3519
- /** Add Team Callbacks Add a success/failure callback to a team Use this if if you want different teams to have different success/failure callbacks Parameters: - callback_name (Literal["langfuse", "langsmith", "gcs"], required): The name of the callback to add - callback_type (Literal["success", "failure", "success_and_failure"], required): The type of callback to add. One of: - "success": Callback for successful LLM calls - "failure": Callback for failed LLM calls - "success_and_failure": Callback for both successful and failed LLM calls - callback_vars (StandardCallbackDynamicParams, required): A dictionary of variables to pass to the callback - langfuse_public_key: The public key for the Langfuse callback - langfuse_secret_key: The secret key for the Langfuse callback - langfuse_secret: The secret for the Langfuse callback - langfuse_host: The host for the Langfuse callback - langfuse_environment: The tracing environment for the Langfuse callback (lowercase; falls back to LANGFUSE_TRACING_ENVIRONMENT) - gcs_bucket_name: The name of the GCS bucket - gcs_path_service_account: The path to the GCS service account - langsmith_api_key: The API key for the Langsmith callback - langsmith_project: The project for the Langsmith callback - langsmith_base_url: The base URL for the Langsmith callback Example curl: ``` curl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -d '{ "callback_name": "langfuse", "callback_type": "success", "callback_vars": {"langfuse_public_key": "pk-lf-xxxx1", "langfuse_secret_key": "sk-xxxxx"} }' ``` This means for the team where team_id = dbe2f686-a686-4896-864a-4c3924458709, all LLM calls will be logged to langfuse using the public key pk-lf-xxxx1 and the secret key sk-xxxxx */
4105
+ /** Add Team Callbacks Add a success/failure callback to a team Use this if if you want different teams to have different success/failure callbacks Parameters: - callback_name (str, required): The name of the callback to add, e.g. "langfuse", "langsmith", "gcs", "newrelic". The value is validated against the callbacks that support team-scoped credentials - callback_type (Literal["success", "failure", "success_and_failure"], required): The type of callback to add. One of: - "success": Callback for successful LLM calls - "failure": Callback for failed LLM calls - "success_and_failure": Callback for both successful and failed LLM calls - callback_vars (StandardCallbackDynamicParams, required): A dictionary of variables to pass to the callback - langfuse_public_key: The public key for the Langfuse callback - langfuse_secret_key: The secret key for the Langfuse callback - langfuse_secret: The secret for the Langfuse callback - langfuse_host: The host for the Langfuse callback - langfuse_environment: The tracing environment for the Langfuse callback (lowercase; falls back to LANGFUSE_TRACING_ENVIRONMENT) - langfuse_span_scope: For langfuse_otel, "full" (default) sends the whole request trace, "llm_only" sends only the model-call spans - gcs_bucket_name: The name of the GCS bucket - gcs_path_service_account: The path to the GCS service account - langsmith_api_key: The API key for the Langsmith callback - langsmith_project: The project for the Langsmith callback - langsmith_base_url: The base URL for the Langsmith callback - newrelic_api_key: The ingest license key for the team's New Relic account; routes both LLM/agent traces and cost metrics to that account. Requires the proxy to run with LITELLM_OTEL_V2=true, otherwise this callback is rejected with a 400 - newrelic_region: The New Relic region for the team's account ("us" or "eu"), riding the team's own key Example curl: ``` curl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -d '{ "callback_name": "langfuse", "callback_type": "success", "callback_vars": {"langfuse_public_key": "pk-lf-xxxx1", "langfuse_secret_key": "sk-xxxxx"} }' ``` This means for the team where team_id = dbe2f686-a686-4896-864a-4c3924458709, all LLM calls will be logged to langfuse using the public key pk-lf-xxxx1 and the secret key sk-xxxxx */
3520
4106
  export const addTeamCallbacksTeamTeamIdCallbackPost: API.OperationMethod<
3521
4107
  AddTeamCallbacksTeamTeamIdCallbackPostRequest,
3522
4108
  AddTeamCallbacksTeamTeamIdCallbackPostResponse,
@@ -3530,6 +4116,24 @@ export const addTeamCallbacksTeamTeamIdCallbackPost: API.OperationMethod<
3530
4116
  retry: Retry.Retry,
3531
4117
  }));
3532
4118
 
4119
+ export type BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostError =
4120
+ | UnprocessableEntity
4121
+ | LitellmOpError;
4122
+ /** Bulk Delete Team Members Action Remove up to 500 members from one team in one call. Same authorization as `/team/member_delete`: proxy admins, the team's admins, and admins of the team's organization. Each member is named by exactly one of `user_id` or `user_email`; unknown body fields are a 422 and an unknown team is a 404. `data` holds one result per requested member, in request order. A row is `success: false` with an `error` when it names nobody on the team or repeats an earlier row. The roster is rewritten once, under the team's advisory lock, so a concurrent member_add is never overwritten from a stale read. Example curl: ``` curl --location 'http://0.0.0.0:4000/management/v1/teams/team-1/members/bulk_delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{"members": [{"user_id": "user-1"}, {"user_email": "user-2@example.com"}]}' ``` */
4123
+ export const bulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePost: API.OperationMethod<
4124
+ BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequest,
4125
+ BulkTeamMemberDeleteResponse,
4126
+ BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostError,
4127
+ LitellmOpContext
4128
+ > = /*@__PURE__*/ API.make(() => ({
4129
+ input:
4130
+ BulkDeleteTeamMembersActionManagementV1TeamsTeamIdMembersBulkDeletePostRequest,
4131
+ output: BulkTeamMemberDeleteResponse,
4132
+ errors: [UnprocessableEntity],
4133
+ protocol: LitellmProtocol,
4134
+ retry: Retry.Retry,
4135
+ }));
4136
+
3533
4137
  export type BulkTeamMemberAddTeamBulkMemberAddPostError =
3534
4138
  | UnprocessableEntity
3535
4139
  | LitellmOpError;
@@ -3547,6 +4151,24 @@ export const bulkTeamMemberAddTeamBulkMemberAddPost: API.OperationMethod<
3547
4151
  retry: Retry.Retry,
3548
4152
  }));
3549
4153
 
4154
+ export type BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostError =
4155
+ | UnprocessableEntity
4156
+ | LitellmOpError;
4157
+ /** Bulk Update Team Member Budgets Action Set per-member limits for up to 500 members of one team in one call. Same authorization and member addressing as `/team/member_update`: proxy admins, the team's admins, and admins of the team's organization, with each member named by exactly one of `user_id` or `user_email`. Unknown body fields are a 422 and an unknown team is a 404. Each row is a merge patch of that member's limits: a field left out is untouched, a field sent as null is cleared, and clearing the last limit drops the member back to the team default. A budget row shared by several memberships, the team default included, is copied for the member being patched rather than written in place, so one member's new cap never lands on anybody else. `data` holds one result per requested member, in request order, carrying the limits in force after the write. A row is `success: false` with an `error` when it names nobody on the team or repeats an earlier row. Roles are not part of this route; `/team/member_update` still owns them. Example curl: ``` curl --location 'http://0.0.0.0:4000/management/v1/teams/team-1/members/bulk_update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{"members": [{"user_id": "user-1", "max_budget_in_team": 10}, {"user_email": "user-2@example.com", "max_budget_in_team": 10, "budget_duration": "30d"}]}' ``` */
4158
+ export const bulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePost: API.OperationMethod<
4159
+ BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequest,
4160
+ BulkTeamMemberBudgetUpdateResponse,
4161
+ BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostError,
4162
+ LitellmOpContext
4163
+ > = /*@__PURE__*/ API.make(() => ({
4164
+ input:
4165
+ BulkUpdateTeamMemberBudgetsActionManagementV1TeamsTeamIdMembersBulkUpdatePostRequest,
4166
+ output: BulkTeamMemberBudgetUpdateResponse,
4167
+ errors: [UnprocessableEntity],
4168
+ protocol: LitellmProtocol,
4169
+ retry: Retry.Retry,
4170
+ }));
4171
+
3550
4172
  export type BulkUpdateTeamMemberPermissionsTeamPermissionsBulkUpdatePostError =
3551
4173
  | UnprocessableEntity
3552
4174
  | LitellmOpError;
@@ -3715,6 +4337,23 @@ export const getTeamMetadataSchemaTeamMetadataSchemaGet: API.OperationMethod<
3715
4337
  retry: Retry.Retry,
3716
4338
  }));
3717
4339
 
4340
+ export type GetTeamSpendByUserTeamSpendByUserGetError =
4341
+ | UnprocessableEntity
4342
+ | LitellmOpError;
4343
+ /** Get Team Spend By User Spend per user within the given teams, attributed per request from spend logs. Proxy admins may query any team. Team admins and members holding the `/team/daily/activity` permission see every user of the requested teams; other members only see their own row. */
4344
+ export const getTeamSpendByUserTeamSpendByUserGet: API.OperationMethod<
4345
+ GetTeamSpendByUserTeamSpendByUserGetRequest,
4346
+ TeamUserSpendResponse,
4347
+ GetTeamSpendByUserTeamSpendByUserGetError,
4348
+ LitellmOpContext
4349
+ > = /*@__PURE__*/ API.make(() => ({
4350
+ input: GetTeamSpendByUserTeamSpendByUserGetRequest,
4351
+ output: TeamUserSpendResponse,
4352
+ errors: [UnprocessableEntity],
4353
+ protocol: LitellmProtocol,
4354
+ retry: Retry.Retry,
4355
+ }));
4356
+
3718
4357
  export type GetUiViewTeamsTeamFilterUiError =
3719
4358
  | UnprocessableEntity
3720
4359
  | LitellmOpError;
@@ -3802,7 +4441,7 @@ export type PostNewTeamTeamNewError =
3802
4441
  | Forbidden
3803
4442
  | UnprocessableEntity
3804
4443
  | LitellmOpError;
3805
- /** New Team Allow users to create a new team. Apply user permissions to their team. 👉 [Detailed Doc on setting team budgets](https://docs.litellm.ai/docs/proxy/team_budgets) Parameters: - team_alias: Optional[str] - User defined team alias - team_id: Optional[str] - The team id of the user. If none passed, we'll generate it. - members_with_roles: List[{"role": "admin" or "user", "user_id": "<user-id>"}] - A list of users and their roles in the team. Get user_id when making a new user via `/user/new`. - team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: ["/key/generate", "/key/update", "/key/delete"] - metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {"extra_info": "some info"} - model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit for this team - applied across all keys for this team. - model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit for this team - applied across all keys for this team. - default_estimated_output_tokens: Optional[int] - Expected output tokens reserved for TPM limiting when a request omits max_tokens, for keys on this team that do not set their own. Positive integer. - default_estimated_output_tokens_per_model: Optional[Dict[str, int]] - Per-model override of the above. Example: {"gpt-4": 4096, "gpt-3.5-turbo": 1024} - mcp_rpm_limit: Optional[Dict[str, int]] - Per-MCP-server RPM limit for this team, keyed by MCP server name (alias if set, else the configured name). Example: {"github": 100, "slack": 200}. Applied across all keys for this team. - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - all keys with this team_id will have at max this TPM limit - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - all keys associated with this team_id will have at max this RPM limit - rpm_limit_type: Optional[Literal["guaranteed_throughput", "best_effort_throughput"]] - The type of RPM limit enforcement. Use "guaranteed_throughput" to raise an error if overallocating RPM, or "best_effort_throughput" for best effort enforcement. - tpm_limit_type: Optional[Literal["guaranteed_throughput", "best_effort_throughput"]] - The type of TPM limit enforcement. Use "guaranteed_throughput" to raise an error if overallocating TPM, or "best_effort_throughput" for best effort enforcement. - max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget - soft_budget: Optional[float] - The soft budget threshold for the team. If max_budget is set, soft_budget must be strictly lower than max_budget. Can be set independently if max_budget is not set. - budget_duration: Optional[str] - The duration of the budget for the team. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) - models: Optional[list] - A list of models associated with the team - all keys for this team_id will have at most, these models. If empty, assumes all models are allowed. - blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id. - members: Optional[List] - Control team members via `/team/member/add` and `/team/member/delete`. - 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 team is allowed to use. - organization_id: Optional[str] - The organization id of the team. Default is None. Create via `/organization/new`. - model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - guardrails: Optional[List[str]] - Guardrails for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails) - policies: Optional[List[str]] - Policies for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies) - disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-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. - team_member_budget: Optional[float] - The maximum budget allocated to an individual team member. - team_member_budget_duration: Optional[str] - The duration of the budget for the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) - team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members. - team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members. - team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. "1d", "1w", "1mo" - allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team. - 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. - secret_manager_settings: Optional[dict] - Secret manager settings for the team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview) - router_settings: Optional[UpdateRouterConfig] - team-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 team. Access groups define which models the team can access. Example - ["access_group_1", "access_group_2"]. - enforced_file_expires_after: Optional[dict] - Enforced file expiration policy for the team. Keys created under this team will inherit this policy for file uploads. Example - {"anchor": "created_at", "days": 30}. - enforced_batch_output_expires_after: Optional[dict] - Enforced batch output file expiration policy for the team. Keys created under this team will inherit this policy for batch output files. Example - {"anchor": "created_at", "days": 30}. - budget_limits: Optional[list] - List of concurrent budget windows for the team. 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"}]. - default_team_member_models: Optional[List[str]] - Default models assigned to new team members when they join this team. Must be a subset of the team's models. Returns: - team_id: (str) Unique team id - used for tracking spend across multiple keys for same team id. _deprecated_params: - admins: list - A list of user_id's for the admin role - users: list - A list of user_id's for the user role Example Request: ``` curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "team_alias": "my-new-team_2", "members_with_roles": [{"role": "admin", "user_id": "user-1234"}, {"role": "user", "user_id": "user-2434"}] }' ``` ``` curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "team_alias": "QA Prod Bot", "max_budget": 0.000000001, "budget_duration": "1d" }' ``` */
4444
+ /** New Team Allow users to create a new team. Apply user permissions to their team. 👉 [Detailed Doc on setting team budgets](https://docs.litellm.ai/docs/proxy/team_budgets) Parameters: - team_alias: Optional[str] - User defined team alias - team_id: Optional[str] - The team id of the user. If none passed, we'll generate it. - members_with_roles: List[{"role": "admin" or "user", "user_id": "<user-id>"}] - A list of users and their roles in the team. Get user_id when making a new user via `/user/new`. - team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: ["/key/generate", "/key/update", "/key/delete"] - metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {"extra_info": "some info"} - model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit for this team - applied across all keys for this team. - model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit for this team - applied across all keys for this team. - default_estimated_output_tokens: Optional[int] - Expected output tokens reserved for TPM limiting when a request omits max_tokens, for keys on this team that do not set their own. Positive integer. - default_estimated_output_tokens_per_model: Optional[Dict[str, int]] - Per-model override of the above. Example: {"gpt-4": 4096, "gpt-3.5-turbo": 1024} - mcp_rpm_limit: Optional[Dict[str, int]] - Per-MCP-server RPM limit for this team, keyed by MCP server name (alias if set, else the configured name). Example: {"github": 100, "slack": 200}. Applied across all keys for this team. - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - all keys with this team_id will have at max this TPM limit - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - all keys associated with this team_id will have at max this RPM limit - tpd_limit: Optional[int] - The TPD (Tokens Per Day) limit for this team. Batch submissions are charged against it instead of tpm_limit/rpm_limit - rpm_limit_type: Optional[Literal["guaranteed_throughput", "best_effort_throughput"]] - The type of RPM limit enforcement. Use "guaranteed_throughput" to raise an error if overallocating RPM, or "best_effort_throughput" for best effort enforcement. - tpm_limit_type: Optional[Literal["guaranteed_throughput", "best_effort_throughput"]] - The type of TPM limit enforcement. Use "guaranteed_throughput" to raise an error if overallocating TPM, or "best_effort_throughput" for best effort enforcement. - max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget - soft_budget: Optional[float] - The soft budget threshold for the team. If max_budget is set, soft_budget must be strictly lower than max_budget. Can be set independently if max_budget is not set. - budget_duration: Optional[str] - The duration of the budget for the team. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) - models: Optional[list] - A list of models associated with the team - all keys for this team_id will have at most, these models. If empty, assumes all models are allowed. - blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id. - members: Optional[List] - Control team members via `/team/member/add` and `/team/member/delete`. - 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 team is allowed to use. - organization_id: Optional[str] - The organization id of the team. Default is None. Create via `/organization/new`. - model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - model_max_budget: Optional[dict] - Per-model max budget every key on the team inherits unless the key sets its own for that model. Example: {"gpt-4o": {"max_budget": 10, "budget_duration": "1d"}} - guardrails: Optional[List[str]] - Guardrails for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails) - policies: Optional[List[str]] - Policies for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies) - disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-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. - team_member_budget: Optional[float] - The maximum budget allocated to an individual team member. - team_member_budget_duration: Optional[str] - The duration of the budget for the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) - team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members. - team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members. - team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. "1d", "1w", "1mo" - allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team. - 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. - secret_manager_settings: Optional[dict] - Secret manager settings for the team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview) - router_settings: Optional[UpdateRouterConfig] - team-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 team. Access groups define which models the team can access. Example - ["access_group_1", "access_group_2"]. - enforced_file_expires_after: Optional[dict] - Enforced file expiration policy for the team. Keys created under this team will inherit this policy for file uploads. Example - {"anchor": "created_at", "days": 30}. - enforced_batch_output_expires_after: Optional[dict] - Enforced batch output file expiration policy for the team. Keys created under this team will inherit this policy for batch output files. Example - {"anchor": "created_at", "days": 30}. - budget_limits: Optional[list] - List of concurrent budget windows for the team. 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"}]. - default_team_member_models: Optional[List[str]] - Default models assigned to new team members when they join this team. Must be a subset of the team's models. Returns: - team_id: (str) Unique team id - used for tracking spend across multiple keys for same team id. _deprecated_params: - admins: list - A list of user_id's for the admin role - users: list - A list of user_id's for the user role Example Request: ``` curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "team_alias": "my-new-team_2", "members_with_roles": [{"role": "admin", "user_id": "user-1234"}, {"role": "user", "user_id": "user-2434"}] }' ``` ``` curl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "team_alias": "QA Prod Bot", "max_budget": 0.000000001, "budget_duration": "1d" }' ``` */
3806
4445
  export const postNewTeamTeamNew: API.OperationMethod<
3807
4446
  PostNewTeamTeamNewRequest,
3808
4447
  LiteLLMTeamTable,
@@ -3975,7 +4614,7 @@ export type UpdateTeamTeamUpdatePostError =
3975
4614
  | NotFound
3976
4615
  | UnprocessableEntity
3977
4616
  | LitellmOpError;
3978
- /** Update Team Use `/team/member_add` AND `/team/member/delete` to add/remove new team members You can now update team budget / rate limits via /team/update Parameters: - team_id: str - The team id of the user. Required param. - team_alias: Optional[str] - User defined team alias - team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: ["/key/generate", "/key/update", "/key/delete"] - metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - all keys with this team_id will have at max this TPM limit - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - all keys associated with this team_id will have at max this RPM limit - max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget - soft_budget: Optional[float] - The soft budget threshold for the team. If max_budget is set (either in the request or existing), soft_budget must be strictly lower than max_budget. Can be set independently if max_budget is not set. - budget_duration: Optional[str] - The duration of the budget for the team. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) - models: Optional[list] - A list of models associated with the team - all keys for this team_id will have at most, these models. If empty, assumes all models are allowed. - prompts: Optional[List[str]] - List of prompts that the team is allowed to use. - blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id. - 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). - organization_id: Optional[str] - The organization id of the team. Default is None. Create via `/organization/new`. - model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - guardrails: Optional[List[str]] - Guardrails for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails) - policies: Optional[List[str]] - Policies for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies) - disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-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. - team_member_budget: Optional[float] - The maximum budget allocated to an individual team member. - team_member_budget_duration: Optional[str] - The duration of the budget for the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) - team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members. - team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members. - team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. "1d", "1w", "1mo" - allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team. - model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit per model for this team. Example: {"gpt-4": 100, "gpt-3.5-turbo": 200} - model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit per model for this team. Example: {"gpt-4": 10000, "gpt-3.5-turbo": 20000} - default_estimated_output_tokens: Optional[int] - Expected output tokens reserved for TPM limiting when a request omits max_tokens, for keys on this team that do not set their own. Positive integer. - default_estimated_output_tokens_per_model: Optional[Dict[str, int]] - Per-model override of the above. Example: {"gpt-4": 4096, "gpt-3.5-turbo": 1024} - mcp_rpm_limit: Optional[Dict[str, int]] - Per-MCP-server RPM limit for this team, keyed by MCP server name (alias if set, else the configured name). Example: {"github": 100, "slack": 200}. Applied across all keys for this team. Example - update team TPM Limit - 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. - secret_manager_settings: Optional[dict] - Secret manager settings for the team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview) - router_settings: Optional[UpdateRouterConfig] - team-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 team. Access groups define which models the team can access. Example - ["access_group_1", "access_group_2"]. - enforced_file_expires_after: Optional[dict] - Enforced file expiration policy for the team. Keys created under this team will inherit this policy for file uploads. Example - {"anchor": "created_at", "days": 30}. - enforced_batch_output_expires_after: Optional[dict] - Enforced batch output file expiration policy for the team. Keys created under this team will inherit this policy for batch output files. Example - {"anchor": "created_at", "days": 30}. - budget_limits: Optional[list] - List of concurrent budget windows for the team. 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"}]. - default_team_member_models: Optional[List[str]] - Default models assigned to new team members when they join this team. Must be a subset of the team's models. ``` curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", "tpm_limit": 100 }' ``` Example - Update Team `max_budget` budget ``` curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", "max_budget": 10 }' ``` */
4617
+ /** Update Team Use `/team/member_add` AND `/team/member/delete` to add/remove new team members You can now update team budget / rate limits via /team/update Parameters: - team_id: str - The team id of the user. Required param. - team_alias: Optional[str] - User defined team alias - team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: ["/key/generate", "/key/update", "/key/delete"] - metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - all keys with this team_id will have at max this TPM limit - rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - all keys associated with this team_id will have at max this RPM limit - tpd_limit: Optional[int] - The TPD (Tokens Per Day) limit for this team. Batch submissions are charged against it instead of tpm_limit/rpm_limit - max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget - soft_budget: Optional[float] - The soft budget threshold for the team. If max_budget is set (either in the request or existing), soft_budget must be strictly lower than max_budget. Can be set independently if max_budget is not set. - budget_duration: Optional[str] - The duration of the budget for the team. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) - models: Optional[list] - A list of models associated with the team - all keys for this team_id will have at most, these models. If empty, assumes all models are allowed. - prompts: Optional[List[str]] - List of prompts that the team is allowed to use. - blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id. - 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). - organization_id: Optional[str] - The organization id of the team. Default is None. Create via `/organization/new`. - model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias) - model_max_budget: Optional[dict] - Per-model max budget every key on the team inherits unless the key sets its own for that model. Example: {"gpt-4o": {"max_budget": 10, "budget_duration": "1d"}} - guardrails: Optional[List[str]] - Guardrails for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails) - policies: Optional[List[str]] - Policies for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies) - disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-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. - team_member_budget: Optional[float] - The maximum budget allocated to an individual team member. - team_member_budget_duration: Optional[str] - The duration of the budget for the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets) - team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members. - team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members. - team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. "1d", "1w", "1mo" - allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team. - model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit per model for this team. Example: {"gpt-4": 100, "gpt-3.5-turbo": 200} - model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit per model for this team. Example: {"gpt-4": 10000, "gpt-3.5-turbo": 20000} - default_estimated_output_tokens: Optional[int] - Expected output tokens reserved for TPM limiting when a request omits max_tokens, for keys on this team that do not set their own. Positive integer. - default_estimated_output_tokens_per_model: Optional[Dict[str, int]] - Per-model override of the above. Example: {"gpt-4": 4096, "gpt-3.5-turbo": 1024} - mcp_rpm_limit: Optional[Dict[str, int]] - Per-MCP-server RPM limit for this team, keyed by MCP server name (alias if set, else the configured name). Example: {"github": 100, "slack": 200}. Applied across all keys for this team. Example - update team TPM Limit - 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. - secret_manager_settings: Optional[dict] - Secret manager settings for the team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview) - router_settings: Optional[UpdateRouterConfig] - team-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 team. Access groups define which models the team can access. Example - ["access_group_1", "access_group_2"]. - enforced_file_expires_after: Optional[dict] - Enforced file expiration policy for the team. Keys created under this team will inherit this policy for file uploads. Example - {"anchor": "created_at", "days": 30}. - enforced_batch_output_expires_after: Optional[dict] - Enforced batch output file expiration policy for the team. Keys created under this team will inherit this policy for batch output files. Example - {"anchor": "created_at", "days": 30}. - budget_limits: Optional[list] - List of concurrent budget windows for the team. 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"}]. - default_team_member_models: Optional[List[str]] - Default models assigned to new team members when they join this team. Must be a subset of the team's models. ``` curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", "tpm_limit": 100 }' ``` Example - Update Team `max_budget` budget ``` curl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ "team_id": "8d916b1c-510d-4894-a334-1c16a93344f5", "max_budget": 10 }' ``` */
3979
4618
  export const updateTeamTeamUpdatePost: API.OperationMethod<
3980
4619
  UpdateTeamTeamUpdatePostRequest,
3981
4620
  UpdateTeamTeamUpdatePostResponse,