
    [Th                    2   d dl Z d dlZd dlmZ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 ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZ  ej>                  d      Z 	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ$	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ%	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ&	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ'	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ(	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ)	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ*	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ+	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ,	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ-	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ.	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd Z/	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd!Z0	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd"Z1	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd#Z2	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd$Z3	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd%Z4	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd&Z5	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd'Z6	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd(Z7	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd)Z8	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd*Z9	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd+Z:	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd,Z;	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd-Z<	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd.Z=	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd0Z>	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd1Z?	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd2Z@	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd3ZA	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd4ZB	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd5ZC	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd6ZD	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd7ZE	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd8ZF	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd9ZG	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd:ZH	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd;ZI	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd<ZJ	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd=ZK	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd>ZL	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd?ZM	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd@ZN	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdAZO	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdBZP	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdCZQ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdDZR	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdEZS	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdFZT	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdGZU	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdHZV	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdIZW	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdJZX	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdKZY	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdLZZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdMZ[	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdNZ\	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdOZ]	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdPZ^	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdQZ_	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdRZ`	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdSZa	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdTZb	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdUZc	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdVZd	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdWZe	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdXZf	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdYZg	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZZh	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd[Zi	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd\Zj	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd]Zk	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd^Zl	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd_Zm	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd`Zn	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdaZo	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdbZp	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdcZq	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fddZr	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdeZs	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdfZt	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdgZu	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdhZv	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdiZw	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdjZx	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdkZy	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdlZz	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdmZ{	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdnZ|	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdoZ}	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdpZ~	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdqZ	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdrZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdsZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdtZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fduZ	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdvZ	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdwZ	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdxZ	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdyZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdzZ	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd{Z	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd|Z	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fd}Z	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fd~Z	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 dd/edee!e"ef   e#f   dee!e"ef      de!e"ef   fdZdeddfdZdeddfdZdeddfdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdÄZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdĄZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdńZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdƄZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdǄZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdȄZ	 ddee!e"ef   e#f   dee!e"ef      de!e"ef   fdɄZ G dʄ dej                        Z G d̄ dej                        Zy)    N)AnyAsyncIterator	AwaitableIteratorOptionalUnion)	urlencode   )_api_module)_base_transformers)_common)_extra_utils)
_mcp_utils)_transformers)errors)types)BaseApiClient)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.modelsfrom_objectparent_objectreturnc                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nfps
end_offset	endOffsetstart_offsetstartOffsetgetvsetvr   r   	to_objects      X/home/www/backend.miabetepe.com/venv/lib/python3.12/site-packages/google/genai/models.py_VideoMetadata_to_mldevr(   (        !)	+w+UGT+w78	+~&2[M4l^#DE	+'(4]OT+7G%HI	    c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Ndisplay_name6display_name parameter is not supported in Gemini API.data	mime_typemimeTyper#   
ValueErrorr$   r%   s      r'   _Blob_to_mldevr3   9   sw     !)	+'(4
M
NN	+x ,VHd;9:	+}%1ZL${[M"BC	r*   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr,   r-   file_urifileUrir/   r0   r1   r%   s      r'   _FileData_to_mldevr7   J   sw     !)	+'(4
M
NN	+
|$0YKkJ<!@A	+}%1ZL${[M"BC	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nidargsnamer"   r%   s      r'   _FunctionCall_to_mldevr=   [        !)	+v*TFDtf56	+x ,VHd;9:	+x ,VHd;9:	r*   c           
      R   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      t        |d	gt        | dg             t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nvideo_metadatavideoMetadatathoughtinline_data
inlineData	file_datafileDatathought_signaturethoughtSignaturefunction_callfunctionCallcode_execution_resultcodeExecutionResultexecutable_codeexecutableCodefunction_responsefunctionResponsetext)r#   r$   r(   r3   r7   r=   r%   s      r'   _Part_to_mldevrS   l   s    !)	+()*6	/019	
 
+	{#/YKkI;!?@	+'3	tK-99E 
+}%1	4k];YG 
++,-9	[./0 
+()5	tK/1BCYO 
+/01=	[234 
+)*+7%&[;L:M(NO	++,-9	[./0 
+x ,VHd;9:	r*   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w Npartsrole)r#   r$   rS   r   r   r&   items       r'   _Content_to_mldevrZ      s     !)	+y!-		 [7)4	
 4+	
 
+x ,VHd;9:		
   A)c                 "   i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | d	g      t        |d	gt        | d	g             t        | d
g      t        |d
gt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d g      t        |d!gt        | d g             t        | d"g      t        |d"gt        | d"g             t        | d#g      t        |d#gt        | d#g             t        | d$g      t        |d$gt        | d$g             |S )%Nadditional_propertiesz?additional_properties parameter is not supported in Gemini API.defsz.defs parameter is not supported in Gemini API.refz-ref parameter is not supported in Gemini API.any_ofanyOfdefaultdescriptionenumexampleformatitems	max_itemsmaxItems
max_length	maxLengthmax_propertiesmaxPropertiesmaximum	min_itemsminItems
min_length	minLengthmin_propertiesminPropertiesminimumnullablepattern
propertiesproperty_orderingpropertyOrderingrequiredtitletyper1   r%   s      r'   _Schema_to_mldevr~      s    !)	+/01=
I  
+x ,
E
FF	+w+
D
EE	+z".WItK(<=	+	{#/YKkI;!?@	+'3]OT+%GH	+x ,VHd;9:	+	{#/YKkI;!?@	+z".XJ[8* =>	+y!-WItK';<	+}%1ZL${[M"BC	+~&2[M4l^#DE	+()*6_%tK:J9K'LM	+	{#/YKkI;!?@	+}%1ZL${[M"BC	+~&2[M4l^#DE	+()*6_%tK:J9K'LM	+	{#/YKkI;!?@	+
|$0ZL${ZL"AB	+	{#/YKkI;!?@	+~&2\ND|n$EF	++,-9	[./0 
+
|$0ZL${ZL"AB	+y!-WItK';<	+x ,VHd;9:	r*   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nmethodz0method parameter is not supported in Gemini API.category	thresholdr1   r%   s      r'   _SafetySetting_to_mldevr     sv     !)	+z".
G
HH	+
|$0ZL${ZL"AB	+}%1[M4k]#CD	r*   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             |S )
Nbehaviorrc   r<   
parametersparameters_json_schemaparametersJsonSchemaresponseresponse_json_schemaresponseJsonSchemar"   r%   s      r'   _FunctionDeclaration_to_mldevr   /  s1    !)	+
|$0ZL${ZL"AB	+'3]OT+%GH	+x ,VHd;9:	+~&2\ND|n$EF	+012>	 [345 
+
|$0ZL${ZL"AB	+./0<	[123 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S N
start_time	startTimeend_timeendTimer"   r%   s      r'   _Interval_to_mldevr   T  [     !)	+~&2[M4l^#DE	+
|$0YKkJ<!@A	r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        d      |S )Ntime_range_filtertimeRangeFilterexclude_domainsz9exclude_domains parameter is not supported in Gemini API.)r#   r$   r   r2   r%   s      r'   _GoogleSearch_to_mldevr   b  sk     !)	++,-9	4.A-BCYO 
+)*+7
C  
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nmodedynamic_thresholddynamicThresholdr"   r%   s      r'    _DynamicRetrievalConfig_to_mldevr   v  g     !)	+x ,VHd;9:	++,-9	[./0 
r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S Ndynamic_retrieval_configdynamicRetrievalConfig)r#   r$   r   r%   s      r'   _GoogleSearchRetrieval_to_mldevr     sK     !)	+234@	!"(9:;Y	
 
r*   c                 
    i }|S N r%   s      r'   _UrlContext_to_mldevr          !)	r*   c                 V    i }t        | dg      t        |dgt        | dg             |S Nenvironmentr"   r%   s      r'   _ToolComputerUse_to_mldevr     5     !)	+'3]OT+%GH	r*   c                    i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        d      t        | dg      #t        |dgt	        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | d	g      t        d
      t        | dg      t        d      t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S c c}w )Nfunction_declarationsfunctionDeclarations	retrievalz3retrieval parameter is not supported in Gemini API.google_searchgoogleSearchgoogle_search_retrievalgoogleSearchRetrievalenterprise_web_searchz?enterprise_web_search parameter is not supported in Gemini API.google_mapsz5google_maps parameter is not supported in Gemini API.url_context
urlContextcomputer_usecomputerUsecode_executioncodeExecution)r#   r$   r   r2   r   r   r   r   rX   s       r'   _Tool_to_mldevr     s    !)	+/01=	  [+B*CD	
 *$	:	
 
+}%1
J
KK	+()5	tK/1BCYO 
+123?	 !'89:I	
 
+/01=
I  
+'3
L
MM	+'3	T+?K 
+'(4	!~./	
 
+()*6_%tK:J9K'LM	i	
s   E1c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nr   allowed_function_namesallowedFunctionNamesr"   r%   s      r'   _FunctionCallingConfig_to_mldevr     g     !)	+x ,VHd;9:	+012>	 [345 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nlatitude	longituder"   r%   s      r'   _LatLng_to_mldevr     [     !)	+
|$0ZL${ZL"AB	+}%1[M4k]#CD	r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S Nlat_lnglatLnglanguage_codelanguageCode)r#   r$   r   r%   s      r'   _RetrievalConfig_to_mldevr     sl     !)	+	{#/	
kI;7C 
+()5^$d;8I&JK	r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             |S Nfunction_calling_configfunctionCallingConfigretrieval_configretrievalConfig)r#   r$   r   r   r%   s      r'   _ToolConfig_to_mldevr     s     !)	+123?	 !'89:I	
 
+*+,8	!123Y	
 
r*   c                 V    i }t        | dg      t        |dgt        | dg             |S N
voice_name	voiceNamer"   r%   s      r'   _PrebuiltVoiceConfig_to_mldevr   9  5     !)	+~&2[M4l^#DE	r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S Nprebuilt_voice_configprebuiltVoiceConfig)r#   r$   r   r%   s      r'   _VoiceConfig_to_mldevr   D  sK     !)	+/01=	%678)	
 
r*   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             |S )Nspeakervoice_configvoiceConfig)r#   r$   r   r%   s      r'   _SpeakerVoiceConfig_to_mldevr   U  sk     !)	+	{#/YKkI;!?@	+'(4	d;0@A9M 
r*   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nspeaker_voice_configsspeakerVoiceConfigs)r#   r$   r   rX   s       r'   !_MultiSpeakerVoiceConfig_to_mldevr   g  sb     !)	+/01=	 [+B*CD	
 )y9	
 
	
   Ac           
         i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nr   r   multi_speaker_voice_configmultiSpeakerVoiceConfigr   r   )r#   r$   r   r   r%   s      r'   _SpeechConfig_to_mldevr   y  s     !)	+'(4	d;0@A9M 
+456B	"#);<=y	
 
+()5^$d;8I&JK	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Ninclude_thoughtsincludeThoughtsthinking_budgetthinkingBudgetr"   r%   s      r'   _ThinkingConfig_to_mldevr     l     !)	+*+,8%&[;M:N(O 
+)*+7%&[;L:M(NO	r*   
api_clientc                 b	   i }t        |dg      6t        |dgt        t        j                  t        |dg            |             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |d	gt        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      7t        |dgt        t        j                  | t        |dg            |             t        |dg      t        |dgt        |dg             t        |dg      t        d      t        |dg      t        d      t        |d g      1t        |d!gt        |d g      D cg c]  }t        ||       c}       t        |d"g      Yt        |d"gt        j                  | t        |d"g            D cg c]"  }t        t        j                  | |      |      $ c}       t        |d#g      #t        |d$gt        t        |d#g      |             t        |d%g      t        d&      t        |d'g      -t        |d(gt        j                  | t        |d'g                   t        |d)g      t        |d*gt        |d)g             t        |d+g      t        |d,gt        |d+g             t        |d-g      6t        |d.gt        t        j                  t        |d-g            |             t        |d/g      t        d0      t        |d1g      #t        |d2gt!        t        |d1g      |             |S c c}w c c}w )3Nsystem_instructionsystemInstructiontemperaturetop_ptopPtop_ktopKcandidate_countcandidateCountmax_output_tokensmaxOutputTokensstop_sequencesstopSequencesresponse_logprobsresponseLogprobslogprobspresence_penaltypresencePenaltyfrequency_penaltyfrequencyPenaltyseedresponse_mime_typeresponseMimeTyperesponse_schemaresponseSchemar   r   routing_configz8routing_config parameter is not supported in Gemini API.model_selection_configz@model_selection_config parameter is not supported in Gemini API.safety_settingssafetySettingstoolstool_config
toolConfiglabelsz0labels parameter is not supported in Gemini API.cached_contentcachedContentresponse_modalitiesresponseModalitiesmedia_resolutionmediaResolutionspeech_configspeechConfigaudio_timestampz9audio_timestamp parameter is not supported in Gemini API.thinking_configthinkingConfig)r#   r$   rZ   t	t_contentr~   t_schemar2   r   t_toolsr   t_toolr   t_cached_content_namer   t_speech_configr   r   r   r   r&   rY   s        r'   _GenerateContentConfig_to_mldevr2    sk   
 !)	+,-.:	KK[+?*@ABI	
 
+'3]OT+%GH	+y!-VHd;	:;	+y!-VHd;	:;	+)*+7%&[;L:M(NO	++,-9%&[;N:O(P 
+()*6_%tK:J9K'LM	++,-9	[./0 
+
|$0ZL${ZL"AB	+*+,8%&[;M:N(O 
++,-9	[./0 
+x ,VHd;9:	+,-.:	[/01 
+)*+7	JJz46G5H#IJ	
 
+./0<	[123 
+()*6
O
PP	+012>
J  
+)*+7	 [+<*=>	
 $D)4	
 
+y!-		 		*d;	.JK	
 188J5yA	
 
+'3	T+?K 
+z".
G
HH	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5	d;0ABCY	
 
+)*+7
C  
+)*+7	 012I	
 
M	
	
s   R''R,c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Dt        |dgt        j                  t        |dg            D cg c]  }t        ||       c}       t        |dg      $t        |dgt        | t        |dg      |             |S c c}w Nmodel_urlcontentsconfiggenerationConfig)r#   r$   r*  t_model
t_contentsrZ   r2  r1  s        r'   #_GenerateContentParameters_to_mldevr<  N  s    
 !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 dI.	
 
+z".	'[8*5y	
 
	
   5Cc                 T   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | d	g      t        d
      |S )N	task_type
