Ë
    uPêj9  ã                   ó0  — d Z ddlZddlmZ ddlmZmZmZ ddlmZm	Z	m
Z
mZ ddlmZ ddlmZ  G d„ d	e«      Z G d
„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Z G d„ de«      Zej1                  «        y)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)ÚFinalÚLiteralÚOptional)Ú	BaseModelÚ
ConfigDictÚFieldÚmodel_validator)ÚLiteLLM_ObjectPermissionTable)ÚLiteLLMPydanticObjectBasec                   ó~   — e Zd ZU  edd¬«      Zedz  ed<    edd¬«      Zedz  ed<    ed¬«      e	d	„ «       «       Z
y)
Ú
MemberBaseNzOThe 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                 ó–   — t        |t        «      st        d«      ‚|j                  d«      €|j                  d«      €t        d«      ‚|S )Nzinput needs to be a dictionaryr   r   z-Either user id or user email must be provided)Ú
isinstanceÚdictÚ
ValueErrorÚget)ÚclsÚvaluess     úX/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/models/team.pyÚcheck_user_infozMemberBase.check_user_info   sH   € ô ˜&¤$Ô'ÜÐ=Ó>Ð>Ø�:‰:�iÓ Ð(¨V¯Z©Z¸Ó-EÐ-MÜÐLÓMÐMØˆó    )Ú__name__Ú
__module__Ú__qualname__r	   r   ÚstrÚ__annotations__r   r
   Úclassmethodr   © r   r   r   r      s[   … ÙØØeô€GˆS�4‰Zó ñ #ØØiô€J��d‘
ó ñ
 ˜(Ô#Øñó ó $ñr   r   c                   ó0   — e Zd ZU  ed¬«      Zed   ed<   y)ÚMemberzyThe role of the user within the team. 'admin' users can manage team settings and members, 'user' is a regular team member)r   )ÚadminÚuserÚroleN)r    r!   r"   r	   r+   r   r$   r&   r   r   r(   r(   '   s   … Ù%*ð Pô&€Dˆ'�/Ñ
"ô r   r(   c                   ó:   — e Zd ZU dZeed<   eed<   dZedz  ed<   y)ÚBudgetLimitEntryzIA single budget window with its own limit and independent reset schedule.Úbudget_durationÚ
max_budgetNÚreset_at)	r    r!   r"   Ú__doc__r#   r$   Úfloatr0   r   r&   r   r   r-   r-   -   s   … ÙSàÓØÓØ $€Hˆh˜‰oÔ$r   r-   c                   óv   — e Zd ZU dZedz  ed<   dZeez  dz  ed<   eed<   eed<   dZ	e
d   ed<    ed¬	«      Zy)
ÚLiteLLM_ModelTableNÚidÚmodel_aliasesÚ
created_byÚ
updated_byÚLiteLLM_TeamTableÚteamr&   ©Úprotected_namespaces)r    r!   r"   r5   Úintr$   r6   r#   r   r:   r   r   Úmodel_configr&   r   r   r4   r4   5   sG   … Ø€Bˆˆd‰
ÓØ'+€M�3˜‘: Ñ$Ó+ØƒOØƒOØ*.€Dˆ(Ð&Ñ
'Ó.á°2Ô6�Lr   r4   c                   óœ  — e Zd ZU dZedz  ed<   dZedz  ed<   dZedz  ed<   g Ze	e   ed<   g Z
e	e   ed<   g Ze	e   ed<   dZe	e   dz  ed<   dZedz  ed	<   dZedz  ed
<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZe	e   dz  ed<   g Ze	e   ed<   dZeed<   dZedz  ed<   dZe	e   dz  ed<   dZe	e   dz  ed<   y)ÚTeamBaseNÚ
team_aliasÚteam_idÚorganization_idÚadminsÚmembersÚmembers_with_rolesÚteam_member_permissionsÚmetadataÚ	tpm_limitÚ	rpm_limitr/   Úsoft_budgetr.   Úbudget_limitsÚmodelsFÚblockedÚrouter_settingsÚaccess_group_idsÚdefault_team_member_models)r    r!   r"   rA   r#   r$   rB   rC   rD   ÚlistrE   rF   r(   rG   rH   r   rI   r=   rJ   r/   r2   rK   r.   rL   r-   rM   rN   ÚboolrO   rP   rQ   r&   r   r   r@   r@   ?   s"  … Ø!€J��d‘
Ó!Ø€GˆS�4‰ZÓØ"&€O�S˜4‘ZÓ&Ø€FˆD�‰IÓØ€GˆT�#‰YÓØ')Ð˜˜V™Ó)Ø04Ð˜T #™Y¨Ñ-Ó4Ø €Hˆd�T‰kÓ Ø €Iˆs�T‰zÓ Ø €Iˆs�T‰zÓ Ø#€J�˜‘Ó#Ø $€K�˜‘Ó$Ø"&€O�S˜4‘ZÓ&Ø37€M�4Ð(Ñ)¨DÑ0Ó7Ø€FˆD�‰IÓØ€GˆTÓØ#'€O�T˜D‘[Ó'Ø)-Ð�d˜3‘i $Ñ&Ó-Ø37Ð  S¡	¨DÑ 0Ô7r   r@   c                   óp  — e Zd ZU eed<   dZedz  ed<   dZedz  ed<   dZ	edz  ed<   dZ
edz  ed<   dZedz  ed<   i Zedz  ed<   i Zedz  ed	<   dZee   dz  ed
<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<   dZedz  ed<    ed¬«      Z ed¬«      ed„ «       «       Zy)r9   rB   NÚspendÚmax_parallel_requestsr.   Ú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&   r;   r   r   c                 óv  — g d¢}t        |t        «      r|j                  «       }t        |j                  d«      t        «      r
|d   sg |d<   |D ]@  }|j                  |«      }|€Œt        |t
        «      sŒ(	 t        j                  |«      ||<   ŒB |S # t        j                  $ r t        d|› d�«      ‚w xY w)N)rH   ÚaliasesÚconfigÚpermissionsrZ   r6   rO   rL   rF   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_infoz LiteLLM_TeamTable.set_model_infoh   sÅ   € ò	
ˆô �fœiÔ(Ø×&Ñ&Ó(ˆFä�f—j‘jÐ!5Ó6¼Ô=ÀfÐMaÒFbØ+-ˆFÐ'Ñ(à ò 	TˆEØ—J‘J˜uÓ%ˆEØÑ ¤Z°´sÕ%;ðTÜ$(§J¡J¨uÓ$5�F˜5’Mð		Tð ˆøô ×+Ñ+ò TÜ$ v¨e¨WÐ4QÐ%RÓSÐSðTús   Á9BÂ#B8) r    r!   r"   r#   r$   rU   r2   rV   r=   r.   rW   r   rX   rY   r   rZ   r[   rR   r\   rS   r]   r4   r^   r   r_   r`   ra   r   r>   r
   r%   rm   r&   r   r   r9   r9   U   s  … ØƒLØ€Eˆ5�4‰<ÓØ(,Ð˜3 ™:Ó,Ø"&€O�S˜4‘ZÓ&Ø'+€O�X ‘_Ó+Ø€Hˆc�D‰jÓØ!€K�˜‘Ó!Ø$&Ð�d˜T‘kÓ&Ø!%€Hˆd�3‰i˜$ÑÓ%Ø/4Ð ¨¡Ó4Ø59ÐÐ+¨dÑ2Ó9Ø>BÐÐ4°tÑ;ÓBØ'+Ð˜# ™*Ó+Ø"&€J�˜4‘Ó&Ø"&€J�˜4‘Ó&á°2Ô6€Lá˜(Ô#Øñó ó $ñr   r9   c                   ó"   — e Zd ZU dZedz  ed<   y)ÚLiteLLM_TeamTableCachedObjNÚlast_refreshed_at)r    r!   r"   rp   r2   r$   r&   r   r   ro   ro   ‡   s   … Ø&*Ð�u˜t‘|Ô*r   ro   c                   óˆ   — e Zd ZU dZdZedz  ed<   dZedz  ed<   dZ	edz  ed<   dZ
edz  ed<   dZedz  ed<    ed¬	«      Zy)
ÚLiteLLM_DeletedTeamTablezHAudit record for deleted teams; mirrors the team plus deletion metadata.Nr5   Ú
deleted_atÚ
deleted_byÚdeleted_by_api_keyÚlitellm_changed_byr&   r;   )r    r!   r"   r1   r5   r#   r$   rs   r   rt   ru   rv   r   r>   r&   r   r   rr   rr   ‹   sW   … ÙRà€Bˆˆd‰
ÓØ"&€J�˜4‘Ó&Ø!€J��d‘
Ó!Ø%)Ð˜˜d™
Ó)Ø%)Ð˜˜d™
Ó)á°2Ô6�Lr   rr   )r1   rg   r   Útypingr   r   r   Úpydanticr   r   r	   r
   Ú litellm.models.object_permissionr   Úlitellm.types.llms.baser   r   r(   r-   r4   r@   r9   ro   rr   Úmodel_rebuildr&   r   r   ú<module>r|      s™   ðñó Ý ß +Ñ +ç BÓ Bå JÝ =ôÐ*ô ô(ˆZô ô%Ð0ô %ô7Ð2ô 7ô8Ð(ô 8ô,/˜ô /ôd+Ð!2ô +ô	7Ð0ô 	7ð ×  Ñ  Õ "r   