mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-26 06:03:19 +00:00
* fix(terraform): stop sending blocked on litellm_user updates /user/update writes blocked into the user table upsert, but blocked only exists as a column on keys, so every litellm_user update failed with a 400 from Prisma. Updates no longer send it. Create sends it only when set to true, since /user/new applies it to the auto-created key blocked only applies at creation; litellm_key_block covers changes after that * fix(terraform): always send blocked on litellm_user create /user/new fills an omitted blocked from default_internal_user_params, so leaving it out on create let a proxy-side blocked=true default block the auto-created key. Create sends the configured value again, including false, while updates still never send it * chore(terraform): drop comment on litellm_user create blocked * fix(terraform): keep litellm_user blocked undeprecated Create sends blocked again, so it still controls the auto-created key. Whether to deprecate it in favor of litellm_key_block is left to the provider maintainers; the docs describe it as creation-only instead
2.6 KiB
2.6 KiB
litellm_user Resource
Manages an internal user on the LiteLLM proxy. Internal users can log into the Admin UI, own API keys, and belong to teams
Example Usage
resource "litellm_user" "alice" {
user_email = "alice@example.com"
user_alias = "Alice"
user_role = "internal_user"
max_budget = 100.0
budget_duration = "30d"
tpm_limit = 100000
rpm_limit = 1000
teams = [litellm_team.engineering.id]
models = ["gpt-4o", "claude-sonnet-4-5"]
metadata = {
department = "engineering"
}
model_max_budget = jsonencode({
"gpt-4o" = {
max_budget = 25.0
}
})
}
Argument Reference
user_id(Optional, Forces new resource) - Unique ID for the user. Generated by the server if not provideduser_email(Optional) - Email address of the useruser_alias(Optional) - Descriptive name for the useruser_role(Optional) - Role of the user. One ofproxy_admin,proxy_admin_viewer,internal_user,internal_user_viewerteams(Optional) - List of team IDs the user belongs tomodels(Optional) - Models the user is allowed to callmax_budget(Optional) - Maximum budget in USD for the userbudget_duration(Optional) - Budget reset period, e.g.30s,30m,30dtpm_limit(Optional) - Tokens per minute limitrpm_limit(Optional) - Requests per minute limitmax_parallel_requests(Optional) - Maximum number of parallel requestsmetadata(Optional) - Map of metadata for the userauto_create_key(Optional, Defaulttrue, Forces new resource) - Whether to auto-create an API key on creationsend_invite_email(Optional, Defaultfalse, Forces new resource) - Whether to send an invite email on creationkey_alias(Optional) - Alias for the auto-created API keyaliases(Optional) - Map of model aliases for the userconfig(Optional) - Map of config values for the userpermissions(Optional) - Map of permission values for the usermodel_max_budget(Optional) - JSON string of per-model budget config, e.g.jsonencode({"gpt-4o" = {max_budget = 10.0}})guardrails(Optional) - List of guardrails applied to the user's requestsblocked(Optional, Defaultfalse) - Whether to block the key auto-created with the user. Only sent on creation, so changing it afterwards has no effect. The proxy has no user-level block; uselitellm_key_blockto block keys
Attribute Reference
id- The user IDkey(Sensitive) - The auto-created API key for the user, populated whenauto_create_keyistrue
Import
Users can be imported using the user ID:
terraform import litellm_user.alice <user-id>