requests[]taskTyper|   output_dimensionalityoutputDimensionalityr/   z3mime_type parameter is not supported in Gemini API.auto_truncatez7auto_truncate parameter is not supported in Gemini API.r#   r$   r2   r%   s      r'   _EmbedContentConfig_to_mldevrF  q  s     !)	+}%1	z"[;-( 
+y!-w/kG91MN	+/01=	-.[234 
+}%1
J
KK	+()5
N
OO	r*   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      #t        |dgt        t        |dg      |             t        |ddgt        j                  | t        |dg                   |S )Nr5  r6  r7  r@  contentr8  )r#   r$   r*  r:  t_contents_for_embedrF  r   r   r   r&   s       r'    _EmbedContentParameters_to_mldevrK    s    
 !)	+y!-				*d;	:; 
+
|$0	y!	z4j\+JK 
+z".	
$T+z%BIN Wii
Dwi89
 
r*   c                    i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        |dd	gt        | dg             t        | d
g      t        |ddgt        | d
g             t        | dg      t        d      t        | dg      0t        t        | dg             t        |ddgt        | dg             t        | dg      0t	        t        | dg             t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        d       |S )!Noutput_gcs_uri8output_gcs_uri parameter is not supported in Gemini API.negative_promptz9negative_prompt parameter is not supported in Gemini API.number_of_imagesr   sampleCountaspect_ratioaspectRatioguidance_scaleguidanceScaler  .seed parameter is not supported in Gemini API.safety_filter_levelsafetySettingperson_generationpersonGenerationinclude_safety_attributesincludeSafetyAttributesinclude_rai_reasonincludeRaiReasonlanguageoutput_mime_typer   outputOptionsr0   output_compression_qualityr   rb  compressionQualityadd_watermarkz7add_watermark parameter is not supported in Gemini API.
image_sizesampleImageSizeenhance_promptz8enhance_prompt parameter is not supported in Gemini API.)r#   r2   r$   )_SafetyFilterLevel_to_mldev_enum_validate(_PersonGeneration_to_mldev_enum_validater%   s      r'   _GenerateImagesConfig_to_mldevrl    s    !)	+()*6
O
PP	+)*+7
C  
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,
E
FF	+-./;-[012 		'[012 
++,-9,[./0 		)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5
N
OO	+~&2	()[<.) 
+()*6
O
PP	r*   c                 .   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      #t        |dgt	        t        |dg      |             |S Nr5  r6  promptinstances[0]r8  )r#   r$   r*  r:  rl  rJ  s       r'   "_GenerateImagesParameters_to_mldevrq  !  s    
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z".	
&xj)9	
 
r*   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S Nr5  r6  r<   r8  r#   r$   r*  r:  rJ  s       r'   _GetModelParameters_to_mldevru  =  p    
 !)	+y!-				*d;	:; 
+z".XJ[8* =>	r*   c                 j   i }t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      .t        |dd	gt        j                  | t        |dg                   |S 
N	page_size_querypageSize
page_token	pageTokenfilter
query_baser6  
models_urlr#   r$   r*  t_models_urlrJ  s       r'   _ListModelsConfig_to_mldevr  P      
 !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".8,d;
.KL	+~&2		z4l^#DE 
r*   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S Nr8  )r#   r$   r  rJ  s       r'   _ListModelsParameters_to_mldevr  p  sH    
 !)	+z".	
"[8*5y	
 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nr,   displayNamerc   default_checkpoint_iddefaultCheckpointIdr"   r%   s      r'   _UpdateModelConfig_to_mldevr         !)	+'(4kN;K)LM	+'3kM?)KL	+/01=	[234 
r*   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      #t        |dgt	        t        |dg      |             |S rs  )r#   r$   r*  r:  r  rJ  s       r'   _UpdateModelParameters_to_mldevr    s~    
 !)	+y!-				*d;	:; 
+z".	
#Dxj$A9M 
r*   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S rs  rt  rJ  s       r'   _DeleteModelParameters_to_mldevr    rv  r*   c                     i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      |S )Nr   z<system_instruction parameter is not supported in Gemini API.r  z/tools parameter is not supported in Gemini API.generation_configz;generation_config parameter is not supported in Gemini API.)r#   r2   r%   s      r'   _CountTokensConfig_to_mldevr    sp     !)	+,-.:
F  
+y!-
F
GG	++,-9
E  
r*   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Dt        |dgt        j                  t        |dg            D cg c]  }t        ||       c}       t        |dg      #t        |dgt        t        |dg      |             |S c c}w Nr5  r6  r7  r8  )r#   r$   r*  r:  r;  rZ   r  r1  s        r'   _CountTokensParameters_to_mldevr    s    
 !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 dI.	
 
+z".	
#Dxj$A9M 
	
   5Cc           
          i }t        | dg      t        d      t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Ngcs_uriz1gcs_uri parameter is not supported in Gemini API.image_bytesbytesBase64Encodedr/   r0   )r#   r2   r$   base_tt_bytesr%   s      r'   _Image_to_mldevr    s     !)	+	{#/
H
II	+'3	tK-9: 
+}%1ZL${[M"BC	r*   c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      $t        |ddgt        t        | dg      |             t        | dg      t        d      |S )Nro  rp  imagevideo/video parameter is not supported in Gemini API.)r#   r$   r  r2   r%   s      r'   _GenerateVideosSource_to_mldevr    s     !)	+z".14hZ3P 
+y!-	![7)4i@ 
+y!-
F
GG	r*   c                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dd	gt        | dg             t        | d
g      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      t        | dg      t        d       |S )!Nnumber_of_videosr   rQ  rM  rN  r   z-fps parameter is not supported in Gemini API.duration_secondsdurationSecondsr  rV  rR  rS  
resolutionrY  rZ  pubsub_topicz6pubsub_topic parameter is not supported in Gemini API.rO  negativePromptri  enhancePromptgenerate_audioz8generate_audio parameter is not supported in Gemini API.
last_framez4last_frame parameter is not supported in Gemini API.reference_imagesz:reference_images parameter is not supported in Gemini API.maskz.mask parameter is not supported in Gemini API.compression_qualityz=compression_quality parameter is not supported in Gemini API.rE  r%   s      r'   _GenerateVideosConfig_to_mldevr  %  s    !)	+*+,8	}%[-./ 
+()*6
O
PP	+w+
D
EE	+*+,8	()[-./ 
+x ,
E
FF	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4
M
NN	+)*+7	'([,-. 
+()*6	'[+,- 
+()*6
O
PP	+~&2
K
LL	+*+,8
D  
+x ,
E
FF	+-./;
G  
r*   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      $t        |ddgt	        t        |dg      |             t        |dg      t        d      t        |dg      #t        |d	gt        t        |dg      |             t        |d	g      #t        |d	gt        t        |d	g      |             |S )
Nr5  r6  ro  rp  r  r  r  sourcer8  )r#   r$   r*  r:  r  r2   r  r  rJ  s       r'   "_GenerateVideosParameters_to_mldevr  ~  s3   
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	![7)4i@ 
+y!-
F
GG	+z".	
&xj)9	
 
+z".	
&xj)9	
 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r   r"   r%   s      r'   _VideoMetadata_to_vertexr    r)   r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr,   r  r.   r/   r0   r"   r%   s      r'   _Blob_to_vertexr    s     !)	+'(4]OT+7G%HI	+x ,VHd;9:	+}%1ZL${[M"BC	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr,   r  r5   r6   r/   r0   r"   r%   s      r'   _FileData_to_vertexr    s     !)	+'(4]OT+7G%HI	+
|$0YKkJ<!@A	+}%1ZL${[M"BC	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r9   r"   r%   s      r'   _FunctionCall_to_vertexr    r>   r*   c           
      R   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      t        |d	gt        | dg             t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r@   )r#   r$   r  r  r  r  r%   s      r'   _Part_to_vertexr    s    !)	+()*6	 /019	
 
+	{#/YKkI;!?@	+'3	[=/:IF 
+}%1	D{m<iH 
++,-9	[./0 
+()5	/0)	
 
+/01=	[234 
+)*+7%&[;L:M(NO	++,-9	[./0 
+x ,VHd;9:	r*   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w rU   )r#   r$   r  rX   s       r'   _Content_to_vertexr  7  s     !)	+y!-		 [7)4	
 D),	
 
+x ,VHd;9:		
r[   c                 v   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        |d	gt        | d	g             t        | d
g      t        |d
gt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d g      t        |d gt        | d g             t        | d!g      t        |d!gt        | d!g             t        | d"g      t        |d"gt        | d"g             |S )#Nr]   additionalPropertiesr^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r"   r%   s      r'   _Schema_to_vertexr  L  s    !)	+/01=	 [234 
+x ,VHd;9:	+w+UGT+w78	+z".WItK(<=	+	{#/YKkI;!?@	+'3]OT+%GH	+x ,VHd;9:	+	{#/YKkI;!?@	+z".XJ[8* =>	+y!-WItK';<	+}%1ZL${[M"BC	+~&2[M4l^#DE	+()*6_%tK:J9K'LM	+	{#/YKkI;!?@	+}%1ZL${[M"BC	+~&2[M4l^#DE	+()*6_%tK:J9K'LM	+	{#/YKkI;!?@	+
|$0ZL${ZL"AB	+	{#/YKkI;!?@	+~&2\ND|n$EF	++,-9	[./0 
+
|$0ZL${ZL"AB	+y!-WItK';<	+x ,VHd;9:	r*   c                 V    i }t        | dg      t        |dgt        | dg             |S )Nfeature_selection_preferencefeatureSelectionPreferencer"   r%   s      r'   _ModelSelectionConfig_to_vertexr    sA     !)	+678D	%&[9:; 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr   r   r   r"   r%   s      r'   _SafetySetting_to_vertexr    s     !)	+z".XJ[8* =>	+
|$0ZL${ZL"AB	+}%1[M4k]#CD	r*   c                    i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        |d
gt        | d	g             |S )Nr   z1behavior parameter is not supported in Vertex AI.rc   r<   r   r   r   r   r   r   r1   r%   s      r'   _FunctionDeclaration_to_vertexr    s&    !)	+
|$0
H
II	+'3]OT+%GH	+x ,VHd;9:	+~&2\ND|n$EF	+012>	 [345 
+
|$0ZL${ZL"AB	+./0<	[123 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r   r"   r%   s      r'   _Interval_to_vertexr    r   r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nr   r   r   excludeDomains)r#   r$   r  r%   s      r'   _GoogleSearch_to_vertexr    sw     !)	++,-9	234i	
 
+)*+7%&[;L:M(NO	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r   r"   r%   s      r'   !_DynamicRetrievalConfig_to_vertexr    r   r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S r   )r#   r$   r  r%   s      r'    _GoogleSearchRetrieval_to_vertexr     sK     !)	+234@	!")9:;Y	
 
r*   c                 V    i }t        | dg      t        |dgt        | dg             |S )Nr   r  r"   r%   s      r'   _EnterpriseWebSearch_to_vertexr  1  s;     !)	+)*+7%&[;L:M(NO	r*   c                 V    i }t        | dg      t        |dgt        | dg             |S )Napi_key_stringapiKeyStringr"   r%   s      r'   _ApiKeyConfig_to_vertexr  <  s:     !)	+()*6^$d;9I8J&KL	r*   c           
         i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        |d
gt        | d	g             t        | dg      t        |dgt        | dg             |S )Napi_key_configapiKeyConfig	auth_typeauthTypegoogle_service_account_configgoogleServiceAccountConfighttp_basic_auth_confighttpBasicAuthConfigoauth_configoauthConfigoidc_config
oidcConfig)r#   r$   r  r%   s      r'   _AuthConfig_to_vertexr  G  s#    !)	+()*6	/019	
 
+}%1ZL${[M"BC	+789E	%&[:;< 
+012>	[345 
+'(4]OT+7G%HI	+'3\ND}o$FG	r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S )Nauth_config
authConfig)r#   r$   r  r%   s      r'   _GoogleMaps_to_vertexr  o  sC     !)	+'3	d;@)L 
r*   c                 
    i }|S r   r   r%   s      r'   _UrlContext_to_vertexr  ~  r   r*   c                 V    i }t        | dg      t        |dgt        | dg             |S r   r"   r%   s      r'   _ToolComputerUse_to_vertexr    r   r*   c                 h   i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      #t        |d	gt        t        | dg      |             t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S c c}w )Nr   r   r   r   r   r   r   r   enterpriseWebSearchr   
googleMapsr   r   r   r   r   r   )	r#   r$   r  r  r  r  r  r  r  rX   s       r'   _Tool_to_vertexr    s    !)	+/01=	  [+B*CD	
 +4;	
 
+}%1[M4k]#CD	+()5	/0)	
 
+123?	 !(89:I	
 
+/01=	&678)	
 
+'3	d;@)L 
+'3	d;@)L 
+'(4	"~./	
 
+()*6_%tK:J9K'LM	}	
s   F/c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r   r"   r%   s      r'    _FunctionCallingConfig_to_vertexr    r   r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r   r"   r%   s      r'   _LatLng_to_vertexr    r   r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S r   )r#   r$   r  r%   s      r'   _RetrievalConfig_to_vertexr    sl     !)	+	{#/	
${YK8)D 
+()5^$d;8I&JK	r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             |S r   )r#   r$   r  r  r%   s      r'   _ToolConfig_to_vertexr    s     !)	+123?	 !(89:I	
 
+*+,8	"123Y	
 
r*   c                 V    i }t        | dg      t        |dgt        | dg             |S r   r"   r%   s      r'   _PrebuiltVoiceConfig_to_vertexr   (  r   r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S r   )r#   r$   r   r%   s      r'   _VoiceConfig_to_vertexr  3  sK     !)	+/01=	&678)	
 
