litellm/terraform/provider/docs/resources/team.md
Shivam Rawat 3653e5893f
feat(terraform): resource and data source parity with the community provider (#38158)
* feat(terraform): close key/team schema gaps, fix team read envelope, add import support

* feat(terraform): add fallback resource/data source and key/team block resources

* feat(terraform): add access group and unified access group resources and data sources

* feat(terraform): add guardrail and prompt resources and data sources

* feat(terraform): add agent and search tool resources and data sources

* feat(terraform): add user and budget resources and data sources

* feat(terraform): add tag and project resources and data sources

* docs(terraform): changelog and readme for parity additions

* feat(terraform): add data sources for keys, teams, models, organizations, and mcp servers

* fix(terraform): key update 400 on empty budget_duration, key info envelope, config-supplied key

* fix(terraform): hash raw keys to SHA-256 tokens in key lookup URLs and block resource IDs
2026-08-28 16:55:40 -07:00

169 lines
5.6 KiB
Markdown

# litellm_team Resource
Manages a team configuration in LiteLLM. Teams allow you to group users and manage their access to models and usage limits.
## Example Usage
### Basic Team Configuration
```hcl
resource "litellm_team" "engineering" {
team_alias = "engineering-team"
models = ["gpt-4-proxy", "claude-2"]
max_budget = 1000.0
}
```
### Team with Comprehensive Configuration
```hcl
resource "litellm_team" "advanced_team" {
team_alias = "ai-research-team"
organization_id = "org_123456"
models = ["gpt-4-proxy", "claude-2", "gpt-3.5-turbo"]
# Budget and rate limiting
max_budget = 1000.0
soft_budget = 800.0
budget_duration = "1mo"
tpm_limit = 500000
rpm_limit = 5000
blocked = false
# Who gets paged when spend crosses soft_budget
soft_budget_alerting_emails = ["finops@example.com"]
# Tags for spend tracking and tag-based routing
tags = ["team:ai-research", "environment:production"]
# Team member permissions
team_member_permissions = [
"create_key",
"delete_key",
"view_spend",
"edit_team"
]
# Metadata for organization
metadata = {
department = "Engineering"
project = "AI Research"
cost_center = "R&D-001"
}
}
```
### Team with Model Dependencies
```hcl
# First create models
resource "litellm_model" "gpt4" {
model_name = "gpt-4-proxy"
custom_llm_provider = "openai"
base_model = "gpt-4"
model_api_key = var.openai_api_key
}
resource "litellm_model" "claude" {
model_name = "claude-proxy"
custom_llm_provider = "anthropic"
base_model = "claude-3-sonnet-20240229"
model_api_key = var.anthropic_api_key
}
# Then create team with access to these models
resource "litellm_team" "model_dependent_team" {
team_alias = "model-users"
models = [
litellm_model.gpt4.model_name,
litellm_model.claude.model_name
]
max_budget = 500.0
budget_duration = "1mo"
team_member_permissions = [
"view_spend"
]
}
```
## Argument Reference
The following arguments are supported:
* `team_alias` - (Required) A human-readable identifier for the team.
* `organization_id` - (Optional) The ID of the organization this team belongs to.
* `models` - (Optional) List of model names that this team can access.
* `metadata` - (Optional) A map of string metadata key-value pairs associated with the team. `tags` and `soft_budget_alerting_emails` are stored by the proxy under metadata but are managed through their own attributes below, not this map.
* `tags` - (Optional) List of tags applied to the team, used for [spend tracking](https://docs.litellm.ai/docs/proxy/enterprise#tracking-spend-for-custom-tags) and [tag-based routing](https://docs.litellm.ai/docs/proxy/tag_routing).
* `blocked` - (Optional) Whether the team is blocked from making requests. Default is `false`.
* `tpm_limit` - (Optional) Team-wide tokens per minute limit.
* `rpm_limit` - (Optional) Team-wide requests per minute limit.
* `max_budget` - (Optional) Maximum budget allocated to the team.
* `soft_budget` - (Optional) Spend threshold at which the proxy sends a soft budget alert without blocking requests.
* `soft_budget_alerting_emails` - (Optional) List of email addresses notified when the team's spend crosses `soft_budget`.
* `budget_duration` - (Optional) Duration for the budget cycle. Valid values are:
* `daily`
* `weekly`
* `monthly`
* `yearly`
* `team_member_permissions` - (Optional) List of permissions granted to team members. This controls what actions team members can perform within the team context.
* `model_aliases` - (Optional) Map of alias names to model names, letting the team call models under stable alias names.
* `guardrails` - (Optional) List of guardrails applied to every request made by this team.
* `prompts` - (Optional) List of prompt IDs the team is allowed to use.
* `team_member_budget` - (Optional) Budget (in USD) applied to each individual team member.
* `team_member_budget_duration` - (Optional) Reset cycle for the per-member budget (e.g. `30d`, `1mo`).
* `team_member_rpm_limit` - (Optional) Requests per minute limit applied to each individual team member.
* `team_member_tpm_limit` - (Optional) Tokens per minute limit applied to each individual team member.
* `team_member_key_duration` - (Optional) Lifetime for keys created by team members (e.g. `1d`, `1w`).
* `model_rpm_limit` - (Optional) Map of model name to requests per minute limit for that model.
* `model_tpm_limit` - (Optional) Map of model name to tokens per minute limit for that model.
* `allowed_passthrough_routes` - (Optional) List of pass-through routes this team is allowed to call.
* `rpm_limit_type` - (Optional) How the RPM limit is enforced: `guaranteed_throughput` or `best_effort_throughput`. Changing this forces a new team to be created.
* `tpm_limit_type` - (Optional) How the TPM limit is enforced: `guaranteed_throughput` or `best_effort_throughput`. Changing this forces a new team to be created.
## Attribute Reference
In addition to the arguments above, the following attributes are exported:
* `id` - The unique identifier for the team.
## Import
Teams can be imported using the team ID:
```shell
terraform import litellm_team.engineering <team-id>
```
Note: The team ID is generated when the team is created and is different from the `team_alias`.
## Note on Team Members
Team members are managed through the separate `litellm_team_member` resource. This allows for more granular control over team membership and permissions. See the `litellm_team_member` resource documentation for details on managing team members.