
    UEjH                        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y)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                    i }i }| ||fS t        | t              st        d      | j                  j                  }|t        |j                               n|}|D ]  }||vr||   }t        | |      }|t        |t              }	|	/|	j                  rt        |||       ||fc S |	j                  s[|	j                  dv r t        |t              st        |||	||        nt        |||	||       |	j                  r||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
             W/var/www/html/qr/venv/lib/python3.12/site-packages/google/genai/_gaos/utils/security.pyget_securityr)   &   s5    !G)+L$$h	*;<<'/'9'9'F'FJ#1#9Z__~    -z!t$	$'=&y2BC??"7L%@L((??  $77
yA 'whhW&wheT%%,,5-8 L      security_classc                 j   | | 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 |S 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GHHM	yy'(#%99-C#Di 	yy,-(*		2M(Nn%	yy/0+-995S+T'(.;>*M*EEr*   r    r!   r   c                 j   t        |t              st        d      |j                  j                  }|D ]}  }||   }t        |t              }||j                  s't        ||      }|j                  dk(  r-|j                  dk(  rt        |t              st        | |        y t        | ||||        y )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(BCC'-'7'7'D'DJ Mt$	&y2BC8??%  F*!!W,ui0$Wf5wheL!Mr*   scheme_metadata
field_namer   c           	      j   |j                   }|j                  }t        |t              r{|dk(  r|dk(  rt	        | |       y |dk(  ry |j
                  j                  }|D ]B  }||   }	t        |	t              }
|
|
j                  't        ||      }t        | |||
||       D y t        | |||||       y )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8#.4.>.>.K.K! 	D(.L*<9IJH8#6#6#>FD)E($	 	%\?OZQW	
r*   security_metadatar&   c                 ~   |j                   }|j                  }|j                  |      }|dk(  r"|dk(  r|| |<   y |dk(  r|g||<   y t        d      |dk(  rt	        |      | |<   y |dk(  r|dk7  rt	        |      | |<   y y |dk(  r0|d	k(  rt	        |      | |<   y |d
k(  r|| |<   y |dk(  ry 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      s     "--K''H#22:>Khx#(GK  ).L%@AA		',U3		 ++#0#7GK  ,		x#0#7GK  #(GK !@AABCCr*   tokenc                 V    | j                         j                  d      xr | xs d|  S )Nzbearer zBearer )lower
startswith)rR   s    r(   rP   rP      s*    ;;=##I.85MgeW<MMr*   c                    d}d}t        |t              st        d      |j                  j                  }|D ]M  }||   }t        |t              }||j                  '|j                  }t        ||      }	|dk(  r|	}|dk(  sL|	}O | d| j                         }
dt        j                  |
      j                          | d<   y )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(DEE*0*:*:*G*GM $T*&|5EFx22:((
%#H#H Zq
#**,D!'(8(8(>(E(E(G'H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    % 
 :>-!-!#+DI#6-!
4S>4T#Y//0-!`FC F F)AT F*M#s(^M+/T#Y+?MILM6"
#s(^"
sDI~&"
 &"
 	"

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