r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Nr   r   r   zCmulti_speaker_voice_config parameter is not supported in Vertex AI.r   r   )r#   r$   r  r2   r%   s      r'   _SpeechConfig_to_vertexr  D  s     !)	+'(4	tK.1ABIN 
+456B
M  
+()5^$d;8I&JK	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r   r"   r%   s      r'   _ThinkingConfig_to_vertexr  [  r   r*   c                 	   i }t        |dg      6t        |dgt        t        j                  t        |dg            |             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |d	gt        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      7t        |dgt        t        j                  | t        |dg            |             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      #t        |dgt        t        |dg      |             t        |d g      1t        |d!gt        |d g      D cg c]  }t        ||       c}       t        |d"g      Yt        |d"gt        j                  | t        |d"g            D cg c]"  }t        t        j                  | |      |      $ c}       t        |d#g      #t        |d$gt        t        |d#g      |             t        |d%g      t        |d%gt        |d%g             t        |d&g      -t        |d'gt        j                  | t        |d&g                   t        |d(g      t        |d)gt        |d(g             t        |d*g      t        |d+gt        |d*g             t        |d,g      6t        |d-gt        t        j                  t        |d,g            |             t        |d.g      t        |d/gt        |d.g             t        |d0g      #t        |d1gt!        t        |d0g      |             |S c c}w c c}w )2Nr   r   r   r  r  r  r  r  r  r  r  r	  r
  r  r  r  r  r  r  r  r  r  r  r  r  r   r   r  routingConfigr  modelConfigr  r  r  r  r  r  r  r   r!  r"  r#  r$  r%  r&  r'  audioTimestampr(  r)  )r#   r$   r  r*  r+  r  r,  r  r  r-  r  r.  r  r/  r  r0  r  r1  s        r'    _GenerateContentConfig_to_vertexr  k  s   
 !)	+,-.:	KK[+?*@ABI	
 
+'3]OT+%GH	+y!-VHd;	:;	+y!-VHd;	:;	+)*+7%&[;L:M(NO	++,-9%&[;N:O(P 
+()*6_%tK:J9K'LM	++,-9	[./0 
+
|$0ZL${ZL"AB	+*+,8%&[;M:N(O 
++,-9	[./0 
+x ,VHd;9:	+,-.:	[/01 
+)*+7	JJz46G5H#IJ	
 
+./0<	[123 
+()*6_%tK:J9K'LM	+012>	'7899	
 
+)*+7	 [+<*=>	
 %T95	
 
+y!-		 		*d;	.JK	
 AHHZ6	B	
 
+'3	d;@)L 
+z".
Dxj$AB	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5	d;0ABCY	
 
+)*+7%&[;L:M(NO	+)*+7	!012I	
 
I	
	
s   2S)'S.c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Dt        |dgt        j                  t        |dg            D cg c]  }t        ||       c}       t        |dg      $t        |dgt        | t        |dg      |             |S c c}w r4  )r#   r$   r*  r:  r;  r  r  r1  s        r'   $_GenerateContentParameters_to_vertexr  	  s    
 !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 tY/	
 
+z".	([8*5y	
 
	
r=  c                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd
gt        | d	g             |S )Nr?  instances[]r|   rB  r   rC  r/   r0   rD  autoTruncater"   r%   s      r'   _EmbedContentConfig_to_vertexr  :	  s     !)	+}%1	$[;-( 
+y!-0${WI2NO	+/01=	-.[234 
+}%1	
#[;-( 
+()5	~&[?+, 
r*   c                 V   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      #t        |dgt        t        |dg      |             |S )Nr5  r6  r7  r  rH  r8  )r#   r$   r*  r:  rI  r  rJ  s       r'   !_EmbedContentParameters_to_vertexr  b	  s    
 !)	+y!-				*d;	:; 
+
|$0		"	z4j\+JK 
+z".	
%d;
&CYO 
r*   c                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dd	gt        | dg             t        | d
g      t        |ddgt        | d
g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             |S ) NrM  r   
storageUrirO  r  rP  rQ  rR  rS  rT  rU  r  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rc  rd  rf  addWatermarkrg  rh  ri  r  r"   r%   s      r'   _GenerateImagesConfig_to_vertexr  	  s3    !)	+()*6	|$[+,- 
+)*+7	'([,-. 
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5	~&[?+, 
+~&2	()[<.) 
+()*6	'[+,- 
r*   c                 .   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      #t        |dgt	        t        |dg      |             |S rn  )r#   r$   r*  r:  r  rJ  s       r'   #_GenerateImagesParameters_to_vertexr  	  s    
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z".	
'xj)9	
 
r*   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  gcsUrir  r  r/   r0   r#   r$   r  r  r%   s      r'   _Image_to_vertexr  
  s     !)	+	{#/XJ[9+ >?	+'3	tK-9: 
+}%1ZL${[M"BC	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N	mask_modemaskModesegmentation_classesmaskClassesmask_dilationdilationr"   r%   s      r'   _MaskReferenceConfig_to_vertexr%  &
  s     !)	+}%1ZL${[M"BC	+./0<M?D7M6N$O 
+()5ZL${_4E"FG	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Ncontrol_typecontrolType enable_control_image_computationcomputeControlr"   r%   s      r'   !_ControlReferenceConfig_to_vertexr+  9
  si     !)	+'(4]OT+7G%HI	+:;<H	[=>? 
r*   c                 V    i }t        | dg      t        |dgt        | dg             |S )Nstyle_descriptionstyleDescriptionr"   r%   s      r'   _StyleReferenceConfig_to_vertexr/  K
  sA     !)	++,-9	[./0 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nsubject_typesubjectTypesubject_descriptionsubjectDescriptionr"   r%   s      r'   !_SubjectReferenceConfig_to_vertexr5  Z
  si     !)	+'(4]OT+7G%HI	+-./;	[012 
r*   c           
         i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | d	g      #t        |d
gt	        t        | d	g      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             |S )Nreference_imagereferenceImagereference_idreferenceIdreference_typereferenceTypemask_image_configmaskImageConfigcontrol_image_configcontrolImageConfigstyle_image_configstyleImageConfigsubject_image_configsubjectImageConfig)r#   r$   r  r%  r+  r/  r5  r%   s      r'   _ReferenceImageAPI_to_vertexrE  l
  s    !)	+)*+7	k,=+>?K 
+'(4]OT+7G%HI	+()*6_%tK:J9K'LM	++,-9	&234i	
 
+./0<	)567	
 
+,-.:	'345y	
 
+./0<	)567	
 
r*   c                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dd	gt        | dg             t        | d
g      t        |ddgt        | d
g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             |S ) NrM  r   r  rO  r  rP  rQ  rR  rS  rT  rU  r  rW  rX  rY  rZ  r[  r\  r]  r^  r_  r`  ra  rc  rd  rf  r  	edit_modeeditMode
base_stepsr   
editConfig	baseStepsr"   r%   s      r'   _EditImageConfig_to_vertexrM  
  s)    !)	+()*6	|$[+,- 
+)*+7	'([,-. 
+*+,8	}%[-./ 
+'(4	}%[>*+ 
+()*6	'[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+345A	01[678 
+,-.:	)*[/01 
+
|$0	z"[:,' 
+*+,83[-./ 
+456B=[789 
+()5	~&[?+, 
+}%1	z"[;-( 
+~&21[<.) 
r*   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      2t        |ddgt        |dg      D cg c]  }t	        ||       c}       t        |dg      #t        |dgt        t        |dg      |             |S c c}w )Nr5  r6  ro  rp  r  referenceImagesr8  )r#   r$   r*  r:  rE  rM  r1  s        r'   _EditImageParameters_to_vertexrP    s    
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+*+,8	*+ [+=*>?	
 )y9	
 
+z".	
"4hZ#@)L 
	
s   
Cc                 z   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g d	t        | dg             t        | d
g      t        |g dt        | d
g             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             |S )NrM  r   r  r]  r^  r`  ra  rc  rd  enhance_input_image)r   upscaleConfigenhanceInputImageimage_preservation_factor)r   rS  imagePreservationFactorrP  rQ  r   r"   r%   s      r'    _UpscaleImageAPIConfig_to_vertexrW  >  s    !)	+()*6	|$[+,- 
+,-.:	)*[/01 
+*+,83[-./ 
+456B=[789 
+-./;<[012 
+345AB[678 
+*+,8	}%[-./ 
+x ,v.[6(0KL	r*   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      $t        |ddgt	        t        |dg      |             t        |dg      t        |g dt        |dg             t        |dg      #t        |dgt        t        |dg      |             |S )Nr5  r6  r  rp  upscale_factor)r   rS  upscaleFactorr8  )r#   r$   r*  r:  r  rW  rJ  s       r'   $_UpscaleImageAPIParameters_to_vertexr[  {  s    
 !)	+y!-				*d;	:; 
+y!-	!kG95yA 
+()*68[+,- 
+z".	
(xj)9	
 
r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S )Nproduct_imager  r#   r$   r  r%   s      r'   _ProductImage_to_vertexr_    sE     !)	+()5		kO+<=yI 
r*   c                 B   i }t        | dg      t        |ddgt        | dg             t        | dg      $t        |g dt        t        | dg      |             t        | dg      2t        |ddgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nro  rp  person_image)rp  personImager  product_imagesproductImages)r#   r$   r  r_  rX   s       r'   _RecontextImageSource_to_vertexre    s     !)	+z".14hZ3P 
+'(40kN+;<iH 
+()*6	) [+;*<=	
 $D)4	
 
	
s    Bc                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd
gt        | d	g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |ddgt        | dg             |S )NrP  r   rQ  rI  rJ  rM  r  r  rW  rX  rY  rZ  rf  r  r`  ra  rc  rd  ri  r  r"   r%   s      r'   _RecontextImageConfig_to_vertexrg    s    !)	+*+,8	}%[-./ 
+~&21[<.) 
+()*6	|$[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+()5	~&[?+, 
+*+,83[-./ 
+456B=[789 
+()*6	'[+,- 
r*   c                 @   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      #t        |dgt	        t        |dg      |             t        |dg      #t        |dgt        t        |dg      |             |S Nr5  r6  r  r8  )r#   r$   r*  r:  re  rg  rJ  s       r'   #_RecontextImageParameters_to_vertexrj    s    
 !)	+y!-				*d;	:; 
+z".	
'xj)9	
 
+z".	
'xj)9	
 
r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S )Nr  r^  r%   s      r'   _ScribbleImage_to_vertexrl  <  sC     !)	+y!-		kG95yA 
r*   c           
         i }t        | dg      t        |ddgt        | dg             t        | dg      $t        |ddgt        t        | dg      |             t        | dg      $t        |ddgt        t        | dg      |             |S )Nro  rp  r  scribble_imagescribble)r#   r$   r  rl  r%   s      r'   _SegmentImageSource_to_vertexrp  K  s     !)	+z".14hZ3P 
+y!-	!kG95yA 
+()*6	$ /019	
 
r*   c                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd
gt        | d	g             |S )Nr   r   max_predictionsmaxPredictionsconfidence_thresholdconfidenceThresholdr#  maskDilationbinary_color_thresholdbinaryColorThresholdr"   r%   s      r'   _SegmentImageConfig_to_vertexry  h  s	    !)	+x ,v.[6(0KL	+)*+7	'([,-. 
+./0<	,-[123 
+()5	~&[?+, 
+012>	-.[345 
r*   c                 @   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      #t        |dgt	        t        |dg      |             t        |dg      #t        |dgt        t        |dg      |             |S ri  )r#   r$   r*  r:  rp  ry  rJ  s       r'   !_SegmentImageParameters_to_vertexr{    s    
 !)	+y!-				*d;	:; 
+z".	
%d;
&CYO 
+z".	
%d;
&CYO 
r*   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S rs  rt  rJ  s       r'   _GetModelParameters_to_vertexr}    rv  r*   c                 j   i }t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      .t        |dd	gt        j                  | t        |dg                   |S rx  r  rJ  s       r'   _ListModelsConfig_to_vertexr    r  r*   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S r  )r#   r$   r  rJ  s       r'   _ListModelsParameters_to_vertexr    sH    
 !)	+z".	
#[8*5y	
 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r  r"   r%   s      r'   _UpdateModelConfig_to_vertexr    r  r*   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      #t        |dgt	        t        |dg      |             |S )Nr5  r6  r8  )r#   r$   r*  r:  r  rJ  s       r'    _UpdateModelParameters_to_vertexr  	  s~    
 !)	+y!-				*d;	:; 
+z".	
$T+z%BIN 
r*   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S rs  rt  rJ  s       r'    _DeleteModelParameters_to_vertexr     rv  r*   c                 b   i }t        | dg      6t        |dgt        t        j                  t        | dg            |             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w )Nr   r   r  r  r9  )r#   r$   r  r*  r+  r  rX   s       r'   _CountTokensConfig_to_vertexr  3  s     !)	+,-.:	KK[+?*@ABI	
 
+y!-		 [7)4	
 D),	
 
++,-9	[./0 
	
s   *B,c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Dt        |dgt        j                  t        |dg            D cg c]  }t        ||       c}       t        |dg      #t        |dgt        t        |dg      |             |S c c}w r  )r#   r$   r*  r:  r;  r  r  r1  s        r'    _CountTokensParameters_to_vertexr  V  s    
 !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 tY/	
 
+z".	
$T+z%BIN 
	
r  c                 x   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Dt        |dgt        j                  t        |dg            D cg c]  }t        ||       c}       t        |dg      t        |dgt        |dg             |S c c}w r  )r#   r$   r*  r:  r;  r  r1  s        r'   "_ComputeTokensParameters_to_vertexr  w  s    
 !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 tY/	
 
+z".XJ[8* =>		
s   5B7c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nurir  video_bytesr  r/   r0   r  r%   s      r'   _Video_to_vertexr    s     !)	+w+XJ[5' :;	+'3	tK-9: 
+}%1ZL${[M"BC	r*   c           
         i }t        | dg      t        |ddgt        | dg             t        | dg      $t        |ddgt        t        | dg      |             t        | dg      $t        |ddgt        t        | dg      |             |S )Nro  rp  r  r  )r#   r$   r  r  r%   s      r'   _GenerateVideosSource_to_vertexr    s     !)	+z".14hZ3P 
+y!-	!kG95yA 
+y!-	!kG95yA 
r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nr  r;  r<  r^  r%   s      r'   (_VideoGenerationReferenceImage_to_vertexr    sn     !)	+y!-		kG95yA 
+()*6_%tK:J9K'LM	r*   c           
          i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nr  _selfr  r   r^  r%   s      r'   _VideoGenerationMask_to_vertexr    si     !)	+y!-		kG95yA 
+}%1ZL${[M"BC	r*   c                 L   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd	gt        | d	g             t        | d
g      t        |ddgt        | d
g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      $t        |ddgt        t        | dg      |             t        | dg      2t        |ddgt        | dg      D cg c]  }t        ||       c}       t        | dg      $t        |ddgt	        t        | dg      |             t        | dg      t        |ddgt        | dg             |S c c}w )Nr  r   rQ  rM  r  r   r  r  r  rR  rS  r  rY  rZ  r  pubsubTopicrO  r  ri  r  r  generateAudior  rp  	lastFramer  rO  r  r  re  )r#   r$   r  r  r  rX   s       r'   _GenerateVideosConfig_to_vertexr    s]    !)	+*+,8	}%[-./ 
+()*6	|$[+,- 
+w+u-tK%/IJ	+*+,8	()[-./ 
+x ,v.[6(0KL	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4	}%[>*+ 
+)*+7	'([,-. 
+()*6	'[+,- 
+()*6	'[+,- 
+~&2	%kL>:IF 
+*+,8	*+ [+=*>?	
 5T9E	
 
+x ,	 &tK&'BIN 
+-./;	+,[012 
)	
s   -J!c                 R   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      $t        |ddgt	        t        |dg      |             t        |dg      $t        |ddgt        t        |dg      |             t        |dg      #t        |dgt        t        |dg      |             t        |dg      #t        |dgt        t        |dg      |             |S )	Nr5  r6  ro  rp  r  r  r  r8  )r#   r$   r*  r:  r  r  r  r  rJ  s       r'   #_GenerateVideosParameters_to_vertexr  \  sO   
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	!kG95yA 
+y!-	!kG95yA 
+z".	
'xj)9	
 
+z".	
'xj)9	
 
r*   
enum_valuec                 <    | t        dg      v rt        |  d      y )N
BLOCK_NONE+ enum value is not supported in Gemini API.setr2   r  s    r'   rj  rj    s)    3~&&

|#NO
PP 'r*   c                 <    | t        dg      v rt        |  d      y )N	ALLOW_ALLr  r  r  s    r'   rk  rk    s)    3}%%

|#NO
PP &r*   c                 >    | t        g d      v rt        |  d      y )N)UNSPECIFIEDBLOCKINGNON_BLOCKINGz* enum value is not supported in Vertex AI.r  r  s    r'   !_Behavior_to_vertex_enum_validater    s)    3BCC

|#MN
OO Dr*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nr   r   r   r!   r    r"   r%   s      r'   _VideoMetadata_from_mldevr         !)	+w+UGT+w78	+}%1\ND{m$DE	+'3^$d;&HI	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr.   r0   r/   r"   r%   s      r'   _Blob_from_mldevr    s[     !)	+x ,VHd;9:	+
|$0[M4j\#BC	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr6   r5   r0   r/   r"   r%   s      r'   _FileData_from_mldevr    s[     !)	+	{#/ZL${YK"@A	+
|$0[M4j\#BC	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r9   r"   r%   s      r'   _FunctionCall_from_mldevr    r>   r*   c           
      R   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      t        |d	gt        | dg             t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S NrB   rA   rC   rE   rD   rG   rF   rI   rH   rK   rJ   rM   rL   rO   rN   rQ   rP   rR   )r#   r$   r  r  r  r  r%   s      r'   _Part_from_mldevr    s    !)	+()5	!/0)	
 
+	{#/YKkI;!?@	+~&2	kL>:IF 
+
|$0	T+
|<iH 
+*+,8	[-./ 
+'(4	 ~./	
 
+-./;	 ![012 
+()*6&'k<L;M)NO	+*+,8	[-./ 
+x ,VHd;9:	r*   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w rU   )r#   r$   r  rX   s       r'   _Content_from_mldevr  $  s     !)	+y!-		 [7)4	
 T9-	
 
+x ,VHd;9:		
r[   c                 V    i }t        | dg      t        |dgt        | dg             |S )NcitationSources	citationsr"   r%   s      r'   _CitationMetadata_from_mldevr  9  s9     !)	+)*+7[M46G5H#IJ	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S NretrievedUrlretrieved_urlurlRetrievalStatusurl_retrieval_statusr"   r%   s      r'   _UrlMetadata_from_mldevr  D  j     !)	+'(4_%tK.9I'JK	+,-.:	 [/01 
r*   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w NurlMetadataurl_metadata)r#   r$   r  rX   s       r'   _UrlContextMetadata_from_mldevr  V  s^     !)	+'3	 [=/:	
 $D)4	
 
	
r   c           
      >   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |d	gt	        t        | dg      |             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )NrH  citationMetadatacitation_metadata
tokenCounttoken_countfinishReasonfinish_reasonurlContextMetadataurl_context_metadataavgLogprobsavg_logprobsgroundingMetadatagrounding_metadataindexlogprobsResultlogprobs_resultsafetyRatingssafety_ratings)r#   r$   r  r  r  r%   s      r'   _Candidate_from_mldevr  h  s    !)	+	{#/	Dyk:IF 
+*+,8	$123Y	
 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	+,-.:	 &345y	
 
+'3^$d;&HI	++,-9	[./0 
+y!-WItK';<	+()*6&'k<L;M)NO	+()5%&[?:K(LM	r*   c                    i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             |S c c}w )NsdkHttpResponsesdk_http_response
candidatesmodelVersionmodel_versionpromptFeedbackprompt_feedback
responseIdresponse_idusageMetadatausage_metadata)r#   r$   r  rX   s       r'   #_GenerateContentResponse_from_mldevr    s3    !)	+)*+7'(${=N<O*P 
+~&2	 [<.9	
 "$	2	
 
+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	%	
s   Dc                 V    i }t        | dg      t        |dgt        | dg             |S )Nvaluesr"   r%   s      r'   _ContentEmbedding_from_mldevr    s5     !)	+z".XJ[8* =>	r*   c                 
    i }|S r   r   r%   s      r'    _EmbedContentMetadata_from_mldevr    r   r*   c                 <   i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      #t        |dgt        t        | dg      |             |S c c}w )Nr  r  
embeddingsmetadata)r#   r$   r  r  rX   s       r'    _EmbedContentResponse_from_mldevr    s     !)	+)*+7'(${=N<O*P 
+~&2	 [<.9	
 )y9	
 
+
|$0	(zl+Y	
 
	
   Bc           
          i }t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r0   r/   r  r%   s      r'   _Image_from_mldevr    so     !)	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r*   c           	          i }t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             t        | dg      t        |dgt        | dg             |S NsafetyAttributes
categoriesscorescontentTypecontent_typer"   r%   s      r'   _SafetyAttributes_from_mldevr         !)	+*L9:F	[-|<= 
+*H56BH:tK2Dh1OP 
+'3^$d;&HI	r*   c           
         i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             |S )Nr  r  raiFilteredReasonrai_filtered_reasonsafety_attributes)r#   r$   r  r  r%   s      r'   _GeneratedImage_from_mldevr  #  s     !)	+y!-		${WI6	B 
++,-9	[./0 
+y!-	$T+y%A9M 
r*   c                 <   i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      #t        |dgt        t        | dg      |             |S c c}w Nr  r  predictionsgenerated_imagespositivePromptSafetyAttributes!positive_prompt_safety_attributes)r#   r$   r  r  rX   s       r'   "_GenerateImagesResponse_from_mldevr  @  s     !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 'tY7	
 
+89:F	,-$?@A9	
 
	
r  c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N	baseModel
base_model
createTimecreate_time
updateTimeupdate_timer"   r%   s      r'   _TunedModelInfo_from_mldevr  `  s     !)	+}%1\ND{m$DE	+~&2]OT+~%FG	+~&2]OT+~%FG	r*   c           
      ~   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             |S )Nr<   r  r,   rc   versionr  tuned_model_infoinputTokenLimitinput_token_limitoutputTokenLimitoutput_token_limitsupportedGenerationMethodssupported_actions)r#   r$   r  r%   s      r'   _Model_from_mldevr   q  sr    !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+	{#/YKkI;!?@	+y!-	"4gY#?K 
+)*+7'(${=N<O*P 
+*+,8	[-./ 
+456B	[789 
r*   c                 N   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      Dt        |dgt        j                  t        | dg            D cg c]  }t	        ||       c}       |S c c}w Nr  r  nextPageTokennext_page_tokenr  models)r#   r$   r*  t_extract_modelsr   rX   s       r'   _ListModelsResponse_from_mldevr'    s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+y!-	
 **4gY+GH	
 dI.	
 
	
   B"c                 V    i }t        | dg      t        |dgt        | dg             |S Nr  r  r"   r%   s      r'   _DeleteModelResponse_from_mldevr+    @     !)	+)*+7'(${=N<O*P 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr  r  totalTokenstotal_tokenscachedContentTokenCountcached_content_token_countr"   r%   s      r'   _CountTokensResponse_from_mldevr2    s     !)	+)*+7'(${=N<O*P 
+'3^$d;&HI	+123?	%&[456 
r*   c                    i }t        | ddg      t        |dgt        | ddg             t        | ddg      -t        |dgt        j                  t        | ddg                   t        | dg      t        |dgt        | dg             |S )Nr  r  encodedVideor  encodingr/   r  r%   s      r'   _Video_from_mldevr6    s     !)	+'(4UGT+/?@A	+01=	tK'>)BCD 
+
|$0[M4j\#BC	r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S Nr  r  )r#   r$   r6  r%   s      r'   _GeneratedVideo_from_mldevr9    sC     !)	+y!-		${WI6	B 
r*   c                 (   i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S c c}w )NgeneratedSamplesgenerated_videosraiMediaFilteredCountrai_media_filtered_countraiMediaFilteredReasonsrai_media_filtered_reasons)r#   r$   r9  rX   s       r'   "_GenerateVideosResponse_from_mldevrA    s     !)	+*+,8	 [+=*>?	
 'tY7	
 
+/01=	#$[234 
+123?	%&[456 
)	
   Bc                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | ddg      $t        |dgt        t        | ddg      |             t        | ddg      $t        |dgt        t        | ddg      |             |S )Nr<   r  doneerrorr   generateVideoResponseresult)r#   r$   rA  r%   s      r'   #_GenerateVideosOperation_from_mldevrH  !  s%    !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
$;<=I	*z+BCDi	
 
+
$;<=I	
*z+BCDi	
 
r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r  r"   r%   s      r'   _VideoMetadata_from_vertexrJ  G  r  r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr  r,   r.   r0   r/   r"   r%   s      r'   _Blob_from_vertexrL  X  s     !)	+'3^$d;&HI	+x ,VHd;9:	+
|$0[M4j\#BC	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr  r,   r6   r5   r0   r/   r"   r%   s      r'   _FileData_from_vertexrN  i  s     !)	+'3^$d;&HI	+	{#/ZL${YK"@A	+
|$0[M4j\#BC	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r9   r"   r%   s      r'   _FunctionCall_from_vertexrP  z  r>   r*   c           
      R   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt	        t        | dg      |             t        | dg      t        |d	gt        | dg             t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r  )r#   r$   rJ  rL  rN  rP  r%   s      r'   _Part_from_vertexrR    s    !)	+()5	"/0)	
 
+	{#/YKkI;!?@	+~&2	${\N;YG 
+
|$0	d;=yI 
+*+,8	[-./ 
+'(4	!~./	
 
+-./;	 ![012 
+()*6&'k<L;M)NO	+*+,8	[-./ 
+x ,VHd;9:	r*   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w rU   )r#   r$   rR  rX   s       r'   _Content_from_vertexrT    s     !)	+y!-		 [7)4	
 dI.	
 
+x ,VHd;9:		
r[   c                 V    i }t        | dg      t        |dgt        | dg             |S )Nr  r"   r%   s      r'   _CitationMetadata_from_vertexrV    s5     !)	+}%1[M4k]#CD	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r  r"   r%   s      r'   _UrlMetadata_from_vertexrX    r  r*   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w r  )r#   r$   rX  rX   s       r'   _UrlContextMetadata_from_vertexrZ    s^     !)	+'3	 [=/:	
 %T95	
 
	
r   c           
      >   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |d	gt	        t        | dg      |             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )NrH  r  r  finishMessagefinish_messager  r  r  r  r  r  r  r  r  r  r  r  r  )r#   r$   rT  rV  rZ  r%   s      r'   _Candidate_from_vertexr^    s    !)	+	{#/	T+	{;YG 
+*+,8	%123Y	
 
+()5%&[?:K(LM	+'(4_%tK.9I'JK	+,-.:	 '345y	
 
+'3^$d;&HI	++,-9	[./0 
+y!-WItK';<	+()*6&'k<L;M)NO	+()5%&[?:K(LM	r*   c                 X   i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             |S c c}w )Nr  r  r  r  r  r  r  r  r  r  r  r  r  )r#   r$   r^  rX   s       r'   $_GenerateContentResponse_from_vertexr`  O  sY    !)	+)*+7'(${=N<O*P 
+~&2	 [<.9	
 #43	
 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	+	
s   D'c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N	truncatedr  r"   r%   s      r'   '_ContentEmbeddingStatistics_from_vertexrc  u  s[     !)	+}%1[M4k]#CD	+'3]OT+%GH	r*   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             |S )Nr  
statistics)r#   r$   rc  r%   s      r'   _ContentEmbedding_from_vertexrf    sl     !)	+z".XJ[8* =>	+~&2	/|n-y	
 
r*   c                 V    i }t        | dg      t        |dgt        | dg             |S )NbillableCharacterCountbillable_character_countr"   r%   s      r'   !_EmbedContentMetadata_from_vertexrj    sA     !)	+012>	#$[345 
r*   c                 @   i }t        | dg      t        |dgt        | dg             t        | ddg      2t        |dgt        | ddg      D cg c]  }t        ||       c}       t        | dg      #t        |dgt        t        | dg      |             |S c c}w )Nr  r  zpredictions[]r  r  )r#   r$   rf  rj  rX   s       r'   !_EmbedContentResponse_from_vertexrl    s     !)	+)*+7'(${=N<O*P 
+67C	 [?L*IJ	
 *$	:	
 
+
|$0	)zl+Y	
 
	
s   Bc           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r0   r/   r  r%   s      r'   _Image_from_vertexrn    s     !)	+z".YKkH:!>?	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r*   c           	          i }t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             t        | dg      t        |dgt        | dg             |S r  r"   r%   s      r'   _SafetyAttributes_from_vertexrp    r  r*   c           
      b   i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r  ro  enhanced_prompt)r#   r$   rn  rp  r%   s      r'   _GeneratedImage_from_vertexrs    s     !)	+y!-		4gY7C 
++,-9	[./0 
+y!-	%d;	&BIN 
+z".&'kH:)FG	r*   c                 <   i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      #t        |dgt        t        | dg      |             |S c c}w r	  )r#   r$   rs  rp  rX   s       r'   #_GenerateImagesResponse_from_vertexru    s     !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 (i8	
 
+89:F	,-%?@A9	
 
	
r  c                     i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w Nr  r  r
  r  r#   r$   rs  rX   s       r'   _EditImageResponse_from_vertexry  2       !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 (i8	
 
	
   A)c                     i }t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w rw  rx  rX   s       r'   !_UpscaleImageResponse_from_vertexr}  I  rz  r{  c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nr
  r  rx  rX   s       r'   #_RecontextImageResponse_from_vertexr  `  s^     !)	+'3	 [=/:	
 (i8	
 
	
r   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nlabelscorer"   r%   s      r'   _EntityLabel_from_vertexr  r  s[     !)	+y!-WItK';<	+y!-WItK';<	r*   c                     i }t        | dg      #t        |dgt        t        | dg      |             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nr  r  r  )r#   r$   rn  r  rX   s       r'   _GeneratedImageMask_from_vertexr    s     !)	+y!-	4gY7C 
+z".	
 [8*5	
 %T95	
 
	
s   A3c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       |S c c}w )Nr
  generated_masks)r#   r$   r  rX   s       r'   !_SegmentImageResponse_from_vertexr    s^     !)	+'3	 [=/:	
 ,D)<	
 
	
