mirror of
https://github.com/BerriAI/litellm.git
synced 2026-10-11 03:38:38 +00:00
feat(proxy): accept spend on /team/member_update request/response models
This commit is contained in:
parent
29c254d3d3
commit
f6a05da3b1
2 changed files with 19 additions and 0 deletions
|
|
@ -3684,6 +3684,10 @@ class TeamMemberUpdateRequest(TeamMemberDeleteRequest):
|
|||
default=None,
|
||||
description="List of models this team member can access. Pass an empty list to remove per-member model restrictions.",
|
||||
)
|
||||
spend: Optional[float] = Field(
|
||||
default=None,
|
||||
description="Reset this team member's accrued spend to the given value (admin only). Typically 0 to clear usage.",
|
||||
)
|
||||
|
||||
|
||||
class TeamMemberUpdateResponse(MemberUpdateResponse):
|
||||
|
|
@ -3693,6 +3697,7 @@ class TeamMemberUpdateResponse(MemberUpdateResponse):
|
|||
rpm_limit: Optional[int] = None
|
||||
budget_duration: Optional[str] = None
|
||||
allowed_models: Optional[List[str]] = None
|
||||
spend: Optional[float] = None
|
||||
|
||||
|
||||
class TeamModelAddRequest(BaseModel):
|
||||
|
|
|
|||
|
|
@ -17,6 +17,20 @@ from litellm.proxy._types import (
|
|||
from litellm.proxy.management_endpoints.team_endpoints import team_member_update
|
||||
|
||||
|
||||
def test_team_member_update_models_accept_spend():
|
||||
"""The request/response models must carry an optional `spend` so an admin
|
||||
can reset a team member's accrued spend via /team/member_update."""
|
||||
from litellm.proxy._types import TeamMemberUpdateResponse
|
||||
|
||||
req = TeamMemberUpdateRequest(team_id="t", user_id="u", spend=0.0)
|
||||
assert req.spend == 0.0
|
||||
|
||||
resp = TeamMemberUpdateResponse(
|
||||
team_id="t", user_id="u", user_email=None, spend=0.0
|
||||
)
|
||||
assert resp.spend == 0.0
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_ateam_member_update_admin_requires_premium(monkeypatch):
|
||||
# Arrange: patch prisma_client and premium_user
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue