
    g                     L   d Z ddlZddl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ed	eeeef   eeee   f   f   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Tuple)	BaseModel)	FieldInfo   )SecurityMetadatafind_field_metadatasecurityreturnc                    i }i }| ||fS t        | t              st        d      | j                  j                  }|D ]  }||   }t        | |      }|t        |t              }|*|j                  rt        |||       ||fc S |j                  sV|j                  dv r t        |t              st        |||||        t        |||||        ||fS )Nz!security must be a pydantic model)basiccustom)
isinstancer   	TypeError	__class__model_fieldsgetattrr   r
   option_parse_security_optionschemesub_type_parse_security_scheme)r   headersquery_params
sec_fieldsname	sec_fieldvaluemetadatas           Q/var/www/openai/venv/lib/python3.12/site-packages/mistralai_gcp/utils/security.pyget_securityr#      s     G)+L$$h	*;<<'/'9'9'F'FJt$	$'=&y2BC??"7L%@L((??  $77
yA 'whhW&wheT) , L      r   r   r   c                     t        |t              st        d      |j                  j                  }|D ]?  }||   }t        |t              }||j                  s't        | |||t        ||             A y )Nz(security option must be a pydantic model)
r   r   r   r   r   r   r
   r   r   r   )r   r   r   
opt_fieldsr   	opt_fieldr!   s          r"   r   r   7   su     fi(BCC'-'7'7'D'DJt$	&y2BC8??\8T7643H	
 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 )Nhttpr   r   )scheme_typer   r   r   _parse_basic_auth_schemer   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   I   s     "--K''H&)$& 7"(&98#.4.>.>.K.K!D(.L*<9IJH8#6#6#>FD)E($ " 	%\?OZQW	
r$   security_metadatar    c                 h   |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(  r%|d	k(  rt	        |      | |<   y |d
k(  ry t        d      t        d      )NapiKeyheaderqueryz!sub type {sub_type} not supportedopenIdConnectoauth2client_credentialsr+   bearerr   z'scheme type {scheme_type} not supported)r,   r   get_field_name
ValueError_apply_bearer)	r   r   r(   r1   r)   r    r,   r   header_names	            r"   r.   r.   n   s     "--K''H#22:>Khx#(GK  ).L%@AA		',U3		 ++#0#7GK  ,		x#0#7GK !@AABCCr$   tokenc                 V    | j                         j                  d      xr | xs d|  S )Nzbearer zBearer )lower
startswith)r>   s    r"   r<   r<      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   rD   rE   r/   r   r0   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$   )__doc__rI   typingr   r   r   r   pydanticr   pydantic.fieldsr   r!   r
   r   strr#   r   r   r.   r<   r-    r$   r"   <module>rS      s^   G    %!!3 !!5c3hc49n9M)M#N !!H
#s(^
+/T#Y+?
IL
$"
#s(^"
sDI~&"
 &"
 	"

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