r   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nendpointr<   deployedModelIddeployed_model_idr"   r%   s      r'   _Endpoint_from_vertexr    sf     !)	+
|$0VHd;=>	+)*+7'(${=N<O*P 
r*   c           	          i }t        | ddg      	 t        |dgt        | ddg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr  z&google-vertex-llm-tuning-base-model-idr  r  r  r  r  r"   r%   s      r'   _TunedModelInfo_from_vertexr    s     !)
;#KLM 		[8%MNO 
+~&2]OT+~%FG	+~&2]OT+~%FG	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )NcheckpointIdcheckpoint_idepochstepr"   r%   s      r'   _Checkpoint_from_vertexr    s     !)	+'(4_%tK.9I'JK	+y!-WItK';<	+x ,VHd;9:	r*   c                 >   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | d	g      t        |d	gt        | d	g             t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        |dgt        | dg             t        | dg      1t        |dgt        | dg      D cg c]  }t	        ||       c}       |S c c}w c c}w )Nr<   r  r,   rc   	versionIdr  deployedModels	endpointsr  r  r  r  r  checkpoints)r#   r$   r  r  r  rX   s       r'   _Model_from_vertexr    s    !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+}%1YKkK=!AB	+()*6	 [+;*<=	
 "$	2	
 
+z".XJ[8* =>	+y!-	#Dwi$@)L 
+-./;	 ![012 
+'3	 [=/:	
 $D)4	
 
C	
6	
s   ?F9Fc                 N   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      Dt        |dgt        j                  t        | dg            D cg c]  }t	        ||       c}       |S c c}w r"  )r#   r$   r*  r&  r  rX   s       r'   _ListModelsResponse_from_vertexr    s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+y!-	
 **4gY+GH	
 tY/	
 
	
r(  c                 V    i }t        | dg      t        |dgt        | dg             |S r*  r"   r%   s      r'    _DeleteModelResponse_from_vertexr  7  r,  r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr  r  r.  r/  r"   r%   s      r'    _CountTokensResponse_from_vertexr  D  sg     !)	+)*+7'(${=N<O*P 
+'3^$d;&HI	r*   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr  r  
tokensInfotokens_infor"   r%   s      r'   "_ComputeTokensResponse_from_vertexr  T  sf     !)	+)*+7'(${=N<O*P 
+~&2]OT+~%FG	r*   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r0   r/   r  r%   s      r'   _Video_from_vertexr  d  s     !)	+z".UGT+z:;	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r*   c           
      j    i }t        | dg      #t        |dgt        t        | dg      |             |S r8  )r#   r$   r  r%   s      r'   _GeneratedVideo_from_vertexr  y  sC     !)	+y!-		4gY7C 
r*   c                 (   i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S c c}w )Nvideosr<  r=  r>  r?  r@  )r#   r$   r  rX   s       r'   #_GenerateVideosResponse_from_vertexr    s     !)	+z".	 [8*5	
 (i8	
 
+/01=	#$[234 
+123?	%&[456 
)	
rB  c           
         i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      #t        |dgt        t        | dg      |             t        | dg      #t        |dgt        t        | dg      |             |S )Nr<   r  rD  rE  r   rG  )r#   r$   r  r%   s      r'   $_GenerateVideosOperation_from_vertexr    s    !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
|$0	+zl+Y	
 
+
|$0	
+zl+Y	
 
r*   c                   	   e Zd Zdddedeej                  ej                  f   deej                     dej                  fdZdddedeej                  ej                  f   deej                     deej                     fdZdddedeej                  ej                  f   deej                     dej                  fd	Zddded
edeej"                     dej$                  fdZddded
edeej*                     deej,                     dej.                  f
dZdddedej2                  dedeej4                     dej6                  f
dZdddedej:                  deej<                     dej>                  fdZ dddedejB                  deejD                     dejF                  fdZ$dddedeejJ                     dejL                  fdZ'dddeejP                     dejR                  fdZ*dddedeejV                     dejL                  fdZ,dddedeejZ                     dej\                  fdZ/dddedeej                  ej                  f   deej`                     dejb                  fdZ2dddedeej                  ej                  f   deejf                     dejh                  fdZ5ddddddded
ee   deej2                     deejl                     deejn                     deejp                     dejr                  fdZ:dddedej                  deej                     dej                  fdZ;dddedej                  deej                     deej                     fdZ<ddded
edeej"                     dej$                  fdZ=ddded
edeej*                     deej,                     dej.                  f
d Z>dddedej2                  dedeej~                     dej6                  f
d!Z@ddddddded
ee   deej2                     deejl                     deejn                     deejp                     dejr                  fd"ZAdddeejP                     deBejL                     fd#Zy)$ModelsNr8  r5  r7  r8  r   c                   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|@t!        |dd       r3t        j"                  |
	      }| j                  j%                  |       |S |
j&                  sd
nt)        j*                  |
j&                        }| j                  j                  rt-        |      }nt/        |      }t         j"                  j1                  ||j3                               }t        j4                  |
j6                        |_        | j                  j%                  |       |S Nr5  r7  r8  r6  z{model}:generateContentrz  ?r8  postshould_return_http_response)r   r   kwargsheaders)r   _GenerateContentParameters_api_clientvertexair  get
format_mapr<  r	   popr8  http_optionsr   convert_to_dictencode_unserializable_typesrequestgetattrGenerateContentResponse_verify_responsebodyjsonloadsr`  r  _from_response
model_dumpHttpResponser  r  selfr5  r7  r8  parameter_modelrequest_dictrequest_url_dictpathquery_paramsr  r   return_valueresponse_dicts                r'   _generate_contentzModels._generate_content  sB    66O   9


Ol &))&1	(334DE(8


Ol &))&1	(334DE(##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH g-t 22XNl
''5&mmBHMM1JM  :=Im :-Hm00??'A'A'C @ L &+%7%7  &L" 	%%l3r*   c             #     K   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }|t        |dd       rt!        d      | j                  j#                  d	|||	      D ]  }
|
j$                  sd
nt'        j(                  |
j$                        }| j                  j                  rt+        |      }nt-        |      }t         j.                  j1                  ||j3                               }t        j4                  |
j6                        |_        | j                  j;                  |       |  y w)Nr  r6  %{model}:streamGenerateContent?alt=sserz  r  r8  r  FAccessing the raw HTTP response is not supported in streaming methods.r  r  r  r  )r   r  r  r  r  r  r  r<  r	   r  r8  r  r   r  r  r  r2   request_streamedr  r  r  r`  r  r  r  r  r  r  r  r  r  r5  r7  r8  r  r  r  r  r  r  r   r  r  s                r'   _generate_content_streamzModels._generate_content_stream  sB     66O   9


Ol &))&1	6AA
 78


Ol &))&1	6AA
 7##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DLg-t  
 $$55lL  !)b4::hmm3Lm				"	"<]K <MJ22AA )C)C)E B l (-'9'9""(l$ ''5's   IIc                X   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   sd
nt#        j$                  |
j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                               }t        j0                  |
j2                        |_        | j                  j7                  |       |S )aA  Calculates embeddings for the given contents. Only text is supported.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = client.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  r6  {model}:predict{model}:batchEmbedContentsrz  r  r8  Nr  r  r  r  )r   _EmbedContentParametersr  r  r  r  r  rK  r	   r  r8  r  r   r  r  r  r  r  r  rl  r  EmbedContentResponser  r  r  r  r  r  r  s                r'   embed_contentzModels.embed_contento  s    < 33O   6


Ol &))&1	 ++,<= 5


Ol &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7Fm 7}Em--<<'A'A'C = L &+%7%7  &L" 	%%l3r*   ro  c                X   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   sd	nt#        j$                  |
j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                         
      }t        j0                  |
j2                        |_        | j                  j7                  |       |S )z%Private method for generating images.r5  ro  r8  r6  r  rz  r  r8  Nr  r  r  r  )r   _GenerateImagesParametersr  r  r  r  r  rq  r	   r  r8  r  r   r  r  r  r  r  r  ru  r  GenerateImagesResponser  r  r  r  r  r  r  r5  ro  r8  r  r  r  r  r  r  r   r  r  s                r'   _generate_imageszModels._generate_images  s     55O   8


Ol &))&1	 ++,<= 7


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  9-Hm 9Gm//>>'A'A'C ? L &+%7%7  &L" 	%%l3r*   r  c                   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
      }|j                   sd
nt#        j$                  |j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }t        j.                  |j0                        |_        | j                  j5                  |       |S )z$Private method for editing an image.r5  ro  r  r8  6This method is only supported in the Vertex AI client.r6  r  rz  r  r8  Nr  r  r  r  )r   _EditImageParametersr  r  r2   rP  r  r  r	   r  r8  r  r   r  r  r  r  r  r  ry  EditImageResponser  r  r  r  r  r  r  r5  ro  r  r8  r  r  r  r  r  r  r   r  r  s                 r'   _edit_imagezModels._edit_image  s    00)	O $$OPP3


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  4]Cm**99'A'A'C : L &+%7%7  &L" 	%%l3r*   r  rY  c                   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
      }|j                   sd
nt#        j$                  |j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }t        j.                  |j0                        |_        | j                  j5                  |       |S )z&Private method for upscaling an image.r5  r  rY  r8  r  r6  r  rz  r  r8  Nr  r  r  r  )r   _UpscaleImageAPIParametersr  r  r2   r[  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r}  UpscaleImageResponser  r  r  r  r  r  r  r5  r  rY  r8  r  r  r  r  r  r  r   r  r  s                 r'   _upscale_imagezModels._upscale_imageT  s    66%	O $$OPP9


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7Fm--<<'A'A'C = L &+%7%7  &L" 	%%l3r*   r  c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   sd
nt#        j$                  |
j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }| j                  j/                  |       |S a  Recontextualizes an image.

    There are two types of recontextualization currently supported:
    1) Imagen Product Recontext - Generate images of products in new scenes
       and contexts.
    2) Virtual Try-On: Generate images of persons modeling fashion products.

    Args:
      model (str): The model to use.
      source (RecontextImageSource): An object containing the source inputs
        (prompt, person_image, product_images) for image recontext. prompt is
        optional for product recontext and disallowed for virtual try-on.
        person_image is required for virtual try-on, disallowed for product
        recontext. product_images is required for both product recontext and
        virtual try-on. Only one product image is supported for virtual try-on,
        and up to 3 product images (different angles of the same product) are
        supported for product recontext.
      config (RecontextImageConfig): Configuration for recontextualization.

    Usage:

      ```
      product_recontext_response = client.models.recontext_image(
          model="imagen-product-recontext-preview-06-30",
          source=types.RecontextImageSource(
              prompt="In a modern kitchen setting.",
              product_images=[types.ProductImage.from_file(IMAGE_FILE_PATH)],
          ),
          config=types.RecontextImageConfig(
              number_of_images=1,
          ),
      )
      image = product_recontext_response.generated_images[0].image

      virtual_try_on_response = client.models.recontext_image(
          model="virtual-try-on-preview-08-04",
          source=types.RecontextImageSource(
              person_image=types.Image.from_file(IMAGE1_FILE_PATH),
              product_images=[types.ProductImage.from_file(IMAGE2_FILE_PATH)],
          ),
          config=types.RecontextImageConfig(
              number_of_images=1,
          ),
      )
      image = virtual_try_on_response.generated_images[0].image
      ```
    r5  r  r8  r  r6  r  rz  r  r8  Nr  r  r  )r   _RecontextImageParametersr  r  r2   rj  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  RecontextImageResponser  r  r  r  r5  r  r8  r  r  r  r  r  r  r   r  r  s                r'   recontext_imagezModels.recontext_image  s   n 55O $$OPP8


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  9-Hm//>>'A'A'C ? L 	%%l3r*   c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   sd
nt#        j$                  |
j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }| j                  j/                  |       |S )a"  Segments an image, creating a mask of a specified area.

    Args:
      model (str): The model to use.
      source (SegmentImageSource): An object containing the source inputs
        (prompt, image, scribble_image) for image segmentation. The prompt is
        required for prompt mode and semantic mode, disallowed for other modes.
        scribble_image is required for the interactive mode, disallowed for
        other modes.
      config (SegmentImageConfig): Configuration for segmentation.

    Usage:

      ```
      response = client.models.segment_image(
          model="image-segmentation-001",
          source=types.SegmentImageSource(
              image=types.Image.from_file(IMAGE_FILE_PATH),
          ),
      )

      mask_image = response.generated_masks[0].mask
      ```
    r  r  r6  r  rz  r  r8  Nr  r  r  )r   _SegmentImageParametersr  r  r2   r{  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  SegmentImageResponser  r  r  r  s                r'   segment_imagezModels.segment_image  s   @ 33O $$OPP6


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7Fm--<<'A'A'C = L 	%%l3r*   c                   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   sdnt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                         	      }| j                  j1                  |       |S 
Nr5  r8  r6  {name}rz  r  r8  r  r  r  )r   _GetModelParametersr  r  r}  r  r  ru  r	   r  r8  r  r   r  r  r  r  r  r  r  r   Modelr  r  r  r  r5  r8  r  r  r  r  r  r  r   r  r  s               r'   r  z
Models.getQ  s    //O   2


Ol &))&1	""#341


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  (7m (6m;;--'A'A'C . L 	%%l3r*   c                T   t        j                  |      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }|j                   sdnt#        j$                  |j                         }	| j                  j                  rt'        |	      }	nt)        |	      }	t         j*                  j-                  |	|j/                         	      }
t        j0                  |j2                  
      |
_        | j                  j7                  |
       |
S Nr  r6  z{models_url}rz  r  r8  r  r  r  r  )r   _ListModelsParametersr  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r'  ListModelsResponser  r  r  r  r  r  r  r8  r  r  r  r  r  r  r   r  r  s              r'   _listzModels._list  s    11O   4


Ol &))&1	(()9:3


Ol &))&1	(()9:##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  5mDm 5]Cm++::'A'A'C ; L &+%7%7  &L" 	%%l3r*   c                   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   sd	nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                         
      }| j                  j1                  |       |S Nr  r6  z{model}r  rz  r  r8  patchr  r  )r   _UpdateModelParametersr  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r   r	  r  r  r  r
  s               r'   updatezModels.update  s    22O   5


