# 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

```hcl
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 provided
- `user_email` (Optional) - Email address of the user
- `user_alias` (Optional) - Descriptive name for the user
- `user_role` (Optional) - Role of the user. One of `proxy_admin`, `proxy_admin_viewer`, `internal_user`, `internal_user_viewer`
- `teams` (Optional) - List of team IDs the user belongs to
- `models` (Optional) - Models the user is allowed to call
- `max_budget` (Optional) - Maximum budget in USD for the user
- `budget_duration` (Optional) - Budget reset period, e.g. `30s`, `30m`, `30d`
- `tpm_limit` (Optional) - Tokens per minute limit
- `rpm_limit` (Optional) - Requests per minute limit
- `max_parallel_requests` (Optional) - Maximum number of parallel requests
- `metadata` (Optional) - Map of metadata for the user
- `auto_create_key` (Optional, Default `true`, Forces new resource) - Whether to auto-create an API key on creation
- `send_invite_email` (Optional, Default `false`, Forces new resource) - Whether to send an invite email on creation
- `key_alias` (Optional) - Alias for the auto-created API key
- `aliases` (Optional) - Map of model aliases for the user
- `config` (Optional) - Map of config values for the user
- `permissions` (Optional) - Map of permission values for the user
- `model_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 requests
- `blocked` (Optional, Default `false`) - Whether the user is blocked from making requests

## Attribute Reference

- `id` - The user ID
- `key` (Sensitive) - The auto-created API key for the user, populated when `auto_create_key` is `true`

## Import

Users can be imported using the user ID:

```shell
terraform import litellm_user.alice <user-id>
```
