
    hjH                        d Z ddlZddlmZmZmZmZmZ ddlm	Z	 ddl
mZ ddlmZmZ ddlZ	 dded	eee                  d
eeeef         eeee         f         f         fdZdeded
ee	         fdZdeeef         deeee         f         defdZdeeef         deeee         f         dededef
dZdeeef         deeee         f         dedededefdZded
efdZdeeef         defdZdS )zACode generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.    N)AnyDictListOptionalTuple)	BaseModel)	FieldInfo   )SecurityMetadatafind_field_metadatasecurityallowed_fieldsreturnc                 0   i }i }| ||fS t          | t                    st          d          | j        j        }|!t          |                                          n|}|D ]}||vr||         }t          | |          }|"t          |t                    }	|	:|	j
        rt          |||           ||fc S |	j        rR|	j        dv r)t          |t                    st          |||	||            nt          |||	||           |	j        s||fc S ||fS )Nz!security must be a pydantic model)basiccustom)
isinstancer   	TypeError	__class__model_fieldslistkeysgetattrr   r   option_parse_security_optionschemesub_type_parse_security_scheme	composite)
r   r   headersquery_params
sec_fieldssec_field_namesname	sec_fieldvaluemetadatas
             e/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/google/genai/_gaos/utils/security.pyget_securityr)   &   s}    !G)+L$$h	** =;<<<'/'9'FJ#1#9Z__~    - -z!!t$	$''=&y2BCC? 	)"7L%@@@L((((? 
	- $777
yA A7 'whhWWWW&wheTTT% -,,,,L      security_classc                 p   | | S t          |t                    st          d          i }t          j        d          rt          j        d          |d<   t          j        d          rt          j        d          |d<   t          j        d          rt          j        d          |d<   |r |di |nd S )	Nz-security_class must be a pydantic model classGOOGLE_GENAI_API_KEYapi_keyGOOGLE_GENAI_ACCESS_TOKENaccess_tokenGOOGLE_GENAI_DEFAULT_HEADERSdefault_headers )
issubclassr   r   osgetenv)r   r+   security_dicts      r(   get_security_from_envr8   V   s    ni00 IGHHHM	y'(( E#%9-C#D#Di 	y,-- O(*	2M(N(Nn%	y/00 U+-95S+T+T'(.;E>>**M***Er*   r    r!   r   c                    t          |t                    st          d          |j        j        }|D ]}||         }t          |t                    }||j        s)t          ||          }|j	        dk    r3|j
        dk    r(t          |t                    st          | |            d S t          | ||||           d S )Nz(security option must be a pydantic modelhttpr   )r   r   r   r   r   r   r   r   r   scheme_typer   _parse_basic_auth_schemer   )r    r!   r   
opt_fieldsr$   	opt_fieldr'   r&   s           r(   r   r   k   s     fi(( DBCCC'-'7'DJ M Mt$	&y2BCC8?%% F**!W,,ui00 - %Wf555FFwheLLLL!M Mr*   scheme_metadata
field_namer   c           	      |   |j         }|j        }t          |t                    r|dk    r |dk    rt	          | |           d S |dk    rd S |j        j        }|D ]M}||         }	t          |	t                    }
|
|
j	        )t          ||          }t          | |||
||           Nd S t          | |||||           d S )Nr:   r   r   )r;   r   r   r   r<   r   r   r   r   r@   r   _parse_security_scheme_value)r    r!   r?   r@   r   r;   r   scheme_fieldsr$   scheme_fieldr'   r&   s               r(   r   r      s    "-K'H&)$$ 
&  7""(&9998##.4.>.K! 	 	D(.L*<9IJJH8#6#>FD))E($   	 	 	%\?OZQW	
 	
 	
 	
 	
r*   security_metadatar&   c                    |j         }|j        }|                    |          }|dk    r*|dk    r|| |<   d S |dk    r|g||<   d S t          d          |dk    rt	          |          | |<   d S |dk    r|dk    rt	          |          | |<   d S d S |dk    r>|d	k    rt	          |          | |<   d S |d
k    r|| |<   d S |dk    rd S t          d          t          d          )NapiKeyheaderqueryz!sub type {sub_type} not supportedopenIdConnectoauth2client_credentialsr:   bearerr   r   z'scheme type {scheme_type} not supported)r;   r   get_field_name
ValueError_apply_bearer)	r    r!   r?   rE   r@   r&   r;   r   header_names	            r(   rB   rB      sJ    "-K'H#22:>>Khx#(GK     ).L%%%@AAA		'	',U33		 	 +++#0#7#7GK    ,+			x#0#7#7GK     #(GK   !!F@AAABCCCr*   tokenc                 ^    |                                                      d          r| pd|  S )Nzbearer zBearer )lower
startswith)rR   s    r(   rP   rP      s1    ;;==##I..85M<Me<M<MMr*   c                    d}d}t          |t                    st          d          |j        j        }|D ]P}||         }t          |t                    }||j        )|j        }t          ||          }	|dk    r|	}|dk    r|	}Q| d| 	                                }
dt          j        |
                                           | d<   d S )N z*basic auth scheme must be a pydantic modelusernamepassword:zBasic Authorization)r   r   r   r   r   r   r   r@   r   encodebase64	b64encodedecode)r    r   rX   rY   rC   r$   rD   r'   r@   r&   datas              r(   r<   r<      s    HHfi(( FDEEE*0*:*GM  $T*&|5EFFx2:(
%%##H##H####**,,DI(8(>(>(E(E(G(GIIGOr*   )N)__doc__r]   typingr   r   r   r   r   pydanticr   pydantic.fieldsr	   r'   r   r   r5   strr)   r8   r   r   rB   rP   r<   r3   r*   r(   <module>rf      s  " H G                     % % % % % %        
			 :>-! -!-!#+DI#6-!
4S>4T#Y//0-! -! -! -!`FC F F)AT F F F F*M#s(^M+/T#Y+?MILM M M M6"
#s(^"
sDI~&"
 &"
 	"

 "
 "
 "
 "
J#D#s(^#DsDI~&#D &#D (	#D
 #D #D #D #D #DLN N N N N NJd38n Jc J J J J J Jr*   