Ol &))&1	##$454


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''|\H 'mmBHMM1JM  (7m (6m;;--'A'A'C . L 	%%l3r*   c                V   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   sdnt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                         	      }t        j0                  |	j2                  
      |_        | j                  j7                  |       |S Nr  r6  r  rz  r  r8  deleter  r  r  )r   _DeleteModelParametersr  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r+  DeleteModelResponser  r  r  r  r  r  r
  s               r'   r  zModels.delete  s    22O   5


Ol &))&1	""#344


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''$lH 'mmBHMM1JM  6}Em 6mDm,,;;'A'A'C < L &+%7%7  &L" 	%%l3r*   c                X   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   sd	nt#        j$                  |
j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                         
      }t        j0                  |
j2                        |_        | j                  j7                  |       |S )a8  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

    Args:
      model (str): The model to use for counting tokens.
      contents (list[types.Content]): The content to count tokens for.
      config (CountTokensConfig): The configuration for counting tokens.

    Usage:

    .. code-block:: python

      response = client.models.count_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # total_tokens=5 cached_content_token_count=None
    r  r6  {model}:countTokensrz  r  r8  Nr  r  r  r  )r   _CountTokensParametersr  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r2  CountTokensResponser  r  r  r  r  r  r  s                r'   count_tokenszModels.count_tokensR  s    8 22O   5


Ol &))&1	$//0@A$4


Ol &))&1	$//0@A$##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  6}Em 6mDm,,;;'A'A'C < L &+%7%7  &L" 	%%l3r*   c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   sd
nt#        j$                  |
j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }t        j.                  |
j0                        |_        | j                  j5                  |       |S )az  Given a list of contents, returns a corresponding TokensInfo containing the

    list of tokens and list of token ids.

    This method is not supported by the Gemini Developer API.

    Args:
      model (str): The model to use.
      contents (list[shared.Content]): The content to compute tokens for.

    Usage:

    .. code-block:: python

      response = client.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    r  r  r6  {model}:computeTokensrz  r  r8  Nr  r  r  r  )r   _ComputeTokensParametersr  r  r2   r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  ComputeTokensResponser  r  r  r  r  r  r  s                r'   compute_tokenszModels.compute_tokens  s   < 44O $$OPP7


Ol &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  8Gm..=='A'A'C > L &+%7%7  &L" 	%%l3r*   ro  r  r  r  r8  r  c                   t        j                  ||||||      }| j                  j                  r>t	        | j                  |      }|j                  d      }	|	rdj                  |	      }
n@d}
n=t        | j                  |      }|j                  d      }	|	rdj                  |	      }
nd}
|j                  d      }|r|
 dt        |       }
|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|
||      }|j                   sd	nt#        j$                  |j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                         
      }| j                  j1                  |       |S )z%Private method for generating videos.r5  ro  r  r  r  r8  r6  {model}:predictLongRunningrz  r  r8  Nr  r  r  )r   _GenerateVideosParametersr  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  rH  GenerateVideosOperationr  r  r  r  r5  ro  r  r  r  r8  r  r  r  r  r  r  r   r  r  s                   r'   _generate_videoszModels._generate_videos   s    55O   8


Ol &))&1	+667GH+7


Ol &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  :=Im :-Hm00??'A'A'C @ L 	%%l3r*   c                   t        j                  |      }|r@|j                  r4t        j                  |j                        rt        j                  d      t        j                  |      r| j                  |||      S t        j                  |      }t        j                  d| d       g }t        j                         }d}|dkD  r|dz  }| j                  |||      }t        j                  d| d       |dz  }|dk(  rt        j                  d	       t        j                  |      }	|	sn|sn|j                  r<|j                  d   j                   r#|j                  d   j                   j"                  snt        j$                  ||	      }
|
sn|j                  d   j                   }t        j&                  d
|
      }t)        j*                  |      }|s|j-                  |       t/        |t0              r"|j3                  |       |j3                  |       |j3                  |       |j3                  |       |dkD  rt        j4                  |      r	|||_        |S )a  Makes an API request to generate content using a model.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      )
      print(response.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text(text='What is shown in this image?'),
          types.Part.from_uri(file_uri='gs://generativeai-downloads/images/scones.jpg',
          mime_type='image/jpeg')
        ]
      )
      print(response.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    6MCP sessions are not supported in synchronous methods.r  &AFC is enabled with max remote calls: .r   r
   AFC remote call 	 is done.8Reached max remote calls for automatic function calling.userrW   rV   )r   parse_config_for_mcp_usager  r   has_mcp_session_usager   UnsupportedFunctionErrorshould_disable_afcr  get_max_remote_calls_afcloggerinfor   r  get_function_mapr  rH  rV   get_function_response_partsContentr*  r;  extend
isinstancelistappendshould_append_afc_history"automatic_function_calling_history)r  r5  r7  r8  parsed_configremaining_remote_calls_afcrE  r   ifunction_mapfunc_response_partsfunc_call_contentfunc_response_contents                r'   generate_contentzModels.generate_contentL  sf   B !;;FCM,,]-@-@A++
B  &&}5## $   ".!F!F" KK
01K0LAN ?A&,,.H	A
$q
(1fa'' ( h kk$QCy12 A% 	#q	(NO!22=Al!!$$Q'//$$Q'//55(DD
L !"--a088#mm# h'h/*11(;	Hd	#)*-.(//0AB(//0EFM %q
(P 	..}=  - 1 Or*   c             #     K   t        j                  |      }|r@|j                  r4t        j                  |j                        rt        j                  d      t        j                  |      r| j                  |||      E d{    yt        j                  |      }t        j                  d| d       g }d}d}d}	|dkD  rw|	dz  }	| j                  |||      }
t        j                  d|	 d	       |dz  }|dk(  rt        j                  d
       t        j                  |      }|	dk(  r|
D ]  }|st        j                  ||       |  |j                  r<|j                  d   j                  r#|j                  d   j                  j                   s nt        j"                  ||      }|rt        j                  ||       |  n|
D ]8  }t        j$                  |      r||_        t        j                  ||       | : |H|j                  r<|j                  d   j                  r#|j                  d   j                  j                   syt        j"                  ||      }|sy|sy||j                  |j                  d   j                  }t)        j*                  d|      }t-        j.                  |      }|s|j1                  |       t3        |t4              r$|"|j7                  |       |j7                  |       ||j7                  |       |j7                  |       |dkD  rvyy7 w)a  Makes an API request to generate content using a model and yields the model's response in chunks.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      ):
        print(chunk.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    r.  r  Nr/  r0  r   r
   r1  r2  r3  r4  r5  )r   r6  r  r   r7  r   r8  r9  r  r:  r;  r<  r=  append_chunk_contentsr  rH  rV   r>  rD  rE  r   r?  r*  r;  r@  rA  rB  rC  )r  r5  r7  r8  rF  rG  rE  chunkrJ  rH  r   rI  rK  rL  s                 r'   generate_content_streamzModels.generate_content_stream  sF    B !;;FCM,,]-@-@A++
B  &&}5.. /    !-!F!F" KK
01K0LAN ?A&E	A
$q
(1fa.. / h kk$QCy12 A% 	#q	(NO!22=Al	
a  	E..x?K $$''*22''*2288"."J"J|# '005Ak!	(  	E33MB2 4 
,
,Xu
=+	 M####A&..##A&..44
*FF<
   
	u//;!,,Q/77 %%!
 <<)1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHU %q
(s    BMM D0M8FM>Mc                ,   | j                  |||      }d}g }|r|j                  s|S |j                  D ]E  }|j                  r&|j                  j                  dk(  r|j                  }5|j	                  |       G t        j                  ||      }|S )ap  Generates images based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the images to generate.
      config (GenerateImagesConfig): Configuration for generation.

    Usage:

    .. code-block:: python

      response = client.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    r  NPositive Promptr  r  r  r  r  r   rC  r   r  	r  r5  ro  r8  api_responser  r  generated_imager   s	            r'   generate_imageszModels.generate_imagesy  s    : (( ) L
 )-%|<<'88 1

+
+//<< -<,M,M)01 ++)*KH Or*   c                ,    | j                  ||||      S )aL  Edits an image based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the edit to apply to the image.
        reference_images (list[Union[RawReferenceImage, MaskReferenceImage,
        ControlReferenceImage, StyleReferenceImage, SubjectReferenceImage]): The
        reference images for editing.
      config (EditImageConfig): Configuration for editing.

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

      raw_ref_image = RawReferenceImage(
        reference_id=1,
        reference_image=types.Image.from_file(IMAGE_FILE_PATH),
      )

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = client.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  r  r  r5  ro  r  r8  s        r'   
edit_imagezModels.edit_image  s)    b )	   r*   c                   t        j                  ||||       |xs i }t        |t         j                        r|j	                         }nt        |      }t        j                  |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  d	d      
      }d|d<   d|d<   | j                  ||||      S )a  Makes an API request to upscale a provided image.

    Args:
      model (str): The model to use.
      image (Image): The input image for upscaling.
      upscale_factor (str): The factor to upscale the image (x2 or x4).
      config (UpscaleImageConfig): Configuration for upscaling.

    Usage:

    .. code-block:: python

      from google.genai.types import Image

      IMAGE_FILE_PATH="my-image.png"
      response=client.models.upscale_image(
          model='imagen-3.0-generate-001',
          image=types.Image.from_file(IMAGE_FILE_PATH),
          upscale_factor='x2',
      )
      response.generated_images[0].image.show()
      # Opens my-image.png which is upscaled by a factor of 2.
    r  r  NrM  r]  r`  rc  rR  rU  r  rM  r]  r`  rc  rR  rU  upscaler   r
   rP  	r   UpscaleImageParametersrA  UpscaleImageConfigr  dict_UpscaleImageAPIConfigDictr  r  r  r5  r  rY  r8  
config_dct
api_configs          r'   upscale_imagezModels.upscale_image  s
   B 
  %	 \rF&%223$$&j<j11^^ND9!~~&6=%>>*>E#(:DA#->>($$
 'NN+@$G",..'#
J #Jv%&J!"%	   r*   c                V    |s|s|r|rt        d      | j                  ||||||      S )  Generates videos based on an input (text, image, or video) and configuration.

    The following use cases are supported:
    1. Text to video generation.
    2a. Image to video generation (additional text prompt is optional).
    2b. Image to video generation with frame interpolation (specify last_frame
    in config).
    3. Video extension (additional text prompt is optional)

    Args:
      model: The model to use.
      prompt: The text prompt for generating the videos. Optional for image to
        video and video extension use cases. This argument is deprecated, please
        use source instead.
      image: The input image for generating the videos. Optional if prompt is
        provided. This argument is deprecated, please use source instead.
      video: The input video for video extension use cases. Optional if prompt
        or image is provided. This argument is deprecated, please use source
        instead.
      source: The input source for generating the videos (prompt, image, and/or
        video)
      config: Configuration for generation.

    Usage:

      ```
      operation = client.models.generate_videos(
          model="veo-2.0-generate-001",
          source=types.GenerateVideosSource(
              prompt="A neon hologram of a cat driving at top speed",
          ),
      )
      while not operation.done:
          time.sleep(10)
          operation = client.operations.get(operation)

      operation.result.generated_videos[0].video.uri
      ```
    MSource and prompt/image/video are mutually exclusive. Please only use source.r'  r2   r,  r  r5  ro  r  r  r  r8  s          r'   generate_videoszModels.generate_videos/  sL    b 	%5f'     !  r*   c                |   t        j                  |      j                  xs t        j                         }|j                  d|_        | j
                  j                  r6|j                         }|j                  s|j                  }|r|dz   nd|_        t        d| j                  | j                  |      |      S )a  Makes an API request to list the available models.

    If `query_base` is set to True in the config or not set (default), the
    API will return all available base models. If set to False, it will return
    all tuned models.

    Args:
      config (ListModelsConfigOrDict): Configuration for retrieving models.

    Usage:

    .. code-block:: python

      response=client.models.list(config={'page_size': 5})
      print(response.page)
      # [Model(name='projects/./locations/./models/123', display_name='my_model'

      response=client.models.list(config={'page_size': 5, 'query_base': True})
      print(response.page)
      # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
    r  T&filter=labels.tune-type:*labels.tune-type:*r%  )r   r  r8  ListModelsConfigr  r  r  copyr~  r   r  r  r8  filter_values      r'   rB  zModels.listn  s    8 	##6299 	$!!#   f  {{}f}}  77% 	
 



