Ë
    uPêj#  ã                   óv   — U d Z ddlmZ g d¢Zeed<   dee   fd„Z e«       Zeed<   de	de
fd	„Zd
e	de	de	fd„Zy)zÒ
Utils for handling clientside credentials

Supported clientside credentials:
- api_key
- api_base
- base_url

If given, generate a unique model_id for the deployment.

Ensures cooldowns are applied correctly.
é    )ÚFinal)Úapi_keyÚapi_baseÚbase_urlÚclientside_credential_keysÚreturnc                  ón   — ddl m}  | j                  D �cg c]  }|t        vsŒ|‘Œ }}g d¢}||z   S c c}w )uŽ  
    Provider-specific credential / endpoint-targeting fields that must NOT
    flow through to a client-redirected upstream.

    Built dynamically from ``CredentialLiteLLMParams.model_fields`` so any
    new provider field added there (Bedrock endpoint, Watsonx region, etc.)
    is gated automatically â€” plus a fixed list of kwargs-only fields that
    aren't declared on the typed model.
    r   )ÚCredentialLiteLLMParams)ÚorganizationÚ
extra_bodyÚextra_headersÚdefault_headersÚapi_typeÚazure_ad_tokenÚazure_ad_token_providerÚaws_session_tokenÚaws_sts_endpointÚaws_web_identity_tokenÚaws_role_nameÚ
oci_signerÚoci_userÚoci_fingerprintÚoci_tenancyÚoci_keyÚoci_key_fileÚnvcf_function_idÚuse_ssl)Úlitellm.types.routerr
   Úmodel_fieldsr   )r
   ÚfÚtyped_fieldsÚkwargs_only_fieldss       úw/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/router_utils/clientside_credential_handler.pyÚ._admin_config_fields_to_clear_on_base_overrider$      sE   € õ =à&=×&JÑ&JÖr ÈaÔWqÒNqš1Ðr€LÐrò!Ðð> Ð,Ñ,Ð,ùòA ss   •2£2Ú._ADMIN_CONFIG_FIELDS_TO_CLEAR_ON_BASE_OVERRIDEÚrequest_kwargsc                 ó4   ‡ — t        ˆ fd„t        D «       «      S )z=
    Check if the credential is a clientside credential.
    c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­w)N© )Ú.0Úkeyr&   s     €r#   ú	<genexpr>z+is_clientside_credential.<locals>.<genexpr>I   s   øè ø€ ÒK¨ˆs�nÔ$ÑKùs   ƒ)Úanyr   )r&   s   `r#   Úis_clientside_credentialr.   E   s   ø€ ô ÓKÔ0JÔKÓKÐKó    Úlitellm_paramsc                 óš   — t         D ]  }||v sŒ||   | |<   Œ d|v sd|v r*t        D ]!  }| j                  |d«       ||v sŒ||   | |<   Œ# | S )z‡
    Generate a unique model_id for the deployment.

    Returns
    - litellm_params: dict

    for generating a unique model_id.
    r   r   N)r   r%   Úpop)r0   r&   r+   Úfields       r#   Úget_dynamic_litellm_paramsr4   L   sy   € ô *ò 6ˆØ�.Ò Ø"0°Ñ"5ˆN˜3Òð6ð �^Ñ# z°^Ñ'CÜCò 	>ˆEØ×Ñ˜u dÔ+Ø˜Ò&Ø(6°uÑ(=�˜uÒ%ð	>ð
 Ðr/   N)Ú__doc__Útypingr   r   Ú__annotations__ÚlistÚstrr$   r%   ÚdictÚboolr.   r4   r)   r/   r#   ú<module>r<      sl   ðòõ â$GÐ ˜EÓ Gð,-¸¸S¹	ó ,-ñ^ 9gÓ8hÐ .°Ó hðL¨Tð L°dó Lð¨tð ÀTð Èdô r/   