
    Cj                     4   S r SSKrSSKJr  SSKJrJrJrJr  SSKJ	r	J
r
JrJr  SSKJr  SSKJr   " S S	\5      r " S
 S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r " S S\5      r\R3                  5         g)z
Team table models.

Canonical definitions for ``litellm_teamtable`` (plus the shared Member and
budget-window value types and the team-model alias table). Re-exported from
``litellm.proxy._types`` for backwards compatibility.
    N)datetime)ListLiteralOptionalUnion)	BaseModel
ConfigDictFieldmodel_validator)LiteLLM_ObjectPermissionTable)LiteLLMPydanticObjectBasec                   t    \ rS rSr% \" SSS9r\\   \S'   \" SSS9r	\\   \S'   \
" SS	9\S
 5       5       rSrg)
MemberBase   NzOThe unique ID of the user to add. Either user_id or user_email must be provided)defaultdescriptionuser_idzSThe email address of the user to add. Either user_id or user_email must be provided
user_emailbeforemodec                     [        U[        5      (       d  [        S5      eUR                  S5      c  UR                  S5      c  [        S5      eU$ )Nzinput needs to be a dictionaryr   r   z-Either user id or user email must be provided)
isinstancedict
ValueErrorget)clsvaluess     e/home/rurouni/.local/share/pipx/venvs/strix-agent/lib/python3.13/site-packages/litellm/models/team.pycheck_user_infoMemberBase.check_user_info   sK     &$''=>>::i (VZZ-E-MLMM     )__name__
__module____qualname____firstlineno__r
   r   r   str__annotations__r   r   classmethodr    __static_attributes__r#   r"   r   r   r      s[    "eGXc]  !&i!J 
 (#  $r"   r   c                   2    \ rS rSr% \" SS9r\S   \S'   Srg)Member'   zyThe role of the user within the team. 'admin' users can manage team settings and members, 'user' is a regular team member)r   )adminuserroler#   N)	r$   r%   r&   r'   r
   r1   r   r)   r+   r#   r"   r   r-   r-   '   s    %* P&D'/
" r"   r-   c                   B    \ rS rSr% Sr\\S'   \\S'   Sr\	\
   \S'   Srg)BudgetLimitEntry-   zIA single budget window with its own limit and independent reset schedule.budget_duration
max_budgetNreset_atr#   )r$   r%   r&   r'   __doc__r(   r)   floatr7   r   r   r+   r#   r"   r   r3   r3   -   s     S#'Hhx 'r"   r3   c                   |    \ rS rSr% Sr\\   \S'   Sr\\	\
\4      \S'   \
\S'   \
\S'   Sr\S   \S'   \" S	S
9rS	rg)LiteLLM_ModelTable5   Nidmodel_aliases
created_by
updated_byLiteLLM_TeamTableteamr#   protected_namespaces)r$   r%   r&   r'   r=   r   intr)   r>   r   r(   r   rB   r	   model_configr+   r#   r"   r   r;   r;   5   sL    B04M8E#t),-4OO*.D(&
'.26Lr"   r;   c                      \ rS rSr% Sr\\   \S'   Sr\\   \S'   Sr	\\   \S'   / r
\\S'   / r\\S'   / r\\   \S'   Sr\\\      \S	'   Sr\\   \S
'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\\      \S'   / r\\S'   Sr\\S'   Sr\\   \S'   Sr \\\      \S'   Sr!\\\      \S'   Sr"g)TeamBase?   N
team_aliasteam_idorganization_idadminsmembersmembers_with_rolesteam_member_permissionsmetadata	tpm_limit	rpm_limitr6   soft_budgetr5   budget_limitsmodelsFblockedrouter_settingsaccess_group_idsdefault_team_member_modelsr#   )#r$   r%   r&   r'   rJ   r   r(   r)   rK   rL   rM   listrN   rO   r   r-   rP   rQ   r   rR   rE   rS   r6   r9   rT   r5   rU   r3   rV   rW   boolrX   rY   rZ   r+   r#   r"   r   rH   rH   ?   s    $J$!GXc]!%)OXc])FDGT')V)37Xd3i07#Hhtn##Ix}##Ix}#"&J&#'K%'%)OXc])6:M8D!123:FDGT&*OXd^*,0htCy)06:c 3:r"   rH   c                   l   \ rS rSr% \\S'   Sr\\   \S'   Sr	\\
   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\
   \S'   0 r\\   \S	'   0 r\\   \S
'   Sr\\\      \S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   \" SS9r\" SS9\ S 5       5       r!Sr"g)rA   U   rK   Nspendmax_parallel_requestsr5   budget_reset_atmodel_idmodel_spendmodel_max_budgetpoliciesFallow_team_guardrail_configlitellm_model_tableobject_permissionobject_permission_id
updated_at
created_atr#   rC   r   r   c                    / SQn[        U[        5      (       a  UR                  5       n[        UR                  S5      [        5      (       a  US   (       d  / US'   U HI  nUR                  U5      nUc  M  [        U[
        5      (       d  M0   [        R                  " U5      X'   MK     U$ ! [        R                   a    [        SU S35      ef = f)N)rQ   aliasesconfigpermissionsrd   r>   rX   rU   rO   zField z should be a valid dictionary)
r   r   
model_dumpr   r   r(   jsonloadsJSONDecodeErrorr   )r   r   dict_fieldsfieldvalues        r   set_model_info LiteLLM_TeamTable.set_model_infoh   s    	
 fi((&&(F vzz"67>>/0+-F'( EJJu%E Zs%;%;T$(JJu$5FM	 !  ++ T$veW4Q%RSSTs   B..$C)#r$   r%   r&   r'   r(   r)   r_   r   r9   r`   rE   r5   ra   r   rb   rc   r   rd   re   r   rf   r\   rg   r;   rh   r   ri   rj   rk   r	   rF   r   r*   rw   r+   r#   r"   r   rA   rA   U   s   L!E8E?!+/8C=/%)OXc])*.OXh'."Hhsm""$K$$')htn)$(HhtCy!(27$78<"45<AEx =>E*.(3-.%)J")%)J")26L(#  $r"   rA   c                   *    \ rS rSr% Sr\\   \S'   Srg)LiteLLM_TeamTableCachedObj   Nlast_refreshed_atr#   )	r$   r%   r&   r'   r|   r   r9   r)   r+   r#   r"   r   rz   rz      s    )-x-r"   rz   c                       \ rS rSr% SrSr\\   \S'   Sr	\\
   \S'   Sr\\   \S'   Sr\\   \S'   Sr\\   \S'   \" S	S
9rS	rg)LiteLLM_DeletedTeamTable   zHAudit record for deleted teams; mirrors the team plus deletion metadata.Nr=   
deleted_at
deleted_bydeleted_by_api_keylitellm_changed_byr#   rC   )r$   r%   r&   r'   r8   r=   r   r(   r)   r   r   r   r   r   r	   rF   r+   r#   r"   r   r~   r~      sX    RB%)J") $J$(,,(,,26Lr"   r~   )r8   rq   r   typingr   r   r   r   pydanticr   r	   r
   r    litellm.models.object_permissionr   litellm.types.llms.baser   r   r-   r3   r;   rH   rA   rz   r~   model_rebuildr#   r"   r   <module>r      s      1 1 B B J =* (Z (0 (72 7;( ;,2 2j.!2 .	70 	7      "r"   