&
!	 r*   )C__name__
__module____qualname__strr   r   ContentListUnionContentListUnionDictr   GenerateContentConfigOrDictr  r  r   r  EmbedContentConfigOrDictr  r  GenerateImagesConfigOrDictr  r  rB  _ReferenceImageAPIOrDictEditImageConfigOrDictr  r  ImageOrDict_UpscaleImageAPIConfigOrDictr  r  RecontextImageSourceOrDictRecontextImageConfigOrDictr  r  SegmentImageSourceOrDictSegmentImageConfigOrDictr  r  GetModelConfigOrDictr	  r  ListModelsConfigOrDictr  r  UpdateModelConfigOrDictr  DeleteModelConfigOrDictr  r  CountTokensConfigOrDictr  r  ComputeTokensConfigOrDictr#  r$  VideoOrDictGenerateVideosSourceOrDictGenerateVideosConfigOrDictr*  r,  rM  rQ  rY  r]  UpscaleImageConfigOrDictri  ro  r   r   r*   r'   r  r    sY    =AK K e,,e.H.HHI	K
 u889K $$Kd =AP P e,,e.H.HHI	P
 u889P --.Pn :>[ [ e,,e.H.HHI	[
 u556[ !![D <@F F 	F
 u778F ##F\ 7;> > 	>
 U;;<> u223> >L >B> > 	>
 > u99:> !!>J <@h h ..	h
 u778h ##h^ :>Q Q ,,	Q
 u556Q !!Qh KO;;#+E,F,F#G;{{;| AE< < <=<<D 9=	@ @ u445	@
 {{@L 9=	B B u445	B
   BR 9=Y Y e,,e.H.HHI	Y
 u445Y   Y@ ;?Q Q e,,e.H.HHI	Q
 u667Q ""Qn #+/+/;?;?J J sm	J
 e''(J e''(J u778J u778J $$Jb =AE E **	E
 u889E $$EX =AdI dI **	dI
 u889dI --.dIV <@5 5 	5
 u7785 ##5z 7;6 6 	6
 U;;<6 u2236 6| :>E E 	E
 E u556E !!EV #+/+/;?;?= = sm	=
 e''(= e''(= u778= u778= $$=D 8<0 u3340 U[[	0r*   r  c                   R	   e Zd Zdddedeej                  ej                  f   deej                     dej                  fdZdddedeej                  ej                  f   deej                     deeej                        fdZdddedeej                  ej                  f   deej                     dej                   fd	Zddded
edeej$                     dej&                  fdZddded
edeej,                     deej.                     dej0                  f
dZdddedej4                  dedeej6                     dej8                  f
dZdddedej<                  deej>                     dej@                  fdZ!dddedejD                  deejF                     dejH                  fdZ%dddedeejL                     dejN                  fdZ(dddeejR                     dejT                  fdZ+dddedeejX                     dejN                  fdZ-dddedeej\                     dej^                  fdZ0dddedeej                  ej                  f   deejb                     dejd                  fdZ3dddedeej                  ej                  f   deejh                     dejj                  fdZ6ddddddded
ee   deej4                     deejn                     deejp                     deejr                     dejt                  fdZ;dddedeej                  ej                  f   deej                     dej                  fdZ<dddedeej                  ej                  f   deej                     deej                     fdZ=ddded
edeej,                     deej.                     dej0                  f
dZ>dddeejR                     de?ejN                     fd Zddded
edeej$                     dej&                  fd!Z@dddedej4                  dedeej                     dej8                  f
d"ZBddddddded
ee   deej4                     deejn                     deejp                     deejr                     dejt                  fd#ZCy)$AsyncModelsNr  r5  r7  r8  r   c                  K   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d {   }
|@t!        |dd       r3t        j"                  |
	      }| j                  j%                  |       |S |
j&                  sd
nt)        j*                  |
j&                        }| j                  j                  rt-        |      }nt/        |      }t         j"                  j1                  ||j3                               }t        j4                  |
j6                        |_        | j                  j%                  |       |S 7 wr  )r   r  r  r  r  r  r  r<  r	   r  r8  r  r   r  r  async_requestr  r  r  r  r  r  r`  r  r  r  r  r  r  r  s                r'   r  zAsyncModels._generate_content  sP     66O   9


Ol &))&1	(334DE(8


Ol &))&1	(334DE(##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H g-t 22XNl
''5&mmBHMM1JM  :=Im :-Hm00??'A'A'C @ L &+%7%7  &L" 	%%l35s   E$I;&I8'DI;c                4   
K   t        j                  |||      
 j                  j                  r>t	         j                  
      }|j                  d      }|rdj                  |      }n@d}n=t         j                  
      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }
j                  ,
j                  j                  
j                  j                  }t        j                  |      }t        j                  |      }|t        |dd       rt!        d       j                  j#                  d	|||       d {   
 fd
}	 |	       S 7 w)Nr  r6  r  rz  r  r8  r  r  r  c                   K   2 3 d {   } | j                   sdnt        j                  | j                         }j                  j                  rt        |      }nt        |      }t        j                  j                  |j                               }t        j                  | j                        |_        j                  j                  |       | 7 6 y w)Nr  r  r  )r  r  r  r  r  r`  r  r   r  r  r  r  r  r  r  )r   r  r  r  response_streamr  s      r'   async_generatorz=AsyncModels._generate_content_stream.<locals>.async_generator1  s     +  "*--TZZ5N$$>}M- >mL-44CC"?+E+E+G D 
 */););$$*
& 	)),7#Os&   C"C CC CC"C  C")r   r  r  r  r  r  r  r<  r	   r  r8  r  r   r  r  r  r2   async_request_streamed)r  r5  r7  r8  r  r  r  r  r  r  r  r  s   `         @@r'   r  z$AsyncModels._generate_content_stream  s     66O   9


Ol &))&1	6AA
 78


Ol &))&1	6AA
 7##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DLg-t  
 !,,CClL O( 1s   E>FFFc                t  K   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   sd
nt#        j$                  |
j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                               }t        j0                  |
j2                        |_        | j                  j7                  |       |S 7 ϭw)aK  Calculates embeddings for the given contents. Only text is supported.

    Args:
      model (str): The model to use.
      contents (list[Content]): The contents to embed.
      config (EmbedContentConfig): Optional configuration for embeddings.

    Usage:

    .. code-block:: python

      embeddings = await client.aio.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  r6  r  r  rz  r  r8  Nr  r  r  r  )r   r  r  r  r  r  r  rK  r	   r  r8  r  r   r  r  r  r  r  r  rl  r  r  r  r  r  r  r  r  r  s                r'   r  zAsyncModels.embed_contentG  s    < 33O   6


Ol &))&1	 ++,<= 5


Ol &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7Fm 7}Em--<<'A'A'C = L &+%7%7  &L" 	%%l3'   E$H8&H6'CH8ro  c                t  K   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d{   }
|
j                   sd	nt#        j$                  |
j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                         
      }t        j0                  |
j2                        |_        | j                  j7                  |       |S 7 ϭw)z4Private method for generating images asynchronously.r  r6  r  rz  r  r8  Nr  r  r  r  )r   r  r  r  r  r  r  rq  r	   r  r8  r  r   r  r  r  r  r  r  ru  r  r  r  r  r  r  r  r  r  s                r'   r  zAsyncModels._generate_images  s     55O   8


Ol &))&1	 ++,<= 7


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  9-Hm 9Gm//>>'A'A'C ? L &+%7%7  &L" 	%%l3'r  r  c                  K   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
       d{   }|j                   sd
nt#        j$                  |j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 íw)z3Private method for editing an image asynchronously.r  r  r6  r  rz  r  r8  Nr  r  r  r  )r   r  r  r  r2   rP  r  r  r	   r  r8  r  r   r  r  r  r  r  r  ry  r  r  r  r  r  r  r  r  s                 r'   r  zAsyncModels._edit_image  s     00)	O $$OPP3


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  4]Cm**99'A'A'C : L &+%7%7  &L" 	%%l3!   D2G:4G85CG:r  rY  c                  K   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
       d{   }|j                   sd
nt#        j$                  |j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 íw)z5Private method for upscaling an image asynchronously.r  r  r6  r  rz  r  r8  Nr  r  r  r  )r   r  r  r  r2   r[  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r}  r  r  r  r  r  r  r  r  s                 r'   r  zAsyncModels._upscale_image,  s     66%	O $$OPP9


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7Fm--<<'A'A'C = L &+%7%7  &L" 	%%l3!r  r  c                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   sd
nt#        j$                  |
j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }| j                  j/                  |       |S 7 wr  )r   r  r  r  r2   rj  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r  r  r  r  r  s                r'   r  zAsyncModels.recontext_imagel  s    n 55O $$OPP8


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  9-Hm//>>'A'A'C ? L 	%%l3   D1G3G4BGc                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   sd
nt#        j$                  |
j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }| j                  j/                  |       |S 7 w)a  Segments an image, creating a mask of a specified area.

    Args:
      model (str): The model to use.
      source (SegmentImageSource): An object containing the source inputs
        (prompt, image, scribble_image) for image segmentation. The prompt is
        required for prompt mode and semantic mode, disallowed for other modes.
        scribble_image is required for the interactive mode, disallowed for
        other modes.
      config (SegmentImageConfig): Configuration for segmentation.

    Usage:

      ```
      response = client.models.segment_image(
          model="image-segmentation-001",
          source=types.SegmentImageSource(
              image=types.Image.from_file(IMAGE_FILE_PATH),
          ),
          config=types.SegmentImageConfig(
              mode=types.SegmentMode.foreground,
          ),
      )

      mask_image = response.generated_masks[0].mask
      ```
    r  r  r6  r  rz  r  r8  Nr  r  r  )r   r  r  r  r2   r{  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r  r  r  r  r  s                r'   r  zAsyncModels.segment_image  s    F 33O $$OPP6


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7Fm--<<'A'A'C = L 	%%l3r  c                (  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   sdnt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                         	      }| j                  j1                  |       |S 7 wr  )r   r  r  r  r}  r  r  ru  r	   r  r8  r  r   r  r  r  r  r  r  r  r   r	  r  r  r  r
  s               r'   r  zAsyncModels.get,  s     //O   2


Ol &))&1	""#341


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  (7m (6m;;--'A'A'C . L 	%%l3#   E#H%H&B+Hc                p  K   t        j                  |      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }|j                   sdnt#        j$                  |j                         }	| j                  j                  rt'        |	      }	nt)        |	      }	t         j*                  j-                  |	|j/                         	      }
t        j0                  |j2                  
      |
_        | j                  j7                  |
       |
S 7 ϭwr  )r   r  r  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r'  r  r  r  r  r  r  r  r  s              r'   r  zAsyncModels._listk  s     11O   4


Ol &))&1	(()9:3


Ol &))&1	(()9:##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  5mDm 5]Cm++::'A'A'C ; L &+%7%7  &L" 	%%l3's   E"H6$H4%CH6c                (  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   sd	nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                         
      }| j                  j1                  |       |S 7 wr  )r   r  r  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r   r	  r  r  r  r
  s               r'   r  zAsyncModels.update  s     22O   5


Ol &))&1	##$454


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33|\ H 'mmBHMM1JM  (7m (6m;;--'A'A'C . L 	%%l3#r  c                r  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   sdnt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
nt)        |
      }
t         j*                  j-                  |
|j/                         	      }t        j0                  |	j2                  
      |_        | j                  j7                  |       |S 7 ϭwr  )r   r  r  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r+  r  r  r  r  r  r  r  r
  s               r'   r  zAsyncModels.delete  s     22O   5


Ol &))&1	""#344


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33$l H 'mmBHMM1JM  6}Em 6mDm,,;;'A'A'C < L &+%7%7  &L" 	%%l3's   E#H7%H5&CH7c                t  K   t        j                  |||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d{   }
|
j                   sd	nt#        j$                  |
j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                         
      }t        j0                  |
j2                        |_        | j                  j7                  |       |S 7 ϭw)aB  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

    Args:
      model (str): The model to use for counting tokens.
      contents (list[types.Content]): The content to count tokens for.
      config (CountTokensConfig): The configuration for counting tokens.

    Usage:

    .. code-block:: python

      response = await client.aio.models.count_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # total_tokens=5 cached_content_token_count=None
    r  r6  r  rz  r  r8  Nr  r  r  r  )r   r  r  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r2  r  r  r  r  r  r  r  r  s                r'   r  zAsyncModels.count_tokens1  s    8 22O   5


Ol &))&1	$//0@A$4


Ol &))&1	$//0@A$##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  6}Em 6mDm,,;;'A'A'C < L &+%7%7  &L" 	%%l3'r  c                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   sd
nt#        j$                  |
j                         }| j                  j                  rt'        |      }t         j(                  j+                  ||j-                               }t        j.                  |
j0                        |_        | j                  j5                  |       |S 7 íw)aF  Given a list of contents, returns a corresponding TokensInfo containing the

    list of tokens and list of token ids.


    Args:
      model (str): The model to use.
      contents (list[shared.Content]): The content to compute tokens for.

    Usage:

    .. code-block:: python

      response = await client.aio.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    r  r  r6  r!  rz  r  r8  Nr  r  r  r  )r   r"  r  r  r2   r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  r#  r  r  r  r  r  r  r  s                r'   r$  zAsyncModels.compute_tokens  s    : 44O $$OPP7


Ol &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  8Gm..=='A'A'C > L &+%7%7  &L" 	%%l3!s   D1G93G74CG9r%  r  c                0  K   t        j                  ||||||      }| j                  j                  r>t	        | j                  |      }|j                  d      }	|	rdj                  |	      }
n@d}
n=t        | j                  |      }|j                  d      }	|	rdj                  |	      }
nd}
|j                  d      }|r|
 dt        |       }
|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|
||       d{   }|j                   sd	nt#        j$                  |j                         }| j                  j                  rt'        |      }nt)        |      }t         j*                  j-                  ||j/                         
      }| j                  j1                  |       |S 7 w)z4Private method for generating videos asynchronously.r'  r6  r(  rz  r  r8  Nr  r  r  )r   r)  r  r  r  r  r  r  r	   r  r8  r  r   r  r  r  r  r  r  r  rH  r*  r  r  r  r+  s                   r'   r,  zAsyncModels._generate_videos  s     55O   8


Ol &))&1	+667GH+7


Ol &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  :=Im :-Hm00??'A'A'C @ L 	%%l3#s   E'H)H*B+Hc                  K   t        j                  |       d{   \  }}t        j                  |      r| j                  |||       d{   S t        j                  |      }t
        j                  d| d       g }t        j                         }|dkD  rx| j                  |||       d{   }|dz  }|dk(  rt
        j                  d       t        j                  ||d	      }	|	sn!|sn|j                  r<|j                  d   j                  r#|j                  d   j                  j                  snt        j                  ||	       d{   }
|
sn|j                  d   j                  }t        j                  d
|
      }t        j                   |      }|s|j#                  |       t%        |t&              r"|j)                  |       |j)                  |       |j)                  |       |j)                  |       |dkD  rxt        j*                  |      r	|||_        |S 7 7 7 7 w)ad  Makes an API request to generate content using a model.

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      response = await client.aio.models.generate_content(
          model='gemini-2.0-flash',
          contents='User input: I like bagels. Answer:',
          config=types.GenerateContentConfig(
              system_instruction=
                [
                  'You are a helpful language translator.',
                  'Your mission is to translate text in English to French.'
                ]
          ),
      )
      print(response.text)
      # J'aime les bagels.
    Nr  r/  r0  r   r
   r3  Tis_caller_method_asyncr4  r5  )r   parse_config_for_mcp_sessionsr9  r  r:  r;  r<  r   r  r=  r  rH  rV   !get_function_response_parts_asyncr?  r*  r;  r@  rA  rB  rC  rD  rE  )r  r5  r7  r8  rF  mcp_to_genai_tool_adaptersrG  rE  r   rI  rJ  rK  rL  s                r'   rM  zAsyncModels.generate_content*   sO    P 88@@ .M- &&}5)) *    ".!F!F" KK
