
    ^h                     L    S SK r S SKJr  S SKJrJr  S\S\S\4S jrS\4S	 jrg)
    N)Request)GenerateKeyRequestUserAPIKeyAuthrequestapi_keyreturnc                    #     [         R                  " S5       S3nX:X  a	  [        US9$ [        e! [         a    [        ef = f7f)NPROXY_MASTER_KEYz-1234)r   )osgetenvr   	Exception)r   r   modified_master_keys      g/home/james-whalen/.local/lib/python3.13/site-packages/litellm/proxy/example_config_yaml/custom_auth.pyuser_api_key_authr      sK     !#+=!> ?uE)!'22 s   A&1 A1 AAdatac                   #    U R                  5       nUR                  S5      nUR                  S5        UR                  S5        UR                  S5        UR                  S5        UR                  S5        UR                  S5        UR                  S5        UR                  S	5        UR                  S
5        UR                  S5        Ub  [        U5      S:  a  SS0$ SSS.$ 7f)z
Asynchronously decides if a key should be generated or not based on the provided data.

Args:
    data (GenerateKeyRequest): The data to be used for decision making.

Returns:
    bool: True if a key should be generated, False otherwise.
team_iddurationmodelsaliasesconfigspenduser_idmax_parallel_requestsmetadata	tpm_limit	rpm_limitr   decisionTz7This violates LiteLLM Proxy Rules. No team id provided.)r   message)jsongetlen)r   	data_jsonr   s      r   generate_key_fnr$      s      		I mmI&GMM*MM(MM)MM(MM'MM)MM)*MM*MM+MM+s7|a/
 	

 P
 	
s   C'C))	r   fastapir   litellm.proxy._typesr   r   strr   r$        r   <module>r*      s5    	  CW s ~ "
 2 "
r)   