@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 Redacted from "effect/Redacted";
4
4
  import * as API from "@distilled.cloud/core/api";
@@ -58,39 +58,29 @@ export class UnprocessableEntity
58
58
  [{ status: 422 }],
59
59
  ) {}
60
60
 
61
- export type UpdateUserRequestNoUserIDorEmailAliasesMap = {
62
- [key: string]: unknown | undefined;
63
- };
64
- export const UpdateUserRequestNoUserIDorEmailAliasesMap =
65
- /*@__PURE__*/ S.Record(
66
- S.String,
67
- S.Unknown,
68
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailAliasesMap>;
61
+ export type BulkNewUserItemAliasesMap = { [key: string]: unknown | undefined };
62
+ export const BulkNewUserItemAliasesMap = /*@__PURE__*/ S.Record(
63
+ S.String,
64
+ S.Unknown,
65
+ ) as any as S.Schema<BulkNewUserItemAliasesMap>;
69
66
 
70
- export type UpdateUserRequestNoUserIDorEmailAllowedCacheControlsList =
71
- Array<unknown>;
72
- export const UpdateUserRequestNoUserIDorEmailAllowedCacheControlsList =
73
- /*@__PURE__*/ S.Array(
74
- S.Unknown,
75
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailAllowedCacheControlsList>;
67
+ export type BulkNewUserItemAllowedCacheControlsList = Array<unknown>;
68
+ export const BulkNewUserItemAllowedCacheControlsList = /*@__PURE__*/ S.Array(
69
+ S.Unknown,
70
+ ) as any as S.Schema<BulkNewUserItemAllowedCacheControlsList>;
76
71
 
77
- export type UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList =
78
- Array<string>;
79
- export const UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList =
80
- /*@__PURE__*/ S.Array(
81
- S.String,
82
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList>;
72
+ export type BulkNewUserItemBudgetFallbacksValueList = Array<string>;
73
+ export const BulkNewUserItemBudgetFallbacksValueList = /*@__PURE__*/ S.Array(
74
+ S.String,
75
+ ) as any as S.Schema<BulkNewUserItemBudgetFallbacksValueList>;
83
76
 
84
- export type UpdateUserRequestNoUserIDorEmailBudgetFallbacksMap = {
85
- [key: string]:
86
- | UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList
87
- | undefined;
77
+ export type BulkNewUserItemBudgetFallbacksMap = {
78
+ [key: string]: BulkNewUserItemBudgetFallbacksValueList | undefined;
88
79
  };
89
- export const UpdateUserRequestNoUserIDorEmailBudgetFallbacksMap =
90
- /*@__PURE__*/ S.Record(
91
- S.String,
92
- UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList,
93
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailBudgetFallbacksMap>;
80
+ export const BulkNewUserItemBudgetFallbacksMap = /*@__PURE__*/ S.Record(
81
+ S.String,
82
+ BulkNewUserItemBudgetFallbacksValueList,
83
+ ) as any as S.Schema<BulkNewUserItemBudgetFallbacksMap>;
94
84
 
95
85
  /** A single budget window with its own limit and independent reset schedule. */
96
86
  export interface BudgetLimitEntry {
@@ -108,76 +98,64 @@ export const BudgetLimitEntry = /*@__PURE__*/ S.suspend(() =>
108
98
  identifier: "BudgetLimitEntry",
109
99
  }) as any as S.Schema<BudgetLimitEntry>;
110
100
 
111
- export type UpdateUserRequestNoUserIDorEmailBudgetLimitsList =
112
- Array<BudgetLimitEntry>;
113
- export const UpdateUserRequestNoUserIDorEmailBudgetLimitsList =
114
- /*@__PURE__*/ S.Array(
115
- BudgetLimitEntry,
116
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailBudgetLimitsList>;
101
+ export type BulkNewUserItemBudgetLimitsList = Array<BudgetLimitEntry>;
102
+ export const BulkNewUserItemBudgetLimitsList = /*@__PURE__*/ S.Array(
103
+ BudgetLimitEntry,
104
+ ) as any as S.Schema<BulkNewUserItemBudgetLimitsList>;
117
105
 
118
- export type UpdateUserRequestNoUserIDorEmailConfigMap = {
119
- [key: string]: unknown | undefined;
120
- };
121
- export const UpdateUserRequestNoUserIDorEmailConfigMap = /*@__PURE__*/ S.Record(
106
+ export type BulkNewUserItemConfigMap = { [key: string]: unknown | undefined };
107
+ export const BulkNewUserItemConfigMap = /*@__PURE__*/ S.Record(
122
108
  S.String,
123
109
  S.Unknown,
124
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailConfigMap>;
110
+ ) as any as S.Schema<BulkNewUserItemConfigMap>;
125
111
 
126
- export type UpdateUserRequestNoUserIDorEmailGuardrailsList = Array<string>;
127
- export const UpdateUserRequestNoUserIDorEmailGuardrailsList =
128
- /*@__PURE__*/ S.Array(
129
- S.String,
130
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailGuardrailsList>;
112
+ export type BulkNewUserItemGuardrailsList = Array<string>;
113
+ export const BulkNewUserItemGuardrailsList = /*@__PURE__*/ S.Array(
114
+ S.String,
115
+ ) as any as S.Schema<BulkNewUserItemGuardrailsList>;
131
116
 
132
- export type UpdateUserRequestNoUserIDorEmailMcpRpmLimitMap = {
117
+ export type BulkNewUserItemMcpRpmLimitMap = {
133
118
  [key: string]: number | undefined;
134
119
  };
135
- export const UpdateUserRequestNoUserIDorEmailMcpRpmLimitMap =
136
- /*@__PURE__*/ S.Record(
137
- S.String,
138
- S.Number,
139
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailMcpRpmLimitMap>;
120
+ export const BulkNewUserItemMcpRpmLimitMap = /*@__PURE__*/ S.Record(
121
+ S.String,
122
+ S.Number,
123
+ ) as any as S.Schema<BulkNewUserItemMcpRpmLimitMap>;
140
124
 
141
- export type UpdateUserRequestNoUserIDorEmailMetadataMap = {
142
- [key: string]: unknown | undefined;
143
- };
144
- export const UpdateUserRequestNoUserIDorEmailMetadataMap =
145
- /*@__PURE__*/ S.Record(
146
- S.String,
147
- S.Unknown,
148
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailMetadataMap>;
125
+ export type BulkNewUserItemMetadataMap = { [key: string]: unknown | undefined };
126
+ export const BulkNewUserItemMetadataMap = /*@__PURE__*/ S.Record(
127
+ S.String,
128
+ S.Unknown,
129
+ ) as any as S.Schema<BulkNewUserItemMetadataMap>;
149
130
 
150
- export type UpdateUserRequestNoUserIDorEmailModelMaxBudgetMap = {
131
+ export type BulkNewUserItemModelMaxBudgetMap = {
151
132
  [key: string]: unknown | undefined;
152
133
  };
153
- export const UpdateUserRequestNoUserIDorEmailModelMaxBudgetMap =
154
- /*@__PURE__*/ S.Record(
155
- S.String,
156
- S.Unknown,
157
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailModelMaxBudgetMap>;
134
+ export const BulkNewUserItemModelMaxBudgetMap = /*@__PURE__*/ S.Record(
135
+ S.String,
136
+ S.Unknown,
137
+ ) as any as S.Schema<BulkNewUserItemModelMaxBudgetMap>;
158
138
 
159
- export type UpdateUserRequestNoUserIDorEmailModelRpmLimitMap = {
139
+ export type BulkNewUserItemModelRpmLimitMap = {
160
140
  [key: string]: unknown | undefined;
161
141
  };
162
- export const UpdateUserRequestNoUserIDorEmailModelRpmLimitMap =
163
- /*@__PURE__*/ S.Record(
164
- S.String,
165
- S.Unknown,
166
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailModelRpmLimitMap>;
142
+ export const BulkNewUserItemModelRpmLimitMap = /*@__PURE__*/ S.Record(
143
+ S.String,
144
+ S.Unknown,
145
+ ) as any as S.Schema<BulkNewUserItemModelRpmLimitMap>;
167
146
 
168
- export type UpdateUserRequestNoUserIDorEmailModelTpmLimitMap = {
147
+ export type BulkNewUserItemModelTpmLimitMap = {
169
148
  [key: string]: unknown | undefined;
170
149
  };
171
- export const UpdateUserRequestNoUserIDorEmailModelTpmLimitMap =
172
- /*@__PURE__*/ S.Record(
173
- S.String,
174
- S.Unknown,
175
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailModelTpmLimitMap>;
150
+ export const BulkNewUserItemModelTpmLimitMap = /*@__PURE__*/ S.Record(
151
+ S.String,
152
+ S.Unknown,
153
+ ) as any as S.Schema<BulkNewUserItemModelTpmLimitMap>;
176
154
 
177
- export type UpdateUserRequestNoUserIDorEmailModelsList = Array<unknown>;
178
- export const UpdateUserRequestNoUserIDorEmailModelsList = /*@__PURE__*/ S.Array(
155
+ export type BulkNewUserItemModelsList = Array<unknown>;
156
+ export const BulkNewUserItemModelsList = /*@__PURE__*/ S.Array(
179
157
  S.Unknown,
180
- ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailModelsList>;
158
+ ) as any as S.Schema<BulkNewUserItemModelsList>;
181
159
 
182
160
  export type LiteLLMObjectPermissionBaseAgentAccessGroupsList = Array<string>;
183
161
  export const LiteLLMObjectPermissionBaseAgentAccessGroupsList =
@@ -240,6 +218,11 @@ export const LiteLLMObjectPermissionBaseSearchToolsList = /*@__PURE__*/ S.Array(
240
218
  S.String,
241
219
  ) as any as S.Schema<LiteLLMObjectPermissionBaseSearchToolsList>;
242
220
 
221
+ export type LiteLLMObjectPermissionBaseSkillsList = Array<string>;
222
+ export const LiteLLMObjectPermissionBaseSkillsList = /*@__PURE__*/ S.Array(
223
+ S.String,
224
+ ) as any as S.Schema<LiteLLMObjectPermissionBaseSkillsList>;
225
+
243
226
  export type LiteLLMObjectPermissionBaseVectorStoresList = Array<string>;
244
227
  export const LiteLLMObjectPermissionBaseVectorStoresList =
245
228
  /*@__PURE__*/ S.Array(
@@ -257,6 +240,7 @@ export interface LiteLLMObjectPermissionBase {
257
240
  mcp_toolsets?: LiteLLMObjectPermissionBaseMcpToolsetsList | null;
258
241
  models?: LiteLLMObjectPermissionBaseModelsList | null;
259
242
  search_tools?: LiteLLMObjectPermissionBaseSearchToolsList | null;
243
+ skills?: LiteLLMObjectPermissionBaseSkillsList | null;
260
244
  vector_stores?: LiteLLMObjectPermissionBaseVectorStoresList | null;
261
245
  }
262
246
  export const LiteLLMObjectPermissionBase = /*@__PURE__*/ S.suspend(() =>
@@ -285,6 +269,7 @@ export const LiteLLMObjectPermissionBase = /*@__PURE__*/ S.suspend(() =>
285
269
  search_tools: S.optional(
286
270
  S.NullOr(LiteLLMObjectPermissionBaseSearchToolsList),
287
271
  ),
272
+ skills: S.optional(S.NullOr(LiteLLMObjectPermissionBaseSkillsList)),
288
273
  vector_stores: S.optional(
289
274
  S.NullOr(LiteLLMObjectPermissionBaseVectorStoresList),
290
275
  ),
@@ -293,6 +278,419 @@ export const LiteLLMObjectPermissionBase = /*@__PURE__*/ S.suspend(() =>
293
278
  identifier: "LiteLLMObjectPermissionBase",
294
279
  }) as any as S.Schema<LiteLLMObjectPermissionBase>;
295
280
 
281
+ export type BulkNewUserItemOrganizationsList = Array<string>;
282
+ export const BulkNewUserItemOrganizationsList = /*@__PURE__*/ S.Array(
283
+ S.String,
284
+ ) as any as S.Schema<BulkNewUserItemOrganizationsList>;
285
+
286
+ export type BulkNewUserItemPermissionsMap = {
287
+ [key: string]: unknown | undefined;
288
+ };
289
+ export const BulkNewUserItemPermissionsMap = /*@__PURE__*/ S.Record(
290
+ S.String,
291
+ S.Unknown,
292
+ ) as any as S.Schema<BulkNewUserItemPermissionsMap>;
293
+
294
+ export type BulkNewUserItemPoliciesList = Array<string>;
295
+ export const BulkNewUserItemPoliciesList = /*@__PURE__*/ S.Array(
296
+ S.String,
297
+ ) as any as S.Schema<BulkNewUserItemPoliciesList>;
298
+
299
+ export type BulkNewUserItemPromptsList = Array<string>;
300
+ export const BulkNewUserItemPromptsList = /*@__PURE__*/ S.Array(
301
+ S.String,
302
+ ) as any as S.Schema<BulkNewUserItemPromptsList>;
303
+
304
+ export type BulkNewUserItemTagRpmLimitMap = {
305
+ [key: string]: number | undefined;
306
+ };
307
+ export const BulkNewUserItemTagRpmLimitMap = /*@__PURE__*/ S.Record(
308
+ S.String,
309
+ S.Number,
310
+ ) as any as S.Schema<BulkNewUserItemTagRpmLimitMap>;
311
+
312
+ export type BulkNewUserItemTeamsCase0List = Array<string>;
313
+ export const BulkNewUserItemTeamsCase0List = /*@__PURE__*/ S.Array(
314
+ S.String,
315
+ ) as any as S.Schema<BulkNewUserItemTeamsCase0List>;
316
+
317
+ export type NewUserRequestTeamUserRole = "user" | "admin";
318
+ export const NewUserRequestTeamUserRole = S.String;
319
+
320
+ export interface NewUserRequestTeam {
321
+ max_budget_in_team?: number | null;
322
+ team_id: string;
323
+ user_role?: NewUserRequestTeamUserRole | (string & {});
324
+ }
325
+ export const NewUserRequestTeam = /*@__PURE__*/ S.suspend(() =>
326
+ S.Struct({
327
+ max_budget_in_team: S.optional(S.NullOr(S.Number)),
328
+ team_id: S.String,
329
+ user_role: S.optional(NewUserRequestTeamUserRole),
330
+ }),
331
+ ).annotate({
332
+ identifier: "NewUserRequestTeam",
333
+ }) as any as S.Schema<NewUserRequestTeam>;
334
+
335
+ export type BulkNewUserItemTeamsCase1List = Array<NewUserRequestTeam>;
336
+ export const BulkNewUserItemTeamsCase1List = /*@__PURE__*/ S.Array(
337
+ NewUserRequestTeam,
338
+ ) as any as S.Schema<BulkNewUserItemTeamsCase1List>;
339
+
340
+ export type BulkNewUserItemTeams =
341
+ | BulkNewUserItemTeamsCase0List
342
+ | BulkNewUserItemTeamsCase1List;
343
+ export const BulkNewUserItemTeams =
344
+ S.Unknown as any as S.Schema<BulkNewUserItemTeams>;
345
+
346
+ export type BulkNewUserItemUserRole =
347
+ | "proxy_admin"
348
+ | "proxy_admin_viewer"
349
+ | "internal_user"
350
+ | "internal_user_viewer";
351
+ export const BulkNewUserItemUserRole = S.String;
352
+
353
+ /** One row of `POST /management/v1/users/bulk`: the `/user/new` body, with keys opt-in and invite emails unsupported. Unknown fields are rejected, as on every `/management/v1` request body. */
354
+ export interface BulkNewUserItem {
355
+ agent_id?: string | null;
356
+ aliases?: BulkNewUserItemAliasesMap | null;
357
+ allowed_cache_controls?: BulkNewUserItemAllowedCacheControlsList | null;
358
+ auto_create_key?: boolean;
359
+ blocked?: boolean | null;
360
+ budget_duration?: string | null;
361
+ budget_fallbacks?: BulkNewUserItemBudgetFallbacksMap | null;
362
+ budget_limits?: BulkNewUserItemBudgetLimitsList | null;
363
+ config?: BulkNewUserItemConfigMap | null;
364
+ duration?: string | null;
365
+ guardrails?: BulkNewUserItemGuardrailsList | null;
366
+ key_alias?: string | null;
367
+ max_budget?: number | null;
368
+ max_parallel_requests?: number | null;
369
+ mcp_rpm_limit?: BulkNewUserItemMcpRpmLimitMap | null;
370
+ metadata?: BulkNewUserItemMetadataMap | null;
371
+ model_max_budget?: BulkNewUserItemModelMaxBudgetMap | null;
372
+ model_rpm_limit?: BulkNewUserItemModelRpmLimitMap | null;
373
+ model_tpm_limit?: BulkNewUserItemModelTpmLimitMap | null;
374
+ models?: BulkNewUserItemModelsList | null;
375
+ object_permission?: LiteLLMObjectPermissionBase | null;
376
+ organizations?: BulkNewUserItemOrganizationsList | null;
377
+ permissions?: BulkNewUserItemPermissionsMap | null;
378
+ policies?: BulkNewUserItemPoliciesList | null;
379
+ prompts?: BulkNewUserItemPromptsList | null;
380
+ rpm_limit?: number | null;
381
+ send_invite_email?: boolean | null;
382
+ spend?: number | null;
383
+ sso_user_id?: string | null;
384
+ tag_rpm_limit?: BulkNewUserItemTagRpmLimitMap | null;
385
+ team_id?: string | null;
386
+ teams?: BulkNewUserItemTeams | null;
387
+ tpm_limit?: number | null;
388
+ user_alias?: string | null;
389
+ user_email?: string | null;
390
+ user_id?: string | null;
391
+ user_role?: BulkNewUserItemUserRole | (string & {}) | null;
392
+ }
393
+ export const BulkNewUserItem = /*@__PURE__*/ S.suspend(() =>
394
+ S.Struct({
395
+ agent_id: S.optional(S.NullOr(S.String)),
396
+ aliases: S.optional(S.NullOr(BulkNewUserItemAliasesMap)),
397
+ allowed_cache_controls: S.optional(
398
+ S.NullOr(BulkNewUserItemAllowedCacheControlsList),
399
+ ),
400
+ auto_create_key: S.optional(S.Boolean),
401
+ blocked: S.optional(S.NullOr(S.Boolean)),
402
+ budget_duration: S.optional(S.NullOr(S.String)),
403
+ budget_fallbacks: S.optional(S.NullOr(BulkNewUserItemBudgetFallbacksMap)),
404
+ budget_limits: S.optional(S.NullOr(BulkNewUserItemBudgetLimitsList)),
405
+ config: S.optional(S.NullOr(BulkNewUserItemConfigMap)),
406
+ duration: S.optional(S.NullOr(S.String)),
407
+ guardrails: S.optional(S.NullOr(BulkNewUserItemGuardrailsList)),
408
+ key_alias: S.optional(S.NullOr(S.String)),
409
+ max_budget: S.optional(S.NullOr(S.Number)),
410
+ max_parallel_requests: S.optional(S.NullOr(S.Number)),
411
+ mcp_rpm_limit: S.optional(S.NullOr(BulkNewUserItemMcpRpmLimitMap)),
412
+ metadata: S.optional(S.NullOr(BulkNewUserItemMetadataMap)),
413
+ model_max_budget: S.optional(S.NullOr(BulkNewUserItemModelMaxBudgetMap)),
414
+ model_rpm_limit: S.optional(S.NullOr(BulkNewUserItemModelRpmLimitMap)),
415
+ model_tpm_limit: S.optional(S.NullOr(BulkNewUserItemModelTpmLimitMap)),
416
+ models: S.optional(S.NullOr(BulkNewUserItemModelsList)),
417
+ object_permission: S.optional(S.NullOr(LiteLLMObjectPermissionBase)),
418
+ organizations: S.optional(S.NullOr(BulkNewUserItemOrganizationsList)),
419
+ permissions: S.optional(S.NullOr(BulkNewUserItemPermissionsMap)),
420
+ policies: S.optional(S.NullOr(BulkNewUserItemPoliciesList)),
421
+ prompts: S.optional(S.NullOr(BulkNewUserItemPromptsList)),
422
+ rpm_limit: S.optional(S.NullOr(S.Number)),
423
+ send_invite_email: S.optional(S.NullOr(S.Boolean)),
424
+ spend: S.optional(S.NullOr(S.Number)),
425
+ sso_user_id: S.optional(S.NullOr(S.String)),
426
+ tag_rpm_limit: S.optional(S.NullOr(BulkNewUserItemTagRpmLimitMap)),
427
+ team_id: S.optional(S.NullOr(S.String)),
428
+ teams: S.optional(S.NullOr(BulkNewUserItemTeams)),
429
+ tpm_limit: S.optional(S.NullOr(S.Number)),
430
+ user_alias: S.optional(S.NullOr(S.String)),
431
+ user_email: S.optional(S.NullOr(S.String)),
432
+ user_id: S.optional(S.NullOr(S.String)),
433
+ user_role: S.optional(S.NullOr(BulkNewUserItemUserRole)),
434
+ }),
435
+ ).annotate({
436
+ identifier: "BulkNewUserItem",
437
+ }) as any as S.Schema<BulkNewUserItem>;
438
+
439
+ export type BulkCreateUsersRouteManagementV1UsersBulkPostRequestUsersList =
440
+ Array<BulkNewUserItem>;
441
+ export const BulkCreateUsersRouteManagementV1UsersBulkPostRequestUsersList =
442
+ /*@__PURE__*/ S.Array(
443
+ BulkNewUserItem,
444
+ ) as any as S.Schema<BulkCreateUsersRouteManagementV1UsersBulkPostRequestUsersList>;
445
+
446
+ export interface BulkCreateUsersRouteManagementV1UsersBulkPostRequest {
447
+ users: BulkCreateUsersRouteManagementV1UsersBulkPostRequestUsersList;
448
+ }
449
+ export const BulkCreateUsersRouteManagementV1UsersBulkPostRequest =
450
+ /*@__PURE__*/ S.suspend(() =>
451
+ S.Struct({
452
+ users: BulkCreateUsersRouteManagementV1UsersBulkPostRequestUsersList,
453
+ }).pipe(
454
+ T.Http({ method: "POST", uri: "/management/v1/users/bulk", code: 200 }),
455
+ ),
456
+ ).annotate({
457
+ identifier: "BulkCreateUsersRouteManagementV1UsersBulkPostRequest",
458
+ }) as any as S.Schema<BulkCreateUsersRouteManagementV1UsersBulkPostRequest>;
459
+
460
+ export type UserCreateResultTeamsList = Array<string>;
461
+ export const UserCreateResultTeamsList = /*@__PURE__*/ S.Array(
462
+ S.String,
463
+ ) as any as S.Schema<UserCreateResultTeamsList>;
464
+
465
+ /** Outcome for one row of `POST /management/v1/users/bulk`. `teams` lists the teams the user was actually added to. */
466
+ export interface UserCreateResult {
467
+ error?: string | null;
468
+ key?: string | null;
469
+ success: boolean;
470
+ teams?: UserCreateResultTeamsList | null;
471
+ user_email?: string | null;
472
+ user_id?: string | null;
473
+ }
474
+ export const UserCreateResult = /*@__PURE__*/ S.suspend(() =>
475
+ S.Struct({
476
+ error: S.optional(S.NullOr(S.String)),
477
+ key: S.optional(S.NullOr(S.String)),
478
+ success: S.Boolean,
479
+ teams: S.optional(S.NullOr(UserCreateResultTeamsList)),
480
+ user_email: S.optional(S.NullOr(S.String)),
481
+ user_id: S.optional(S.NullOr(S.String)),
482
+ }),
483
+ ).annotate({
484
+ identifier: "UserCreateResult",
485
+ }) as any as S.Schema<UserCreateResult>;
486
+
487
+ export type BulkNewUserResponseDataList = Array<UserCreateResult>;
488
+ export const BulkNewUserResponseDataList = /*@__PURE__*/ S.Array(
489
+ UserCreateResult,
490
+ ) as any as S.Schema<BulkNewUserResponseDataList>;
491
+
492
+ export interface BulkNewUserMeta {
493
+ created: number;
494
+ failed: number;
495
+ total_requested: number;
496
+ }
497
+ export const BulkNewUserMeta = /*@__PURE__*/ S.suspend(() =>
498
+ S.Struct({
499
+ created: S.Number,
500
+ failed: S.Number,
501
+ total_requested: S.Number,
502
+ }),
503
+ ).annotate({
504
+ identifier: "BulkNewUserMeta",
505
+ }) as any as S.Schema<BulkNewUserMeta>;
506
+
507
+ /** `data` holds one result per input row, in input order. */
508
+ export interface BulkNewUserResponse {
509
+ data: BulkNewUserResponseDataList;
510
+ meta: BulkNewUserMeta;
511
+ }
512
+ export const BulkNewUserResponse = /*@__PURE__*/ S.suspend(() =>
513
+ S.Struct({
514
+ data: BulkNewUserResponseDataList,
515
+ meta: BulkNewUserMeta,
516
+ }),
517
+ ).annotate({
518
+ identifier: "BulkNewUserResponse",
519
+ }) as any as S.Schema<BulkNewUserResponse>;
520
+
521
+ export type BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequestUserIdsList =
522
+ Array<string>;
523
+ export const BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequestUserIdsList =
524
+ /*@__PURE__*/ S.Array(
525
+ S.String,
526
+ ) as any as S.Schema<BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequestUserIdsList>;
527
+
528
+ export interface BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequest {
529
+ user_ids: BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequestUserIdsList;
530
+ }
531
+ export const BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequest =
532
+ /*@__PURE__*/ S.suspend(() =>
533
+ S.Struct({
534
+ user_ids:
535
+ BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequestUserIdsList,
536
+ }).pipe(
537
+ T.Http({
538
+ method: "POST",
539
+ uri: "/management/v1/users/bulk_delete",
540
+ code: 200,
541
+ }),
542
+ ),
543
+ ).annotate({
544
+ identifier: "BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequest",
545
+ }) as any as S.Schema<BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequest>;
546
+
547
+ export type UserDeleteResultTeamsRemovedList = Array<string>;
548
+ export const UserDeleteResultTeamsRemovedList = /*@__PURE__*/ S.Array(
549
+ S.String,
550
+ ) as any as S.Schema<UserDeleteResultTeamsRemovedList>;
551
+
552
+ /** Outcome for one requested user, in request order. `teams_removed` lists the teams the user left. */
553
+ export interface UserDeleteResult {
554
+ error?: string | null;
555
+ success: boolean;
556
+ teams_removed?: UserDeleteResultTeamsRemovedList;
557
+ user_email?: string | null;
558
+ user_id: string;
559
+ }
560
+ export const UserDeleteResult = /*@__PURE__*/ S.suspend(() =>
561
+ S.Struct({
562
+ error: S.optional(S.NullOr(S.String)),
563
+ success: S.Boolean,
564
+ teams_removed: S.optional(UserDeleteResultTeamsRemovedList),
565
+ user_email: S.optional(S.NullOr(S.String)),
566
+ user_id: S.String,
567
+ }),
568
+ ).annotate({
569
+ identifier: "UserDeleteResult",
570
+ }) as any as S.Schema<UserDeleteResult>;
571
+
572
+ export type BulkDeleteUsersResponseDataList = Array<UserDeleteResult>;
573
+ export const BulkDeleteUsersResponseDataList = /*@__PURE__*/ S.Array(
574
+ UserDeleteResult,
575
+ ) as any as S.Schema<BulkDeleteUsersResponseDataList>;
576
+
577
+ /** `{data: [...]}` with one `UserDeleteResult` per requested user, in request order. */
578
+ export interface BulkDeleteUsersResponse {
579
+ data: BulkDeleteUsersResponseDataList;
580
+ }
581
+ export const BulkDeleteUsersResponse = /*@__PURE__*/ S.suspend(() =>
582
+ S.Struct({
583
+ data: BulkDeleteUsersResponseDataList,
584
+ }),
585
+ ).annotate({
586
+ identifier: "BulkDeleteUsersResponse",
587
+ }) as any as S.Schema<BulkDeleteUsersResponse>;
588
+
589
+ export type UpdateUserRequestNoUserIDorEmailAliasesMap = {
590
+ [key: string]: unknown | undefined;
591
+ };
592
+ export const UpdateUserRequestNoUserIDorEmailAliasesMap =
593
+ /*@__PURE__*/ S.Record(
594
+ S.String,
595
+ S.Unknown,
596
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailAliasesMap>;
597
+
598
+ export type UpdateUserRequestNoUserIDorEmailAllowedCacheControlsList =
599
+ Array<unknown>;
600
+ export const UpdateUserRequestNoUserIDorEmailAllowedCacheControlsList =
601
+ /*@__PURE__*/ S.Array(
602
+ S.Unknown,
603
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailAllowedCacheControlsList>;
604
+
605
+ export type UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList =
606
+ Array<string>;
607
+ export const UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList =
608
+ /*@__PURE__*/ S.Array(
609
+ S.String,
610
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList>;
611
+
612
+ export type UpdateUserRequestNoUserIDorEmailBudgetFallbacksMap = {
613
+ [key: string]:
614
+ | UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList
615
+ | undefined;
616
+ };
617
+ export const UpdateUserRequestNoUserIDorEmailBudgetFallbacksMap =
618
+ /*@__PURE__*/ S.Record(
619
+ S.String,
620
+ UpdateUserRequestNoUserIDorEmailBudgetFallbacksValueList,
621
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailBudgetFallbacksMap>;
622
+
623
+ export type UpdateUserRequestNoUserIDorEmailBudgetLimitsList =
624
+ Array<BudgetLimitEntry>;
625
+ export const UpdateUserRequestNoUserIDorEmailBudgetLimitsList =
626
+ /*@__PURE__*/ S.Array(
627
+ BudgetLimitEntry,
628
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailBudgetLimitsList>;
629
+
630
+ export type UpdateUserRequestNoUserIDorEmailConfigMap = {
631
+ [key: string]: unknown | undefined;
632
+ };
633
+ export const UpdateUserRequestNoUserIDorEmailConfigMap = /*@__PURE__*/ S.Record(
634
+ S.String,
635
+ S.Unknown,
636
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailConfigMap>;
637
+
638
+ export type UpdateUserRequestNoUserIDorEmailGuardrailsList = Array<string>;
639
+ export const UpdateUserRequestNoUserIDorEmailGuardrailsList =
640
+ /*@__PURE__*/ S.Array(
641
+ S.String,
642
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailGuardrailsList>;
643
+
644
+ export type UpdateUserRequestNoUserIDorEmailMcpRpmLimitMap = {
645
+ [key: string]: number | undefined;
646
+ };
647
+ export const UpdateUserRequestNoUserIDorEmailMcpRpmLimitMap =
648
+ /*@__PURE__*/ S.Record(
649
+ S.String,
650
+ S.Number,
651
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailMcpRpmLimitMap>;
652
+
653
+ export type UpdateUserRequestNoUserIDorEmailMetadataMap = {
654
+ [key: string]: unknown | undefined;
655
+ };
656
+ export const UpdateUserRequestNoUserIDorEmailMetadataMap =
657
+ /*@__PURE__*/ S.Record(
658
+ S.String,
659
+ S.Unknown,
660
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailMetadataMap>;
661
+
662
+ export type UpdateUserRequestNoUserIDorEmailModelMaxBudgetMap = {
663
+ [key: string]: unknown | undefined;
664
+ };
665
+ export const UpdateUserRequestNoUserIDorEmailModelMaxBudgetMap =
666
+ /*@__PURE__*/ S.Record(
667
+ S.String,
668
+ S.Unknown,
669
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailModelMaxBudgetMap>;
670
+
671
+ export type UpdateUserRequestNoUserIDorEmailModelRpmLimitMap = {
672
+ [key: string]: unknown | undefined;
673
+ };
674
+ export const UpdateUserRequestNoUserIDorEmailModelRpmLimitMap =
675
+ /*@__PURE__*/ S.Record(
676
+ S.String,
677
+ S.Unknown,
678
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailModelRpmLimitMap>;
679
+
680
+ export type UpdateUserRequestNoUserIDorEmailModelTpmLimitMap = {
681
+ [key: string]: unknown | undefined;
682
+ };
683
+ export const UpdateUserRequestNoUserIDorEmailModelTpmLimitMap =
684
+ /*@__PURE__*/ S.Record(
685
+ S.String,
686
+ S.Unknown,
687
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailModelTpmLimitMap>;
688
+
689
+ export type UpdateUserRequestNoUserIDorEmailModelsList = Array<unknown>;
690
+ export const UpdateUserRequestNoUserIDorEmailModelsList = /*@__PURE__*/ S.Array(
691
+ S.Unknown,
692
+ ) as any as S.Schema<UpdateUserRequestNoUserIDorEmailModelsList>;
693
+
296
694
  export type UpdateUserRequestNoUserIDorEmailPermissionsMap = {
297
695
  [key: string]: unknown | undefined;
298
696
  };
@@ -967,6 +1365,11 @@ export const LiteLLMObjectPermissionTableSearchToolsList =
967
1365
  S.String,
968
1366
  ) as any as S.Schema<LiteLLMObjectPermissionTableSearchToolsList>;
969
1367
 
1368
+ export type LiteLLMObjectPermissionTableSkillsList = Array<string>;
1369
+ export const LiteLLMObjectPermissionTableSkillsList = /*@__PURE__*/ S.Array(
1370
+ S.String,
1371
+ ) as any as S.Schema<LiteLLMObjectPermissionTableSkillsList>;
1372
+
970
1373
  export type LiteLLMObjectPermissionTableVectorStoresList = Array<string>;
971
1374
  export const LiteLLMObjectPermissionTableVectorStoresList =
972
1375
  /*@__PURE__*/ S.Array(
@@ -986,6 +1389,7 @@ export interface LiteLLMObjectPermissionTable {
986
1389
  models?: LiteLLMObjectPermissionTableModelsList | null;
987
1390
  object_permission_id: string;
988
1391
  search_tools?: LiteLLMObjectPermissionTableSearchToolsList | null;
1392
+ skills?: LiteLLMObjectPermissionTableSkillsList | null;
989
1393
  vector_stores?: LiteLLMObjectPermissionTableVectorStoresList | null;
990
1394
  }
991
1395
  export const LiteLLMObjectPermissionTable = /*@__PURE__*/ S.suspend(() =>
@@ -1015,6 +1419,7 @@ export const LiteLLMObjectPermissionTable = /*@__PURE__*/ S.suspend(() =>
1015
1419
  search_tools: S.optional(
1016
1420
  S.NullOr(LiteLLMObjectPermissionTableSearchToolsList),
1017
1421
  ),
1422
+ skills: S.optional(S.NullOr(LiteLLMObjectPermissionTableSkillsList)),
1018
1423
  vector_stores: S.optional(
1019
1424
  S.NullOr(LiteLLMObjectPermissionTableVectorStoresList),
1020
1425
  ),
@@ -1083,6 +1488,8 @@ export interface GetUsersUserListGetRequest {
1083
1488
  sso_user_ids?: string;
1084
1489
  /** Filter users by partial email match */
1085
1490
  user_email?: string;
1491
+ /** Combined search: matches users whose 'user_id' or 'user_email' contains the value (case-insensitive). */
1492
+ search?: string;
1086
1493
  /** Filter users by team id */
1087
1494
  team?: string;
1088
1495
  /** Page number */
@@ -1102,6 +1509,7 @@ export const GetUsersUserListGetRequest = /*@__PURE__*/ S.suspend(() =>
1102
1509
  user_ids: S.optional(S.String.pipe(T.Query())),
1103
1510
  sso_user_ids: S.optional(S.String.pipe(T.Query())),
1104
1511
  user_email: S.optional(S.String.pipe(T.Query())),
1512
+ search: S.optional(S.String.pipe(T.Query())),
1105
1513
  team: S.optional(S.String.pipe(T.Query())),
1106
1514
  page: S.optional(S.Number.pipe(T.Query())),
1107
1515
  page_size: S.optional(S.Number.pipe(T.Query())),
@@ -1173,6 +1581,9 @@ export interface LiteLLMBudgetTable {
1173
1581
  model_max_budget?: LiteLLMBudgetTableModelMaxBudgetMap | null;
1174
1582
  rpm_limit?: number | null;
1175
1583
  soft_budget?: number | null;
1584
+ temp_budget_expiry?: string | null;
1585
+ temp_budget_increase?: number | null;
1586
+ tpd_limit?: number | null;
1176
1587
  tpm_limit?: number | null;
1177
1588
  }
1178
1589
  export const LiteLLMBudgetTable = /*@__PURE__*/ S.suspend(() =>
@@ -1185,6 +1596,9 @@ export const LiteLLMBudgetTable = /*@__PURE__*/ S.suspend(() =>
1185
1596
  model_max_budget: S.optional(S.NullOr(LiteLLMBudgetTableModelMaxBudgetMap)),
1186
1597
  rpm_limit: S.optional(S.NullOr(S.Number)),
1187
1598
  soft_budget: S.optional(S.NullOr(S.Number)),
1599
+ temp_budget_expiry: S.optional(S.NullOr(S.String)),
1600
+ temp_budget_increase: S.optional(S.NullOr(S.Number)),
1601
+ tpd_limit: S.optional(S.NullOr(S.Number)),
1188
1602
  tpm_limit: S.optional(S.NullOr(S.Number)),
1189
1603
  }),
1190
1604
  ).annotate({
@@ -1463,24 +1877,6 @@ export const PostNewUserUserNewRequestTeamsCase0List = /*@__PURE__*/ S.Array(
1463
1877
  S.String,
1464
1878
  ) as any as S.Schema<PostNewUserUserNewRequestTeamsCase0List>;
1465
1879
 
1466
- export type NewUserRequestTeamUserRole = "user" | "admin";
1467
- export const NewUserRequestTeamUserRole = S.String;
1468
-
1469
- export interface NewUserRequestTeam {
1470
- max_budget_in_team?: number | null;
1471
- team_id: string;
1472
- user_role?: NewUserRequestTeamUserRole | (string & {});
1473
- }
1474
- export const NewUserRequestTeam = /*@__PURE__*/ S.suspend(() =>
1475
- S.Struct({
1476
- max_budget_in_team: S.optional(S.NullOr(S.Number)),
1477
- team_id: S.String,
1478
- user_role: S.optional(NewUserRequestTeamUserRole),
1479
- }),
1480
- ).annotate({
1481
- identifier: "NewUserRequestTeam",
1482
- }) as any as S.Schema<NewUserRequestTeam>;
1483
-
1484
1880
  export type PostNewUserUserNewRequestTeamsCase1List = Array<NewUserRequestTeam>;
1485
1881
  export const PostNewUserUserNewRequestTeamsCase1List = /*@__PURE__*/ S.Array(
1486
1882
  NewUserRequestTeam,
@@ -1836,8 +2232,10 @@ export interface RetryPolicy {
1836
2232
  AuthenticationErrorRetries?: number | null;
1837
2233
  BadRequestErrorRetries?: number | null;
1838
2234
  ContentPolicyViolationErrorRetries?: number | null;
2235
+ DefaultRetries?: number | null;
1839
2236
  InternalServerErrorRetries?: number | null;
1840
2237
  RateLimitErrorRetries?: number | null;
2238
+ ServiceUnavailableErrorRetries?: number | null;
1841
2239
  TimeoutErrorRetries?: number | null;
1842
2240
  }
1843
2241
  export const RetryPolicy = /*@__PURE__*/ S.suspend(() =>
@@ -1845,8 +2243,10 @@ export const RetryPolicy = /*@__PURE__*/ S.suspend(() =>
1845
2243
  AuthenticationErrorRetries: S.optional(S.NullOr(S.Number)),
1846
2244
  BadRequestErrorRetries: S.optional(S.NullOr(S.Number)),
1847
2245
  ContentPolicyViolationErrorRetries: S.optional(S.NullOr(S.Number)),
2246
+ DefaultRetries: S.optional(S.NullOr(S.Number)),
1848
2247
  InternalServerErrorRetries: S.optional(S.NullOr(S.Number)),
1849
2248
  RateLimitErrorRetries: S.optional(S.NullOr(S.Number)),
2249
+ ServiceUnavailableErrorRetries: S.optional(S.NullOr(S.Number)),
1850
2250
  TimeoutErrorRetries: S.optional(S.NullOr(S.Number)),
1851
2251
  }),
1852
2252
  ).annotate({ identifier: "RetryPolicy" }) as any as S.Schema<RetryPolicy>;
@@ -1860,6 +2260,24 @@ export const UpdateRouterConfigModelGroupRetryPolicyMap =
1860
2260
  RetryPolicy,
1861
2261
  ) as any as S.Schema<UpdateRouterConfigModelGroupRetryPolicyMap>;
1862
2262
 
2263
+ export type UpdateRouterConfigOptionalPreCallChecksItem =
2264
+ | "prompt_caching"
2265
+ | "router_budget_limiting"
2266
+ | "responses_api_deployment_check"
2267
+ | "deployment_affinity"
2268
+ | "session_affinity"
2269
+ | "forward_client_headers_by_model_group"
2270
+ | "enforce_model_rate_limits"
2271
+ | "encrypted_content_affinity";
2272
+ export const UpdateRouterConfigOptionalPreCallChecksItem = S.String;
2273
+
2274
+ export type UpdateRouterConfigOptionalPreCallChecksList =
2275
+ Array<UpdateRouterConfigOptionalPreCallChecksItem>;
2276
+ export const UpdateRouterConfigOptionalPreCallChecksList =
2277
+ /*@__PURE__*/ S.Array(
2278
+ UpdateRouterConfigOptionalPreCallChecksItem,
2279
+ ) as any as S.Schema<UpdateRouterConfigOptionalPreCallChecksList>;
2280
+
1863
2281
  export type RoutingGroupModelsList = Array<string>;
1864
2282
  export const RoutingGroupModelsList = /*@__PURE__*/ S.Array(
1865
2283
  S.String,
@@ -1916,6 +2334,7 @@ export interface UpdateRouterConfig {
1916
2334
  model_group_alias?: UpdateRouterConfigModelGroupAliasMap | null;
1917
2335
  model_group_retry_policy?: UpdateRouterConfigModelGroupRetryPolicyMap | null;
1918
2336
  num_retries?: number | null;
2337
+ optional_pre_call_checks?: UpdateRouterConfigOptionalPreCallChecksList | null;
1919
2338
  retry_after?: number | null;
1920
2339
  retry_policy?: RetryPolicy | null;
1921
2340
  routing_groups?: UpdateRouterConfigRoutingGroupsList | null;
@@ -1923,6 +2342,7 @@ export interface UpdateRouterConfig {
1923
2342
  routing_strategy_args?: UpdateRouterConfigRoutingStrategyArgsMap | null;
1924
2343
  tag_routing_prefix?: string | null;
1925
2344
  timeout?: number | null;
2345
+ weights?: unknown | null;
1926
2346
  }
1927
2347
  export const UpdateRouterConfig = /*@__PURE__*/ S.suspend(() =>
1928
2348
  S.Struct({
@@ -1944,6 +2364,9 @@ export const UpdateRouterConfig = /*@__PURE__*/ S.suspend(() =>
1944
2364
  S.NullOr(UpdateRouterConfigModelGroupRetryPolicyMap),
1945
2365
  ),
1946
2366
  num_retries: S.optional(S.NullOr(S.Number)),
2367
+ optional_pre_call_checks: S.optional(
2368
+ S.NullOr(UpdateRouterConfigOptionalPreCallChecksList),
2369
+ ),
1947
2370
  retry_after: S.optional(S.NullOr(S.Number)),
1948
2371
  retry_policy: S.optional(S.NullOr(RetryPolicy)),
1949
2372
  routing_groups: S.optional(S.NullOr(UpdateRouterConfigRoutingGroupsList)),
@@ -1953,6 +2376,7 @@ export const UpdateRouterConfig = /*@__PURE__*/ S.suspend(() =>
1953
2376
  ),
1954
2377
  tag_routing_prefix: S.optional(S.NullOr(S.String)),
1955
2378
  timeout: S.optional(S.NullOr(S.Number)),
2379
+ weights: S.optional(S.NullOr(S.Unknown)),
1956
2380
  }),
1957
2381
  ).annotate({
1958
2382
  identifier: "UpdateRouterConfig",
@@ -2016,6 +2440,7 @@ export interface NewUserResponse {
2016
2440
  disable_global_guardrails?: boolean | null;
2017
2441
  duration?: string | null;
2018
2442
  enable_prompt_caching?: boolean | null;
2443
+ end_user_budget_id?: string | null;
2019
2444
  enforced_params?: NewUserResponseEnforcedParamsList | null;
2020
2445
  expires?: string | null;
2021
2446
  guardrails?: NewUserResponseGuardrailsList | null;
@@ -2049,6 +2474,7 @@ export interface NewUserResponse {
2049
2474
  throttle_on_budget_exceeded?: boolean | null;
2050
2475
  token?: string | null;
2051
2476
  token_id?: string | null;
2477
+ tpd_limit?: number | null;
2052
2478
  tpm_limit?: number | null;
2053
2479
  tpm_limit_type?: NewUserResponseTpmLimitType | null;
2054
2480
  updated_at?: string | null;
@@ -2088,6 +2514,7 @@ export const NewUserResponse = /*@__PURE__*/ S.suspend(() =>
2088
2514
  disable_global_guardrails: S.optional(S.NullOr(S.Boolean)),
2089
2515
  duration: S.optional(S.NullOr(S.String)),
2090
2516
  enable_prompt_caching: S.optional(S.NullOr(S.Boolean)),
2517
+ end_user_budget_id: S.optional(S.NullOr(S.String)),
2091
2518
  enforced_params: S.optional(S.NullOr(NewUserResponseEnforcedParamsList)),
2092
2519
  expires: S.optional(S.NullOr(S.String)),
2093
2520
  guardrails: S.optional(S.NullOr(NewUserResponseGuardrailsList)),
@@ -2121,6 +2548,7 @@ export const NewUserResponse = /*@__PURE__*/ S.suspend(() =>
2121
2548
  throttle_on_budget_exceeded: S.optional(S.NullOr(S.Boolean)),
2122
2549
  token: S.optional(S.NullOr(S.String)),
2123
2550
  token_id: S.optional(S.NullOr(S.String)),
2551
+ tpd_limit: S.optional(S.NullOr(S.Number)),
2124
2552
  tpm_limit: S.optional(S.NullOr(S.Number)),
2125
2553
  tpm_limit_type: S.optional(S.NullOr(NewUserResponseTpmLimitType)),
2126
2554
  updated_at: S.optional(S.NullOr(S.String)),
@@ -2402,6 +2830,40 @@ export const UserUpdateUserUpdatePostResponse = /*@__PURE__*/ S.suspend(() =>
2402
2830
  identifier: "UserUpdateUserUpdatePostResponse",
2403
2831
  }) as any as S.Schema<UserUpdateUserUpdatePostResponse>;
2404
2832
 
2833
+ export type BulkCreateUsersRouteManagementV1UsersBulkPostError =
2834
+ | UnprocessableEntity
2835
+ | LitellmOpError;
2836
+ /** Bulk Create Users Route Create up to 500 internal users in one request, optionally adding each one to teams. Every entry in `users` takes the same fields as `/user/new`, with two differences: `auto_create_key` defaults to `false` (opt in per user to also get a virtual key back) and `send_invite_email` is not supported. Unknown fields are rejected with 422. Rows are validated together (duplicate ids or emails, unknown teams, roles the caller may not grant), inserted in one statement, and each referenced team is written once for all of its new members. Rows fail independently: a bad row is reported in `data` with `success: false` and an `error`, and the other rows still get created. A user that was created but could not be added to one of its teams is reported with `success: true`, `teams` listing where they did land, and `error` naming the failed team. The whole request is refused with a 403 problem document only if creating the valid rows would exceed the license seat limit. Example curl: ``` curl -X POST "http://localhost:4000/management/v1/users/bulk" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer sk-1234" \ -d '{ "users": [ {"user_email": "a@example.com", "user_role": "internal_user", "teams": ["team-1"]}, {"user_email": "b@example.com", "user_role": "internal_user", "auto_create_key": true} ] }' ``` Returns `data` (one entry per input row, in order, with `user_id`, `user_email`, `success`, `teams`, `key`, `error`) and `meta` with `total_requested`, `created` and `failed`. */
2837
+ export const bulkCreateUsersRouteManagementV1UsersBulkPost: API.OperationMethod<
2838
+ BulkCreateUsersRouteManagementV1UsersBulkPostRequest,
2839
+ BulkNewUserResponse,
2840
+ BulkCreateUsersRouteManagementV1UsersBulkPostError,
2841
+ LitellmOpContext
2842
+ > = /*@__PURE__*/ API.make(() => ({
2843
+ input: BulkCreateUsersRouteManagementV1UsersBulkPostRequest,
2844
+ output: BulkNewUserResponse,
2845
+ errors: [UnprocessableEntity],
2846
+ protocol: LitellmProtocol,
2847
+ retry: Retry.Retry,
2848
+ }));
2849
+
2850
+ export type BulkDeleteUsersActionManagementV1UsersBulkDeletePostError =
2851
+ | UnprocessableEntity
2852
+ | LitellmOpError;
2853
+ /** Bulk Delete Users Action Delete up to 500 users in one call, taking each out of every team it belongs to. Same authorization as `/user/delete`: proxy admins may delete anyone, org admins only users inside organizations they administer. Unknown body fields are a 422. `data` holds one result per requested `user_id`, in request order. A row is `success: false` with an `error` when the id is unknown, repeated in the request, or outside the caller's scope. Rows that pass those checks are deleted together, in one transaction, so either all of them go or none does. Example curl: ``` curl --location 'http://0.0.0.0:4000/management/v1/users/bulk_delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{"user_ids": ["user-1", "user-2"]}' ``` */
2854
+ export const bulkDeleteUsersActionManagementV1UsersBulkDeletePost: API.OperationMethod<
2855
+ BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequest,
2856
+ BulkDeleteUsersResponse,
2857
+ BulkDeleteUsersActionManagementV1UsersBulkDeletePostError,
2858
+ LitellmOpContext
2859
+ > = /*@__PURE__*/ API.make(() => ({
2860
+ input: BulkDeleteUsersActionManagementV1UsersBulkDeletePostRequest,
2861
+ output: BulkDeleteUsersResponse,
2862
+ errors: [UnprocessableEntity],
2863
+ protocol: LitellmProtocol,
2864
+ retry: Retry.Retry,
2865
+ }));
2866
+
2405
2867
  export type BulkUserUpdateUserBulkUpdatePostError =
2406
2868
  | BadRequest
2407
2869
  | Forbidden
@@ -2489,7 +2951,7 @@ export const getUserInfoUserInfo: API.OperationMethod<
2489
2951
  }));
2490
2952
 
2491
2953
  export type GetUserInfoV2V2UserInfoError = UnprocessableEntity | LitellmOpError;
2492
- /** User Info V2 Lightweight endpoint to get user info. Returns only the user object — no keys, no teams objects. This is the v2 replacement for /user/info, designed to avoid the "god endpoint" problem where the old endpoint loaded all keys and teams into memory. Access control: - Proxy admins can query any user - Team admins can query users within their teams - Internal users can only query themselves (omit user_id or pass own) - Returns 404 for non-existent users or unauthorized access Example request: ``` curl -X GET 'http://localhost:4000/v2/user/info?user_id=user123' \ --header 'Authorization: Bearer sk-1234' ``` */
2954
+ /** User Info V2 Lightweight endpoint to get user info. Returns only the user object — no keys, no teams objects. This is the v2 replacement for /user/info, designed to avoid the "god endpoint" problem where the old endpoint loaded all keys and teams into memory. Note on `spend`: this is the user's running budget counter, which the budget reset job resets whenever `budget_reset_at` elapses (see `budget_duration`): to zero by default, or to the overage above `max_budget` when `budget_rollover` is enabled. It is NOT lifetime or per-period historical spend. For historical spend over a date range, use `/user/daily/activity` or `/user/daily/activity/aggregated`, which read daily spend records that only ever accumulate and are never reset. The two values are expected to diverge once a budget reset has occurred within the queried period. Access control: - Proxy admins can query any user - Team admins can query users within their teams - Internal users can only query themselves (omit user_id or pass own) - Returns 404 for non-existent users or unauthorized access Example request: ``` curl -X GET 'http://localhost:4000/v2/user/info?user_id=user123' \ --header 'Authorization: Bearer sk-1234' ``` */
2493
2955
  export const getUserInfoV2V2UserInfo: API.OperationMethod<
2494
2956
  GetUserInfoV2V2UserInfoRequest,
2495
2957
  UserInfoV2Response,
@@ -2504,7 +2966,7 @@ export const getUserInfoV2V2UserInfo: API.OperationMethod<
2504
2966
  }));
2505
2967
 
2506
2968
  export type GetUsersUserListGetError = UnprocessableEntity | LitellmOpError;
2507
- /** Get Users Get a paginated list of users with filtering and sorting options. Parameters: role: Optional[str] Filter users by role. Can be one of: - proxy_admin - proxy_admin_viewer - internal_user - internal_user_viewer user_ids: Optional[str] Get list of users by user_ids. Comma separated list of user_ids. sso_ids: Optional[str] Get list of users by sso_ids. Comma separated list of sso_ids. user_email: Optional[str] Filter users by partial email match team: Optional[str] Filter users by team id. Will match if user has this team in their teams array. page: int The page number to return page_size: int The number of items per page sort_by: Optional[str] Column to sort by (e.g. 'user_id', 'user_email', 'created_at', 'spend') sort_order: Optional[str] Sort order ('asc' or 'desc') */
2969
+ /** Get Users Get a paginated list of users with filtering and sorting options. Parameters: role: Optional[str] Filter users by role. Can be one of: - proxy_admin - proxy_admin_viewer - internal_user - internal_user_viewer user_ids: Optional[str] Get list of users by user_ids. Comma separated list of user_ids. sso_ids: Optional[str] Get list of users by sso_ids. Comma separated list of sso_ids. user_email: Optional[str] Filter users by partial email match search: Optional[str] Combined search: matches users whose user_id or user_email contains the value (case-insensitive) team: Optional[str] Filter users by team id. Will match if user has this team in their teams array. page: int The page number to return page_size: int The number of items per page sort_by: Optional[str] Column to sort by (e.g. 'user_id', 'user_email', 'created_at', 'spend') sort_order: Optional[str] Sort order ('asc' or 'desc') */
2508
2970
  export const getUsersUserListGet: API.OperationMethod<
2509
2971
  GetUsersUserListGetRequest,
2510
2972
  UserListResponse,
@@ -2524,7 +2986,7 @@ export type PostNewUserUserNewError =
2524
2986
  | Conflict
2525
2987
  | UnprocessableEntity
2526
2988
  | LitellmOpError;
2527
- /** New User Use this to create a new INTERNAL user with a budget. Internal Users can access LiteLLM Admin UI to make keys, request access to models. This creates a new user and generates a new api key for the new user. The new api key is returned. Returns user id, budget + new key. Parameters: - user_id: Optional[str] - Specify a user id. If not set, a unique id will be generated. - user_alias: Optional[str] - A descriptive name for you to know who this user id refers to. - teams: Optional[list] - specify a list of team id's a user belongs to. - user_email: Optional[str] - Specify a user email. - send_invite_email: Optional[bool] - Specify if an invite email should be sent. - user_role: Optional[str] - Specify a user role - "proxy_admin", "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", "customer". Info about each role here: `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20` - max_budget: Optional[float] - Specify max budget for a given user. - budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models). Set to ['no-default-models'] to block all model access. Restricting user to only team-based model access. - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per minute) - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per minute) - auto_create_key: bool - Default=True. Flag used for returning a key as part of the /user/new response - aliases: Optional[dict] - Model aliases for the user - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: Optional[dict] - [DEPRECATED PARAM] User-specific config. - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - ["no-cache", "no-store"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request- - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active guardrails for the user - policies: Optional[List[str]] - List of policy names to apply to the user. Policies define guardrails, conditions, and inheritance rules. - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking. - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - soft_budget: Optional[float] - Get alerts when user crosses given budget, doesn't block requests. - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - mcp_rpm_limit: Optional[dict] - Per-MCP-server rpm limit, keyed by MCP server name {"github": 100, "slack": 200}. Enforced for keys and teams only; values set on a user are stored but not enforced per user. - tag_rpm_limit: Optional[dict] - Per-request-tag rpm limit, keyed by request tag {"cell-1": 1000, "cell-2": 500}. Enforced for keys only; values set on a user are stored but not enforced per user. - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by proxy whenever user is used. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - agent_id: Optional[str] - The agent id associated with the user. - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default is None. - duration: Optional[str] - Duration for the key auto-created on `/user/new`. Default is None. - key_alias: Optional[str] - Alias for the key auto-created on `/user/new`. Default is None. - sso_user_id: Optional[str] - The id of the user in the SSO provider. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - internal user-specific object permission. Example - {"vector_stores": ["vector_store_1"], "mcp_servers": ["github"], "mcp_tool_permissions": {"github": ["list_issues"]}}. The MCP grants act as a ceiling on every key this user holds. IF null or {} then no object permission. - prompts: Optional[List[str]] - List of allowed prompts for the user. If specified, the user will only be able to use these specific prompts. - organizations: List[str] - List of organization id's the user is a member of - budget_limits: Optional[list] - List of concurrent budget windows for the user. 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"}]. Returns: - key: (str) The generated api key for the user - expires: (datetime) Datetime object for when key expires. - user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id. - max_budget: (float|None) Max budget for given user. Usage Example ```shell curl -X POST "http://localhost:4000/user/new" -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ "username": "new_user", "email": "new_user@example.com" }' ``` */
2989
+ /** New User Use this to create a new INTERNAL user with a budget. Internal Users can access LiteLLM Admin UI to make keys, request access to models. This creates a new user and generates a new api key for the new user. The new api key is returned. Returns user id, budget + new key. Parameters: - user_id: Optional[str] - Specify a user id. If not set, a unique id will be generated. - user_alias: Optional[str] - A descriptive name for you to know who this user id refers to. - teams: Optional[list] - specify a list of team id's a user belongs to. - user_email: Optional[str] - Specify a user email. - send_invite_email: Optional[bool] - Specify if an invite email should be sent. - user_role: Optional[str] - Specify a user role - "proxy_admin", "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", "customer". Info about each role here: `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20` - max_budget: Optional[float] - Specify max budget for a given user. - budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models). Set to ['no-default-models'] to block all model access. Restricting user to only team-based model access. - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per minute) - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per minute) - auto_create_key: bool - Default=True. Flag used for returning a key as part of the /user/new response - aliases: Optional[dict] - Model aliases for the user - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: Optional[dict] - [DEPRECATED PARAM] User-specific config. - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - ["no-cache", "no-store"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request- - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active guardrails for the user - policies: Optional[List[str]] - List of policy names to apply to the user. Policies define guardrails, conditions, and inheritance rules. - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking. - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - mcp_rpm_limit: Optional[dict] - Per-MCP-server rpm limit, keyed by MCP server name {"github": 100, "slack": 200}. Enforced for keys and teams only; values set on a user are stored but not enforced per user. - tag_rpm_limit: Optional[dict] - Per-request-tag rpm limit, keyed by request tag {"cell-1": 1000, "cell-2": 500}. Enforced for keys only; values set on a user are stored but not enforced per user. - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by proxy whenever user is used. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - agent_id: Optional[str] - The agent id associated with the user. - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default is None. - duration: Optional[str] - Duration for the key auto-created on `/user/new`. Default is None. - key_alias: Optional[str] - Alias for the key auto-created on `/user/new`. Default is None. - sso_user_id: Optional[str] - The id of the user in the SSO provider. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - internal user-specific object permission. Example - {"vector_stores": ["vector_store_1"], "mcp_servers": ["github"], "mcp_tool_permissions": {"github": ["list_issues"]}}. The MCP grants act as a ceiling on every key this user holds. IF null or {} then no object permission. - prompts: Optional[List[str]] - List of allowed prompts for the user. If specified, the user will only be able to use these specific prompts. - organizations: List[str] - List of organization id's the user is a member of - budget_limits: Optional[list] - List of concurrent budget windows for the user. 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"}]. Returns: - key: (str) The generated api key for the user - expires: (datetime) Datetime object for when key expires. - user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id. - max_budget: (float|None) Max budget for given user. Usage Example ```shell curl -X POST "http://localhost:4000/user/new" -H "Content-Type: application/json" -H "Authorization: Bearer sk-1234" -d '{ "username": "new_user", "email": "new_user@example.com" }' ``` */
2528
2990
  export const postNewUserUserNew: API.OperationMethod<
2529
2991
  PostNewUserUserNewRequest,
2530
2992
  NewUserResponse,
@@ -2559,7 +3021,7 @@ export type UserUpdateUserUpdatePostError =
2559
3021
  | NotFound
2560
3022
  | UnprocessableEntity
2561
3023
  | LitellmOpError;
2562
- /** User Update Example curl ``` curl --location 'http://0.0.0.0:4000/user/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "user_id": "test-litellm-user-4", "user_role": "proxy_admin_viewer" }' ``` Parameters: - user_id: Optional[str] - Specify a user id. If not set, a unique id will be generated. - user_email: Optional[str] - Specify a user email. - password: Optional[str] - Specify a user password. - user_alias: Optional[str] - A descriptive name for you to know who this user id refers to. - teams: Optional[list] - specify a list of team id's a user belongs to. - send_invite_email: Optional[bool] - Specify if an invite email should be sent. - user_role: Optional[str] - Specify a user role - "proxy_admin", "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", "customer". Info about each role here: `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20` - max_budget: Optional[float] - Specify max budget for a given user. - budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models) - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per minute) - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per minute) - auto_create_key: bool - Default=True. Flag used for returning a key as part of the /user/new response - aliases: Optional[dict] - Model aliases for the user - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: Optional[dict] - [DEPRECATED PARAM] User-specific config. - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - ["no-cache", "no-store"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request- - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active guardrails for the user - policies: Optional[List[str]] - List of policy names to apply to the user. Policies define guardrails, conditions, and inheritance rules. - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking. - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - soft_budget: Optional[float] - Get alerts when user crosses given budget, doesn't block requests. - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - mcp_rpm_limit: Optional[dict] - Per-MCP-server rpm limit, keyed by MCP server name {"github": 100, "slack": 200}. Enforced for keys and teams only; values set on a user are stored but not enforced per user. - tag_rpm_limit: Optional[dict] - Per-request-tag rpm limit, keyed by request tag {"cell-1": 1000, "cell-2": 500}. Enforced for keys only; values set on a user are stored but not enforced per user. - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by proxy whenever user is used. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - agent_id: Optional[str] - The agent id associated with the user. - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default is None. - duration: Optional[str] - [NOT IMPLEMENTED]. - key_alias: Optional[str] - [NOT IMPLEMENTED]. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - internal user-specific object permission. Example - {"vector_stores": ["vector_store_1"], "mcp_servers": ["github"], "mcp_tool_permissions": {"github": ["list_issues"]}}. The MCP grants act as a ceiling on every key this user holds. IF null or {} then no object permission. - prompts: Optional[List[str]] - List of allowed prompts for the user. If specified, the user will only be able to use these specific prompts. - budget_limits: Optional[list] - List of concurrent budget windows for the user. 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"}]. */
3024
+ /** User Update Example curl ``` curl --location 'http://0.0.0.0:4000/user/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ "user_id": "test-litellm-user-4", "user_role": "proxy_admin_viewer" }' ``` Parameters: - user_id: Optional[str] - Specify a user id. If not set, a unique id will be generated. - user_email: Optional[str] - Specify a user email. - password: Optional[str] - Specify a user password. - user_alias: Optional[str] - A descriptive name for you to know who this user id refers to. - teams: Optional[list] - specify a list of team id's a user belongs to. - send_invite_email: Optional[bool] - Specify if an invite email should be sent. - user_role: Optional[str] - Specify a user role - "proxy_admin", "proxy_admin_viewer", "internal_user", "internal_user_viewer", "team", "customer". Info about each role here: `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20` - max_budget: Optional[float] - Specify max budget for a given user. - budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models) - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per minute) - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per minute) - auto_create_key: bool - Default=True. Flag used for returning a key as part of the /user/new response - aliases: Optional[dict] - Model aliases for the user - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: Optional[dict] - [DEPRECATED PARAM] User-specific config. - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - ["no-cache", "no-store"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request- - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked. - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active guardrails for the user - policies: Optional[List[str]] - List of policy names to apply to the user. Policies define guardrails, conditions, and inheritance rules. - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking. - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {"team": "core-infra", "app": "app2", "email": "ishaan@berri.ai" } - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys) - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {"gpt-4o": ["gpt-4o-mini"]}. - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - mcp_rpm_limit: Optional[dict] - Per-MCP-server rpm limit, keyed by MCP server name {"github": 100, "slack": 200}. Enforced for keys and teams only; values set on a user are stored but not enforced per user. - tag_rpm_limit: Optional[dict] - Per-request-tag rpm limit, keyed by request tag {"cell-1": 1000, "cell-2": 500}. Enforced for keys only; values set on a user are stored but not enforced per user. - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys) - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by proxy whenever user is used. You can set duration as seconds ("30s"), minutes ("30m"), hours ("30h"), days ("30d"), months ("1mo"). - agent_id: Optional[str] - The agent id associated with the user. - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default is None. - duration: Optional[str] - [NOT IMPLEMENTED]. - key_alias: Optional[str] - [NOT IMPLEMENTED]. - object_permission: Optional[LiteLLM_ObjectPermissionBase] - internal user-specific object permission. Example - {"vector_stores": ["vector_store_1"], "mcp_servers": ["github"], "mcp_tool_permissions": {"github": ["list_issues"]}}. The MCP grants act as a ceiling on every key this user holds. IF null or {} then no object permission. - prompts: Optional[List[str]] - List of allowed prompts for the user. If specified, the user will only be able to use these specific prompts. - budget_limits: Optional[list] - List of concurrent budget windows for the user. 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"}]. */
2563
3025
  export const userUpdateUserUpdatePost: API.OperationMethod<
2564
3026
  UserUpdateUserUpdatePostRequest,
2565
3027
  UserUpdateUserUpdatePostResponse,