01K0LAN ?A&,,.H
$q
(-- .  h !A% 	#q	(NO!22
3Dl !!$$Q'//$$Q'//55>>  
 !"--a088#mm# h'h/*11(;	Hd	#)*-.(//0AB(//0EFQ %q
(V 	..}=  - 1 O 	A*sN   IH63IH9A%I5H<6B%IH?B8I!I9I<I?Ic                    K   t        j                  |       d{   \  }t        j                  |      r+ j                  |||       d{   fd} ||||      S  fd} ||||      S 7 W7 %w)a2  Makes an API request to generate content using a model and yields the model's response in chunks.

    For the `model` parameter, supported formats for Vertex AI API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The full resource name starts with 'projects/', for example:
      'projects/my-project-id/locations/us-central1/publishers/google/models/gemini-2.0-flash'
    - The partial resource name with 'publishers/', for example:
      'publishers/google/models/gemini-2.0-flash' or
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash'

    For the `model` parameter, supported formats for Gemini API include:
    - The Gemini model ID, for example: 'gemini-2.0-flash'
    - The model name starts with 'models/', for example:
      'models/gemini-2.0-flash'
    - For tuned models, the model name starts with 'tunedModels/',
      for example:
      'tunedModels/1234567890123456789'

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

      client = genai.Client(
          vertexai=True, project='my-project-id', location='us-central1'
      )

      async for chunk in await client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents='''What is a good name for a flower shop that specializes in
          selling bouquets of dried flowers?'''
      ):
        print(chunk.text)
      # **Elegant & Classic:**
      # * The Dried Bloom
      # * Everlasting Florals
      # * Timeless Petals

      async for chunk in awiat client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    Nr  c                6   K   2 3 d {   }| 7 
6 y wr   r   )r5  r7  r8  rP  r   s       r'   base_async_generatorzAAsyncModels.generate_content_stream.<locals>.base_async_generator   s#     # 	 	%+	8s   c                  K   t        j                  |      }t        j                  d| d       g }d }d }d}|dkD  r+|dz  }j	                  | ||       d {   }t        j                  d| d       |dz  }|dk(  rt        j                  d       t        j
                  |d	
      }	|dk(  r|2 3 d {   }|	st        j                  ||       | '|j                  r<|j                  d   j                  r#|j                  d   j                  j                  s nt        j                  ||	       d {   }|rt        j                  ||       | |2 3 d {   }t        j                  |      r||_        t        j                  ||       | A|	sy |sy |y|j                  d   j                  }
t        j                  d|      }t        j                   |      }|s|j#                  |       t%        |t&              r$|
"|j)                  |
       |j)                  |       |
|j)                  |
       |j)                  |       |dkD  r*y y 7 7 7 06 7 6 |H|j                  r<|j                  d   j                  r#|j                  d   j                  j                  sy t        j                  ||	       d {  7  }>w)Nr/  r0  r   r
   r  r1  r2  r3  Tr  r4  r5  )r   r:  r;  r<  r  r=  rO  r  rH  rV   r  rD  rE  r   r?  r*  r;  r@  rA  rB  rC  )r5  r7  r8  rG  rE  rJ  rP  rH  r   rI  rK  rL  r  r  s               r'   r  z<AsyncModels.generate_content_stream.<locals>.async_generator   s    #/#H#H#P kk23M2Na
P AC( e
a&*	Q66(6 7 
 
 	&qc34"a'"%*
++H $44.t
 6 &  E005Ak &&))!,44))!,44::$FF\  "
 )228UC &  E55f=4 6 ..x?K 
"
=
!,,Q/77 %%!
 <<)1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHi '*
$ &,X m%%%%a(00%%a(0066 BB   s   AK'I,AK'8I5<I/=I5 BK'I2K'
K'(I:,I7-I:0C8K'*K'/I52K'5K'7I::A%K'K" K')r   r  r9  r  )	r  r5  r7  r8  rF  r  r  r  r   s	   `      @@r'   rQ  z#AsyncModels.generate_content_stream   s     F 88@@ .M- &&}544 5  h "%=AA]I~ 5(M::Y 	As!   A:A63A:A8$A:8A:c                H   K   | j                  ||||       d{   S 7 w)aV  Edits an image based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the edit to apply to the image.
        reference_images (list[Union[RawReferenceImage, MaskReferenceImage,
        ControlReferenceImage, StyleReferenceImage, SubjectReferenceImage]): The
        reference images for editing.
      config (EditImageConfig): Configuration for editing.

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

      raw_ref_image = RawReferenceImage(
        reference_id=1,
        reference_image=types.Image.from_file(IMAGE_FILE_PATH),
      )

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = await client.aio.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  Nr[  r\  s        r'   r]  zAsyncModels.edit_imageD!  s7     b !!)	 "    s   " "c                  K   t        j                  |      j                  xs t        j                         }|j                  d|_        | j
                  j                  r6|j                         }|j                  s|j                  }|r|dz   nd|_        t        d| j                  | j                  |       d{   |      S 7 	w)a  Makes an API request to list the available models.

    If `query_base` is set to True in the config or not set (default), the
    API will return all available base models. If set to False, it will return
    all tuned models.

    Args:
      config (ListModelsConfigOrDict): Configuration for retrieving models.

    Usage:

    .. code-block:: python

      response = await client.aio.models.list(config={'page_size': 5})
      print(response.page)
      # [Model(name='projects/./locations/./models/123', display_name='my_model'

      response = await client.aio.models.list(
          config={'page_size': 5, 'query_base': True}
        )
      print(response.page)
      # [Model(name='publishers/google/models/gemini-2.0-flash-exp' ...
    r  NTrq  rr  r%  )r   r  r8  rs  r  r  r  rt  r~  r   r  ru  s      r'   rB  zAsyncModels.list|!  s     < 	##6299 	$!!#   f  {{}f}}  77% 	
 

jjj''	  	(s   B<C
>C?
C
c                H  K   | j                  |||       d{   }d}g }|r|j                  s|S |j                  D ]E  }|j                  r&|j                  j                  dk(  r|j                  }5|j	                  |       G t        j                  ||      }|S 7 w)az  Generates images based on a text description and configuration.

    Args:
      model (str): The model to use.
      prompt (str): A text description of the images to generate.
      config (GenerateImagesConfig): Configuration for generation.

    Usage:

    .. code-block:: python

      response = await client.aio.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    r  NrS  rT  rU  rV  s	            r'   rY  zAsyncModels.generate_images!  s     : .. /  L
 )-%|<<'88 1

+
+//<< -<,M,M)01 ++)*KH O1s   B"B BB"c                  K   t        j                  ||||       |xs i }t        |t         j                        r|j	                         }nt        |      }t        j                  |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  d	d      
      }d|d<   d|d<   | j                  ||||       d{   S 7 w)a  Makes an API request to upscale a provided image.

    Args:
      model (str): The model to use.
      image (Image): The input image for upscaling.
      upscale_factor (str): The factor to upscale the image (x2 or x4).
      config (UpscaleImageConfig): Configuration for upscaling.

    Usage:

    .. code-block:: python

      from google.genai.types import Image

      IMAGE_FILE_PATH="my-image.png"
      response = await client.aio.models.upscale_image(
          model='imagen-3.0-generate-001',
          image=types.Image.from_file(IMAGE_FILE_PATH),
          upscale_factor='x2',
      )
      response.generated_images[0].image.show()
      # Opens my-image.png which is upscaled by a factor of 2.
    r  r  NrM  r]  r`  rc  rR  rU  r_  r`  r   r
   rP  ra  rf  s          r'   ri  zAsyncModels.upscale_image!  s    B 
  %	 \rF&%223$$&j<j11^^ND9!~~&6=%>>*>E#(:DA#->>($$
 'NN+@$G",..'#
J #Jv%&J!"$$%	 %    s   DDDDc                r   K   |s|s|r|rt        d      | j                  ||||||       d{   S 7 w)rk  rl  r'  Nrm  rn  s          r'   ro  zAsyncModels.generate_videos."  sZ     b 	%5f'  && '    s   .757)Drw  rx  ry  rz  r   r   r{  r|  r   r}  r  r  r   r   r  r~  r  r  r  r  r  rB  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r	  r  r  r  r  r  r  r  r  r  r  r  r  r  r#  r$  r  r  r  r*  r,  rM  rQ  r]  r   rY  r  ri  ro  r   r*   r'   r  r    sy    =AK K e,,e.H.HHI	K
 u889K $$Kd =AU U e,,e.H.HHI	U
 u889U u<<=>Ux :>[ [ e,,e.H.HHI	[
 u556[ !![D <@F F 	F
 u778F ##F\ 7;> > 	>
 U;;<> u223> >L >B> > 	>
 > u99:> !!>J <@h h ..	h
 u778h ##h^ :>T T ,,	T
 u556T !!Tn KO==#+E,F,F#G={{=@ AE> < <=>>H 9=	@ @ u445	@
 {{@L 9=	B B u445	B
   BR 9=Y Y e,,e.H.HHI	Y
 u445Y   Y@ ;?P P e,,e.H.HHI	P
 u667P ""Pl #+/+/;?;?J J sm	J
 e''(J e''(J u778J u778J $$Jb =Ag g e,,e.H.HHI	g
 u889g $$g\ =Ao; o; e,,e.H.HHI	o;
 u889o; U223o;n 7;6 6 	6
 U;;<6 u2236 6v 8<2 u3342 %++	2r <@5 5 	5
 u7785 ##5z :>E E 	E
 E u556E !!EV #+/+/;?;?= = sm	=
 e''(= e''(= u778= u778= $$=r*   r  r   )r  loggingtypingr   r   r   r   r   r   urllib.parser	   r  r   r   r  r   r   r   r   r*  r   r   r  r   r   r#   r   r$   pagersr   r   	getLoggerr;  rd  rz  objectr(   r3   r7   r=   rS   rZ   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r2  r<  rF  rK  rl  rq  ru  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r  r  r  r  r  r  r  r  r%  r+  r/  r5  rE  rM  rP  rW  r[  r_  re  rg  rj  rl  rp  ry  r{  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rj  rk  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r'  r+  r2  r6  r9  rA  rH  rJ  rL  rN  rP  rR  rT  rV  rX  rZ  r^  r`  rc  rf  rj  rl  rn  rp  rs  ru  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  
BaseModuler  r  r   r*   r'   <module>r     s5  $   K K "  *        & . . % 
		0	1
 /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3AtCH~v-.ADcN+A 
#s(^AL /3tCH~v-.DcN+ 
#s(^. /3VtCH~v-.VDcN+V 
#s(^Vv /3tCH~v-.DcN+ 
#s(^& /3"tCH~v-."DcN+" 
#s(^"N /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^, /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3=tCH~v-.=DcN+= 
#s(^=D /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^: /3tCH~v-.DcN+ 
#s(^& /3ggtCH~v-.g DcN+g 
#s(^	gZ /3  tCH~v-.  DcN+  
#s(^	 J /3tCH~v-.DcN+ 
#s(^F /3  tCH~v-.  DcN+  
#s(^	 J /3jtCH~v-.jDcN+j 
#s(^j` /3tCH~v-. DcN+ 
#s(^	> /3tCH~v-. DcN+ 
#s(^	, /3tCH~v-. DcN+ 
#s(^	F /3tCH~v-. DcN+ 
#s(^	( /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-. DcN+ 
#s(^	4 /3tCH~v-. DcN+ 
#s(^	* /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-. DcN+ 
#s(^	F /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^2 /3VtCH~v-.VDcN+V 
#s(^Vx /3,,tCH~v-., DcN+, 
#s(^	,b /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3CtCH~v-.CDcN+C 
#s(^CP /3tCH~v-.DcN+ 
#s(^. /3XtCH~v-.XDcN+X 
#s(^Xz /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^& /3"tCH~v-."DcN+" 
#s(^"N /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^, /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3%tCH~v-.%DcN+% 
#s(^%T /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3GtCH~v-.GDcN+G 
#s(^GX /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^8 /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-.DcN+ 
#s(^& /3iitCH~v-.i DcN+i 
#s(^	i^ /3  tCH~v-.  DcN+  
#s(^	 J /3%tCH~v-.%DcN+% 
#s(^%V /3tCH~v-. DcN+ 
#s(^	@ /3rtCH~v-.rDcN+r 
#s(^rp /3tCH~v-. DcN+ 
#s(^	< /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^* /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^( /36tCH~v-.6DcN+6 
#s(^6v /3rtCH~v-.rDcN+r 
#s(^rp /3!!tCH~v-.! DcN+! 
#s(^	!L /3:tCH~v-.:DcN+: 
#s(^:@ /3$$tCH~v-.$ DcN+$ 
#s(^	$R /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^@ /3HtCH~v-.HDcN+H 
#s(^H\ /3tCH~v-. DcN+ 
#s(^	H /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^> /3%tCH~v-.%DcN+% 
#s(^%V /3tCH~v-. DcN+ 
#s(^	B /3tCH~v-. DcN+ 
#s(^	, /3tCH~v-. DcN+ 
#s(^	F /3tCH~v-. DcN+ 
#s(^	( /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-. DcN+ 
#s(^	4 /3tCH~v-. DcN+ 
#s(^	* /3 tCH~v-. DcN+  
#s(^ L /3tCH~v-. DcN+ 
#s(^	H /3tCH~v-. DcN+ 
#s(^	> /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^: /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^( /3qtCH~v-.qDcN+q 
#s(^qn /300tCH~v-.0 DcN+0 
#s(^	0fQ# Q$ Q
Q Q Q
P# P$ P /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^& /3CtCH~v-.CDcN+C 
#s(^CP /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^( /37tCH~v-.7DcN+7 
#s(^7x /3 tCH~v-. DcN+  
#s(^ J /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^D /3tCH~v-.DcN+ 
#s(^* /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-.DcN+ 
#s(^> /3tCH~v-.DcN+ 
#s(^D /3tCH~v-.DcN+ 
#s(^& /3+tCH~v-.+DcN++ 
#s(^+` /3tCH~v-.DcN+ 
#s(^8 /3
tCH~v-.
DcN+
 
#s(^
 /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^D /3#tCH~v-.#DcN+# 
#s(^#P /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3tCH~v-.DcN+ 
#s(^& /3CtCH~v-.CDcN+C 
#s(^CP /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^ /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^( /37tCH~v-.7DcN+7 
#s(^7x /3#tCH~v-.#DcN+# 
#s(^#P /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^, /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^D /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-.DcN+ 
#s(^D /3tCH~v-.DcN+ 
#s(^D /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-.DcN+ 
#s(^2 /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^6 /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^$ /3tCH~v-.DcN+ 
#s(^4 /3tCH~v-.DcN+ 
#s(^& /36tCH~v-.6DcN+6 
#s(^6v /3tCH~v-.DcN+ 
#s(^8 /3
tCH~v-.
DcN+
 
#s(^
 /3tCH~v-.DcN+ 
#s(^$ /3tCH~v-.DcN+ 
#s(^$ /3tCH~v-.DcN+ 
#s(^. /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^D /3#tCH~v-.#DcN+# 
#s(^#LP[## Pf6J+(( Jr*   