
    `iR'             	          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mZ  e j4                  d      Z	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ 	 ddedeeef   dee   defdZ!	 ddedeeef   dee   defdZ"	 ddedeeef   dee   defdZ#	 ddedeeef   dee   defdZ$	 ddedeeef   dee   defdZ%	 ddedeeef   dee   defdZ&	 ddedeeef   dee   defdZ'	 ddedeeef   dee   defdZ(	 ddedeeef   dee   defdZ)	 ddedeeef   dee   defdZ*	 ddedeeef   dee   defd Z+	 ddedeeef   dee   defd!Z,	 ddedeeef   dee   defd"Z-	 ddedeeef   dee   defd#Z.	 ddedeeef   dee   defd$Z/	 ddedeeef   dee   defd%Z0	 ddedeeef   dee   defd&Z1	 ddedeeef   dee   defd'Z2	 ddedeeef   dee   defd(Z3	 ddedeeef   dee   defd)Z4	 ddedeeef   dee   defd*Z5	 ddedeeef   dee   defd+Z6	 ddedeeef   dee   defd,Z7	 ddedeeef   dee   defd-Z8	 ddedeeef   dee   defd.Z9	 ddedeeef   dee   defd/Z:	 ddedeeef   dee   defd0Z;	 ddedeeef   dee   defd1Z<	 ddedeeef   dee   defd2Z=	 ddedeeef   dee   defd3Z>	 ddedeeef   dee   defd4Z?	 ddedeeef   dee   defd5Z@	 ddedeeef   dee   defd6ZA	 ddedeeef   dee   defd7ZB	 ddedeeef   dee   defd8ZC	 ddedeeef   dee   defd9ZD	 ddedeeef   dee   defd:ZE	 ddedeeef   dee   defd;ZF	 ddedeeef   dee   defd<ZG	 ddedeeef   dee   defd=ZH	 ddedeeef   dee   defd>ZI	 ddedeeef   dee   defd?ZJ	 ddedeeef   dee   defd@ZK	 ddedeeef   dee   defdAZL	 ddedeeef   dee   defdBZM	 ddedeeef   dee   defdCZN	 ddedeeef   dee   defdDZO	 ddedeeef   dee   defdEZP	 ddedeeef   dee   defdFZQ	 ddedeeef   dee   defdGZR	 ddedeeef   dee   defdHZS	 ddedeeef   dee   defdIZT	 ddedeeef   dee   defdJZU	 ddedeeef   dee   defdKZV	 ddedeeef   dee   defdLZW	 ddedeeef   dee   defdMZX	 ddedeeef   dee   defdNZY	 ddedeeef   dee   defdOZZ	 ddedeeef   dee   defdPZ[	 ddedeeef   dee   defdQZ\	 ddedeeef   dee   defdRZ]	 ddedeeef   dee   defdSZ^	 ddedeeef   dee   defdTZ_	 ddedeeef   dee   defdUZ`	 ddedeeef   dee   defdVZa	 ddedeeef   dee   defdWZb	 ddedeeef   dee   defdXZc	 ddedeeef   dee   defdYZd	 ddedeeef   dee   defdZZe	 ddedeeef   dee   defd[Zf	 ddedeeef   dee   defd\Zg	 ddedeeef   dee   defd]Zh	 ddedeeef   dee   defd^Zid_efd`Zjd_efdaZkd_efdbZl	 ddedeeef   dee   defdcZm	 ddedeeef   dee   defddZn	 ddedeeef   dee   defdeZo	 ddedeeef   dee   defdfZp	 ddedeeef   dee   defdgZq	 ddedeeef   dee   defdhZr	 ddedeeef   dee   defdiZs	 ddedeeef   dee   defdjZt	 ddedeeef   dee   defdkZu	 ddedeeef   dee   defdlZv	 ddedeeef   dee   defdmZw	 ddedeeef   dee   defdnZx	 ddedeeef   dee   defdoZy	 ddedeeef   dee   defdpZz	 ddedeeef   dee   defdqZ{	 ddedeeef   dee   defdrZ|	 ddedeeef   dee   defdsZ}	 ddedeeef   dee   defdtZ~	 ddedeeef   dee   defduZ	 ddedeeef   dee   defdvZ	 ddedeeef   dee   defdwZ	 ddedeeef   dee   defdxZ	 ddedeeef   dee   defdyZ	 ddedeeef   dee   defdzZ	 ddedeeef   dee   defd{Z	 ddedeeef   dee   defd|Z	 ddedeeef   dee   defd}Z	 ddedeeef   dee   defd~Z	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ	 ddedeeef   dee   defdZ G d dej<                        Z G d dej<                        Zy)    N)AnyAsyncIterator	AwaitableIteratorOptionalUnion)	urlencode   )_api_module)_common)_extra_utils)_transformers)types)BaseApiClient)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.models
api_clientfrom_objectparent_objectreturnc                    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             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S )Nvideo_metadataz8video_metadata parameter is not supported in Gemini API.thoughtcode_execution_resultcodeExecutionResultexecutable_codeexecutableCode	file_datafileDatafunction_callfunctionCallfunction_responsefunctionResponseinline_data
inlineDatatextgetv
ValueErrorsetvr   r   r   	to_objects       X/var/www/html/ts-aiml.yecor.com/venv/lib/python3.12/site-packages/google/genai/models.py_Part_to_mldevr0   "   s}   
 !)	+()*6
O
PP	+	{#/YKkI;!?@	+/01=	[234 
+)*+7%&[;L:M(NO	+}%1ZL${[M"BC	+()5^$d;8I&JK	++,-9	[./0 
+'3\ND}o$FG	+x ,VHd;9:	    c                     i }t        |dg      2t        |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,   r0   r   r   r   r.   items        r/   _Content_to_mldevr8   N   s    
 !)	+y!-		 [7)4	
 :tY7	
 
+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      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             |S )"Nexamplez1example parameter is not supported in Gemini API.patternz1pattern parameter is not supported in Gemini API.defaultz1default parameter is not supported in Gemini API.
max_lengthz4max_length parameter is not supported in Gemini API.
min_lengthz4min_length parameter is not supported in Gemini API.min_propertiesz8min_properties parameter is not supported in Gemini API.max_propertiesz8max_properties parameter is not supported in Gemini API.any_ofanyOfdescriptionenumformatitems	max_itemsmaxItemsmaximum	min_itemsminItemsminimumnullable
propertiesproperty_orderingpropertyOrderingrequiredtitletyper)   r-   s       r/   _Schema_to_mldevrU   d   s   
 !)	+	{#/
H
II	+	{#/
H
II	+	{#/
H
II	+~&2
K
LL	+~&2
K
LL	+()*6
O
PP	+()*6
O
PP	+z".WItK(<=	+'3]OT+%GH	+x ,VHd;9:	+z".XJ[8* =>	+y!-WItK';<	+}%1ZL${[M"BC	+	{#/YKkI;!?@	+}%1ZL${[M"BC	+	{#/YKkI;!?@	+
|$0ZL${ZL"AB	+~&2\ND|n$EF	++,-9	[./0 
+
|$0ZL${ZL"AB	+y!-WItK';<	+x ,VHd;9:	r1   c                 :    i }t        |dg      t        d      |S )Nfeature_selection_preferencezFfeature_selection_preference parameter is not supported in Gemini API.r*   r+   r-   s       r/   _ModelSelectionConfig_to_mldevrY      s2    
 !)	+678D
P  
r1   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	thresholdr)   r-   s       r/   _SafetySetting_to_mldevr^      sv    
 !)	+z".
G
HH	+
|$0ZL${ZL"AB	+}%1[M4k]#CD	r1   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             |S )Nresponsez2response parameter is not supported in Gemini API.rD   name
parametersr)   r-   s       r/   _FunctionDeclaration_to_mldevrc      s    
 !)	+
|$0
I
JJ	+'3]OT+%GH	+x ,VHd;9:	+~&2\ND|n$EF	r1   c                 
    i }|S N r-   s       r/   _GoogleSearch_to_mldevrg          
 !)	r1   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dynamicThresholdr*   r,   r-   s       r/    _DynamicRetrievalConfig_to_mldevro      g    
 !)	+x ,VHd;9:	++,-9	[./0 
r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S Ndynamic_retrieval_configdynamicRetrievalConfig)r*   r,   ro   r-   s       r/   _GoogleSearchRetrieval_to_mldevru     sO    
 !)	+234@	!"(9:;	
 
r1   c                    i }t        |dg      2t        |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
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code_executioncodeExecution)r*   r,   rc   r+   rg   ru   r6   s        r/   _Tool_to_mldevr     s'   
 !)	+/01=	  [+B*CD	
 **dIF	
 
+}%1
J
KK	+()5	[?*;<i	
 
+123?	 !'89:	
 
+()*6_%tK:J9K'LM	A	
s   C$c                     i }t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S Nrk   allowed_function_namesallowedFunctionNamesrn   r-   s       r/   _FunctionCallingConfig_to_mldevr   F  g    
 !)	+x ,VHd;9:	+012>	 [345 
r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S Nfunction_calling_configfunctionCallingConfig)r*   r,   r   r-   s       r/   _ToolConfig_to_mldevr   Y  sO    
 !)	+123?	 !'89:	
 
r1   c                 V    i }t        |dg      t        |dgt        |dg             |S N
voice_name	voiceNamern   r-   s       r/   _PrebuiltVoiceConfig_to_mldevr   m  5    
 !)	+~&2[M4l^#DE	r1   c                 l    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   y  sM    
 !)	+/01=	%[+B*CDi	
 
r1   c                     i }t        |dg      $t        |dgt        | t        |dg      |             t        |dg      t        |dgt        |dg             |S Nvoice_configvoiceConfiglanguage_codelanguageCode)r*   r,   r   r-   s       r/   _SpeechConfig_to_mldevr     ss    
 !)	+'(4	[>*:;Y	
 
+()5^$d;8I&JK	r1   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thinkingBudgetrn   r-   s       r/   _ThinkingConfig_to_mldevr     l    
 !)	+*+,8%&[;M:N(O 
+)*+7%&[;L:M(NO	r1   c                 (	   i }t        |dg      8t        |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      8t        |dgt        | t        j                  | t        |dg            |             t        |dg      t        d      t        |dg      t        d      t        |dg      2t        |dgt        |dg      D cg c]  }t        | ||       c}       t        |d g      Zt        |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      8t        |d,gt        | t        j                  | t        |d+g            |             t        |d-g      t        d.      t        |d/g      $t        |d0gt!        | t        |d/g      |             |S c c}w c c}w )1N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responseSchema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,   r8   t	t_contentrU   t_schemar+   r^   t_toolsr   t_toolr   t_cached_content_namer   t_speech_configr   r6   s        r/   _GenerateContentConfig_to_mldevr     sS   
 !)	+,-.:	KK
D7K6L$MN	
 
+'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	
 
+()*6
O
PP	+012>
J  
+)*+7	 [+<*=>	
 $Ji@	
 
+y!-		 		*d;	.JK	
 :qxx
D'A9M	
 
+'3	[=/:I	
 
+z".
G
HH	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5	j${_<M*NO	
 
+)*+7
C  
+)*+7	 [+<*=>		
 
U	
	
s   )R
<(Rc                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Ft        |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_contentsr8   r   r6   s        r/   #_GenerateContentParameters_to_mldevr   [  s    
 !)	+y!-				*d;	:; 
+
|$0	 Dzl;	
 j$	:	
	 
+z".	'[8*5y	
 
#	
   6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[]taskTyperS   output_dimensionalityoutputDimensionality	mime_typez3mime_type parameter is not supported in Gemini API.auto_truncatez7auto_truncate parameter is not supported in Gemini API.r*   r,   r+   r-   s       r/   _EmbedContentConfig_to_mldevr     s    
 !)	+}%1	z"[;-( 
+y!-w/kG91MN	+/01=	-.[234 
+}%1
J
KK	+()5
N
OO	r1   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 )Nr   r   r   r   contentr   )r*   r,   r   r   t_contents_for_embedr   r-   s       r/    _EmbedContentParameters_to_mldevr     s    
 !)	+y!-				*d;	:; 
+
|$0	y!	z4j\+JK 
+z".	
$[8*5y	
 Wii
Dwi89
 
r1   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      |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_imagesrb   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rb   outputOptionsmimeTypeoutput_compression_qualityrb   r
  compressionQualityadd_watermarkz7add_watermark parameter is not supported in Gemini API.enhance_prompt8enhance_prompt parameter is not supported in Gemini API.)r*   r+   r,   )_SafetyFilterLevel_to_mldev_enum_validate(_PersonGeneration_to_mldev_enum_validater-   s       r/   _GenerateImagesConfig_to_mldevr    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	+()*6
O
PP	r1   c                 0   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 Nr   r   promptinstances[0]r   )r*   r,   r   r   r  r-   s       r/   "_GenerateImagesParameters_to_mldevr  -  s    
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z".	
&[8*5y	
 
r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S Nr   r   ra   r   r*   r,   r   r   r-   s       r/   _GetModelParameters_to_mldevr  I  p    
 !)	+y!-				*d;	:; 
+z".XJ[8* =>	r1   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_baser   
models_urlr*   r,   r   t_models_urlr-   s       r/   _ListModelsConfig_to_mldevr+  \      
 !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".8,d;
.KL	+~&2		z4l^#DE 
r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S Nr   )r*   r,   r+  r-   s       r/   _ListModelsParameters_to_mldevr/  |  sH    
 !)	+z".	
"[8*5y	
 
r1   c                     i }t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S Ndisplay_namedisplayNamerD   rn   r-   s       r/   _UpdateModelConfig_to_mldevr4    ]    
 !)	+'(4kN;K)LM	+'3kM?)KL	r1   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 r  )r*   r,   r   r   r4  r-   s       r/   _UpdateModelParameters_to_mldevr7    s    
 !)	+y!-				*d;	:; 
+z".	
#[8*5y	
 
r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S r  r  r-   s       r/   _DeleteModelParameters_to_mldevr9    r  r1   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.rX   r-   s       r/   _CountTokensConfig_to_mldevr<    sp    
 !)	+,-.:
F  
+y!-
F
GG	++,-9
E  
r1   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Ft        |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 Nr   r   r   r   )r*   r,   r   r   r   r8   r<  r6   s        r/   _CountTokensParameters_to_mldevr?    s    
 !)	+y!-				*d;	:; 
+
|$0	 Dzl;	
 j$	:	
	 
+z".	
#[8*5y	
 
#	
r   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   r  )r*   r+   r,   r   t_bytesr-   s       r/   _Image_to_mldevrE    s    
 !)	+	{#/
H
II	+'3				*d;@A 
+}%1ZL${[M"BC	r1   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      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      |S )Nnumber_of_videosrb   r   r   r   fpsz-fps parameter is not supported in Gemini API.duration_secondsdurationSecondsr   r   r   r   
resolutionz4resolution parameter is not supported in Gemini API.r  r  pubsub_topicz6pubsub_topic parameter is not supported in Gemini API.r   negativePromptr  r  r   r-   s       r/   _GenerateVideosConfig_to_mldevrN    s   
 !)	+*+,8	}%[-./ 
+()*6
O
PP	+w+
D
EE	+*+,8	()[-./ 
+x ,
E
FF	+'(4	}%[>*+ 
+~&2
K
LL	++,-9	)*[./0 
+'(4
M
NN	+)*+7	'([,-. 
+()*6
O
PP	r1   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gt        | t        |dg      |             |S Nr   r   r  r  imager   )r*   r,   r   r   rE  rN  r-   s       r/   "_GenerateVideosParameters_to_mldevrR  [  s    
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	!
Dwi$@)L 
+z".	
&[8*5y	
 
r1   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             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S )Nr   videoMetadatar   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   rn   r-   s       r/   _Part_to_vertexrU  ~  s   
 !)	+()*6_%tK:J9K'LM	+	{#/YKkI;!?@	+/01=	[234 
+)*+7%&[;L:M(NO	+}%1ZL${[M"BC	+()5^$d;8I&JK	++,-9	[./0 
+'3\ND}o$FG	+x ,VHd;9:	r1   c                     i }t        |dg      2t        |dgt        |dg      D cg c]  }t        | ||       c}       t        |dg      t        |dgt        |dg             |S c c}w r3   )r*   r,   rU  r6   s        r/   _Content_to_vertexrW    s    
 !)	+y!-		 [7)4	
 Ji8	
 
+x ,VHd;9:		
r9   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             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      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>   	maxLengthr?   	minLengthr@   minPropertiesrA   maxPropertiesrB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rn   r-   s       r/   _Schema_to_vertexr]    si   
 !)	+	{#/YKkI;!?@	+	{#/YKkI;!?@	+	{#/YKkI;!?@	+~&2[M4l^#DE	+~&2[M4l^#DE	+()*6_%tK:J9K'LM	+()*6_%tK:J9K'LM	+z".WItK(<=	+'3]OT+%GH	+x ,VHd;9:	+z".XJ[8* =>	+y!-WItK';<	+}%1ZL${[M"BC	+	{#/YKkI;!?@	+}%1ZL${[M"BC	+	{#/YKkI;!?@	+
|$0ZL${ZL"AB	+~&2\ND|n$EF	++,-9	[./0 
+
|$0ZL${ZL"AB	+y!-WItK';<	+x ,VHd;9:	r1   c                 V    i }t        |dg      t        |dgt        |dg             |S )NrW   featureSelectionPreferencern   r-   s       r/   _ModelSelectionConfig_to_vertexr`    sA    
 !)	+678D	%&[9:; 
r1   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]   rn   r-   s       r/   _SafetySetting_to_vertexrb    s    
 !)	+z".XJ[8* =>	+
|$0ZL${ZL"AB	+}%1[M4k]#CD	r1   c                 P   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             |S )Nr`   rD   ra   rb   )r*   r,   r]  r-   s       r/   _FunctionDeclaration_to_vertexrd  1  s    
 !)	+
|$0	[:,7	
 
+'3]OT+%GH	+x ,VHd;9:	+~&2\ND|n$EF	r1   c                 
    i }|S re   rf   r-   s       r/   _GoogleSearch_to_vertexrf  L  rh   r1   c                     i }t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S rj   rn   r-   s       r/   !_DynamicRetrievalConfig_to_vertexrh  V  rp   r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S rr   )r*   r,   rh  r-   s       r/    _GoogleSearchRetrieval_to_vertexrj  i  sO    
 !)	+234@	!")9:;	
 
r1   c                    i }t        |dg      2t        |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        |dg             |S c c}w )
Nrw   rx   ry   rz   r{   r|   r}   r~   r   )r*   r,   rd  rf  rj  r6   s        r/   _Tool_to_vertexrl  }  s2   
 !)	+/01=	  [+B*CD	
 +:tYG	
 
+}%1[M4k]#CD	+()5	[?*;<i	
 
+123?	 !(89:	
 
+()*6_%tK:J9K'LM	A	
s   C2c                     i }t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S r   rn   r-   s       r/    _FunctionCallingConfig_to_vertexrn    r   r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S r   )r*   r,   rn  r-   s       r/   _ToolConfig_to_vertexrp    sO    
 !)	+123?	 !(89:	
 
r1   c                 V    i }t        |dg      t        |dgt        |dg             |S r   rn   r-   s       r/   _PrebuiltVoiceConfig_to_vertexrr    r   r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S r   )r*   r,   rr  r-   s       r/   _VoiceConfig_to_vertexrt    sM    
 !)	+/01=	&[+B*CDi	
 
r1   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,   rt  r-   s       r/   _SpeechConfig_to_vertexrv    ss    
 !)	+'(4	[>*:;Y	
 
+()5^$d;8I&JK	r1   c                     i }t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S r   rn   r-   s       r/   _ThinkingConfig_to_vertexrx    r   r1   c                 	   i }t        |dg      8t        |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      8t        |dgt        | t        j                  | 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      2t        |dgt        |dg      D cg c]  }t        | ||       c}       t        |d g      Zt        |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      8t        |d+gt        | t        j                  | t        |d*g            |             t        |d,g      t        |d-gt        |d,g             t        |d.g      $t        |d/gt!        | t        |d.g      |             |S c c}w c c}w )0Nr   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,   rW  r   r   r]  r   r`  rb  r   rl  r   rp  r   rv  r   rx  r6   s        r/    _GenerateContentConfig_to_vertexr}    s   
 !)	+,-.:	KK
D7K6L$MN	
 
+'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	
 
+()*6_%tK:J9K'LM	+012>	'[+C*DEy	
 
+)*+7	 [+<*=>	
 %ZyA	
 
+y!-		 		*d;	.JK	
 JT(BIN	
 
+'3	[=/:I	
 
+z".
Dxj$AB	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5	j${_<M*NO	
 
+)*+7%&[;L:M(NO	+)*+7	![+<*=>		
 
Q	
	
s   S#(Sc                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Ft        |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   rW  r}  r6   s        r/   $_GenerateContentParameters_to_vertexr    s    
 !)	+y!-				*d;	:; 
+
|$0	 Dzl;	
 z4;	
	 
+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[]rS   r   rb   r   r   r  r   autoTruncatern   r-   s       r/   _EmbedContentConfig_to_vertexr    s    
 !)	+}%1	$[;-( 
+y!-0${WI2NO	+/01=	-.[234 
+}%1	
#[;-( 
+()5	~&[?+, 
r1   c                 X   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 )Nr   r   r   r  r   r   )r*   r,   r   r   r   r  r-   s       r/   !_EmbedContentParameters_to_vertexr    s    
 !)	+y!-				*d;	:; 
+
|$0		"	z4j\+JK 
+z".	
%[8*5y	
 
r1   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             |S )Nr   rb   
storageUrir   rM  r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r  r  r  addWatermarkr  enhancePromptrn   r-   s       r/   _GenerateImagesConfig_to_vertexr  /  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	~&[?+, 
+()*6	'[+,- 
r1   c                 0   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 r  )r*   r,   r   r   r  r-   s       r/   #_GenerateImagesParameters_to_vertexr    s    
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z".	
'[8*5y	
 
r1   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 )NrA  gcsUrirB  rC  r   r  r*   r,   r   rD  r-   s       r/   _Image_to_vertexr    s    
 !)	+	{#/XJ[9+ >?	+'3				*d;@A 
+}%1ZL${[M"BC	r1   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dilationrn   r-   s       r/   _MaskReferenceConfig_to_vertexr    s    
 !)	+}%1ZL${[M"BC	+./0<M?D7M6N$O 
+()5ZL${_4E"FG	r1   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computeControlrn   r-   s       r/   !_ControlReferenceConfig_to_vertexr    si    
 !)	+'(4]OT+7G%HI	+:;<H	[=>? 
r1   c                 V    i }t        |dg      t        |dgt        |dg             |S )Nstyle_descriptionstyleDescriptionrn   r-   s       r/   _StyleReferenceConfig_to_vertexr    sA    
 !)	++,-9	[./0 
r1   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subjectDescriptionrn   r-   s       r/   !_SubjectReferenceConfig_to_vertexr    si    
 !)	+'(4]OT+7G%HI	+-./;	[012 
r1   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  r  r-   s       r/   _ReferenceImageAPI_to_vertexr    s   
 !)	+)*+7	[+<*=>		
 
+'(4]OT+7G%HI	+()*6_%tK:J9K'LM	++,-9	&[+>*?@)	
 
+./0<	)[+A*BCY	
 
+,-.:	'[+?*@A9	
 
+./0<	)[+A*BCY	
 
r1   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        |g dt        |dg             |S )Nr   rb   r  r   rM  r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r	  r  r  	edit_modeeditMode
base_steps)rb   
editConfig	baseStepsrn   r-   s       r/   _EditImageConfig_to_vertexr  V  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 
+}%1	z"[;-( 
+~&21[<.) 
r1   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      3t        |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 )Nr   r   r  r  reference_imagesreferenceImagesr   )r*   r,   r   r   r  r  r6   s        r/   _EditImageParameters_to_vertexr    s   
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+*+,8	*+ [+=*>?	
 )T9E	
 
+z".	
"[8*5y	
 
	
s   
C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        |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 )Nr  rb   r  r  r	  r  r  r   r   rk   rn   r-   s       r/    _UpscaleImageAPIConfig_to_vertexr    s    
 !)	+,-.:	)*[/01 
+*+,83[-./ 
+456B=[789 
+*+,8	}%[-./ 
+x ,v.[6(0KL	r1   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 )Nr   r   rQ  r  upscale_factor)rb   upscaleConfigupscaleFactorr   )r*   r,   r   r   r  r  r-   s       r/   $_UpscaleImageAPIParameters_to_vertexr  	  s    
 !)	+y!-				*d;	:; 
+y!-	!T+y%A9M 
+()*68[+,- 
+z".	
([8*5y	
 
r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S r  r  r-   s       r/   _GetModelParameters_to_vertexr  ;	  r  r1   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 r   r)  r-   s       r/   _ListModelsConfig_to_vertexr  N	  r,  r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S r.  )r*   r,   r  r-   s       r/   _ListModelsParameters_to_vertexr  n	  sH    
 !)	+z".	
#[8*5y	
 
r1   c                     i }t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S r1  rn   r-   s       r/   _UpdateModelConfig_to_vertexr  	  r5  r1   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 )Nr   r   r   )r*   r,   r   r   r  r-   s       r/    _UpdateModelParameters_to_vertexr  	  s    
 !)	+y!-				*d;	:; 
+z".	
$[8*5y	
 
r1   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S r  r  r-   s       r/    _DeleteModelParameters_to_vertexr  	  r  r1   c                 h   i }t        |dg      8t        |dgt        | t        j                  | t        |dg            |             t        |dg      2t        |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;  r   )r*   r,   rW  r   r   rl  r6   s        r/   _CountTokensConfig_to_vertexr  	  s    
 !)	+,-.:	KK
D7K6L$MN	
 
+y!-		 [7)4	
 Ji8	
 
++,-9	[./0 
	
s   ,B/c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Ft        |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   rW  r  r6   s        r/    _CountTokensParameters_to_vertexr  	  s    
 !)	+y!-				*d;	:; 
+
|$0	 Dzl;	
 z4;	
	 
+z".	
$[8*5y	
 
#	
r   c                 |   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Ft        |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   rW  r6   s        r/   "_ComputeTokensParameters_to_vertexr  
  s    
 !)	+y!-				*d;	:; 
+
|$0	 Dzl;	
 z4;	
	 
+z".XJ[8* =>		
s   6B9c                 d   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             |S )NrG  rb   r   r   r  rH  rI  rJ  r   r   r   rK  r  r  rL  pubsubTopicr   rM  r  r  rn   r-   s       r/   _GenerateVideosConfig_to_vertexr  &
  s0   
 !)	+*+,8	}%[-./ 
+()*6	|$[+,- 
+w+u-tK%/IJ	+*+,8	()[-./ 
+x ,v.[6(0KL	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4	}%[>*+ 
+)*+7	'([,-. 
+()*6	'[+,- 
r1   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gt        | t        |dg      |             |S rP  )r*   r,   r   r   r  r  r-   s       r/   #_GenerateVideosParameters_to_vertexr  u
  s    
 !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	!T+y%A9M 
+z".	
'[8*5y	
 
r1   
enum_valuec                 >    | t        g d      v rt        |  d      y )N)(FEATURE_SELECTION_PREFERENCE_UNSPECIFIEDPRIORITIZE_QUALITYBALANCEDPRIORITIZE_COST+ enum value is not supported in Gemini API.setr+   r  s    r/   2_FeatureSelectionPreference_to_mldev_enum_validater  
  s0    3    
|#NO
PPr1   c                 <    | t        dg      v rt        |  d      y )N
BLOCK_NONEr  r  r  s    r/   r  r  
  s)    3~&&

|#NO
PP 'r1   c                 <    | t        dg      v rt        |  d      y )N	ALLOW_ALLr  r  r  s    r/   r  r  
  s)    3}%%

|#NO
PP &r1   c                 j   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             |S )Nr   r   r   r   r   r!   r    r#   r"   r%   r$   r'   r&   r(   rn   r-   s       r/   _Part_from_mldevr  
  s`   
 !)	+	{#/YKkI;!?@	+-./;	 ![012 
+()*6&'k<L;M)NO	+
|$0[M4j\#BC	+'(4_%tK.9I'JK	+*+,8	[-./ 
+~&2]OT+~%FG	+x ,VHd;9:	r1   c                     i }t        |dg      2t        |dgt        |dg      D cg c]  }t        | ||       c}       t        |dg      t        |dgt        |dg             |S c c}w r3   )r*   r,   r  r6   s        r/   _Content_from_mldevr  
  s    
 !)	+y!-		 [7)4	
 Zy9	
 
+x ,VHd;9:		
r9   c                 V    i }t        |dg      t        |dgt        |dg             |S )NcitationSources	citationsrn   r-   s       r/   _CitationMetadata_from_mldevr  
  s9    
 !)	+)*+7[M46G5H#IJ	r1   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        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      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   citationMetadatacitation_metadata
tokenCounttoken_countfinishReasonfinish_reasonavgLogprobsavg_logprobsgroundingMetadatagrounding_metadataindexlogprobsResultlogprobs_resultsafetyRatingssafety_ratings)r*   r,   r  r  r-   s       r/   _Candidate_from_mldevr	  
  s   
 !)	+	{#/	[9+6		
 
+*+,8	$[+=*>?	
 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	+'3^$d;&HI	++,-9	[./0 
+y!-WItK';<	+()*6&'k<L;M)NO	+()5%&[?:K(LM	r1   c                 v   i }t        |dg      2t        |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             |S c c}w )N
candidatesmodelVersionmodel_versionpromptFeedbackprompt_feedbackusageMetadatausage_metadata)r*   r,   r	  r6   s        r/   #_GenerateContentResponse_from_mldevr  ,  s    
 !)	+~&2	 [<.9	
 "*dI>	
 
+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+()5%&[?:K(LM		
s   B6c                 
    i }|S re   rf   r-   s       r/   &_ContentEmbeddingStatistics_from_mldevr  H  rh   r1   c                 V    i }t        |dg      t        |dgt        |dg             |S )Nvaluesrn   r-   s       r/   _ContentEmbedding_from_mldevr  R  s5    
 !)	+z".XJ[8* =>	r1   c                 
    i }|S re   rf   r-   s       r/    _EmbedContentMetadata_from_mldevr  ^  rh   r1   c                     i }t        |dg      2t        |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 )N
embeddingsmetadata)r*   r,   r  r  r6   s        r/    _EmbedContentResponse_from_mldevr  h  s    
 !)	+~&2	 [<.9	
 )T9E	
 
+
|$0	([:,7	
 
	
   A5c                     i }t        |dg      -t        |dgt        j                  | t        |dg                   t        |dg      t        |dgt        |dg             |S )NrC  rB  r  r   r  r-   s       r/   _Image_from_mldevr     sq    
 !)	+,-.:				*d;1E0FGH 
+
|$0[M4j\#BC	r1   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_typern   r-   s       r/   _SafetyAttributes_from_mldevr(        
 !)	+*L9:F	[-|<= 
+*H56BH:tK2Dh1OP 
+'3^$d;&HI	r1   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 )N_selfrQ  raiFilteredReasonrai_filtered_reasonsafety_attributes)r*   r,   r   r(  r-   s       r/   _GeneratedImage_from_mldevr/    s    
 !)	+y!-		*d;	&BIN 
++,-9	[./0 
+y!-	$[7)4i	
 
r1   c                     i }t        |dg      2t        |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 Npredictionsgenerated_imagespositivePromptSafetyAttributes!positive_prompt_safety_attributes)r*   r,   r/  r(  r6   s        r/   "_GenerateImagesResponse_from_mldevr6    s    
 !)	+'3	 [=/:	
 'z4C	
 
+89:F	,-$?@A	
 
#	
r  c                 
    i }|S re   rf   r-   s       r/   _Endpoint_from_mldevr8    rh   r1   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_timern   r-   s       r/   _TunedModelInfo_from_mldevr@    s    
 !)	+}%1\ND{m$DE	+~&2]OT+~%FG	+~&2]OT+~%FG	r1   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 )Nra   r3  r2  rD   versionr+  tuned_model_infoinputTokenLimitinput_token_limitoutputTokenLimitoutput_token_limitsupportedGenerationMethodssupported_actions)r*   r,   r@  r-   s       r/   _Model_from_mldevrJ  
  sw   
 !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+	{#/YKkI;!?@	+y!-	"[7)4i	
 
+)*+7'(${=N<O*P 
+*+,8	[-./ 
+456B	[789 
r1   c                    i }t        |dg      t        |dgt        |dg             t        |dg      Ft        |dgt        j                  | t        |dg            D cg c]  }t	        | ||       c}       |S c c}w NnextPageTokennext_page_tokenr+  models)r*   r,   r   t_extract_modelsrJ  r6   s        r/   _ListModelsResponse_from_mldevrQ  ;  s    
 !)	+()5&'kO;L)MN	+y!-	
 **Dwi8	
 j$	:	
	 
	
   !A>c                 
    i }|S re   rf   r-   s       r/   _DeleteModelResponse_from_mldevrT  S  rh   r1   c                     i }t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S )NtotalTokenstotal_tokenscachedContentTokenCountcached_content_token_countrn   r-   s       r/   _CountTokensResponse_from_mldevrZ  ]  sh    
 !)	+'3^$d;&HI	+123?	%&[456 
r1   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 )NvideouriencodedVideovideo_bytesencodingr   r  r-   s       r/   _Video_from_mldevra  p  s    
 !)	+'(4UGT+/?@A	+01=				*d;.0IJK 
+
|$0[M4j\#BC	r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S Nr+  r\  )r*   r,   ra  r-   s       r/   _GeneratedVideo_from_mldevrd    sE    
 !)	+y!-		*d;	&BIN 
r1   c                 *   i }t        |dg      2t        |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,   rd  r6   s        r/   "_GenerateVideosResponse_from_mldevrl    s    
 !)	+*+,8	 [+=*>?	
 'z4C	
 
+/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 )Nra   r  doneerrorr`   generateVideoResponseresult)r*   r,   rl  r-   s       r/   #_GenerateVideosOperation_from_mldevrs    s-   
 !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
$;<=I	*z+BCD	
 
+
$;<=I	
*z+BCD	
 
r1   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             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S )NrT  r   r   r   r   r   r   r!   r    r#   r"   r%   r$   r'   r&   r(   rn   r-   s       r/   _Part_from_vertexru    s   
 !)	+()5%&[?:K(LM	+	{#/YKkI;!?@	+-./;	 ![012 
+()*6&'k<L;M)NO	+
|$0[M4j\#BC	+'(4_%tK.9I'JK	+*+,8	[-./ 
+~&2]OT+~%FG	+x ,VHd;9:	r1   c                     i }t        |dg      2t        |dgt        |dg      D cg c]  }t        | ||       c}       t        |dg      t        |dgt        |dg             |S c c}w r3   )r*   r,   ru  r6   s        r/   _Content_from_vertexrw    s    
 !)	+y!-		 [7)4	
 j$	:	
 
+x ,VHd;9:		
r9   c                 V    i }t        |dg      t        |dgt        |dg             |S )Nr  rn   r-   s       r/   _CitationMetadata_from_vertexry  $  s5    
 !)	+}%1[M4k]#CD	r1   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        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      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  finishMessagefinish_messager  r  r   r  r  r  r  r  r  r  r  )r*   r,   rw  ry  r-   s       r/   _Candidate_from_vertexr}  0  s   
 !)	+	{#/	[9+6		
 
+*+,8	%[+=*>?	
 
+()5%&[?:K(LM	+'(4_%tK.9I'JK	+'3^$d;&HI	++,-9	[./0 
+y!-WItK';<	+()*6&'k<L;M)NO	+()5%&[?:K(LM	r1   c                    i }t        |dg      2t        |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=  
responseIdresponse_idr  r  r  r  r  r  )r*   r,   r}  r6   s        r/   $_GenerateContentResponse_from_vertexr  d  s*   
 !)	+~&2	 [<.9	
 #:tY?	
 
+~&2]OT+~%FG	+~&2]OT+~%FG	+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+()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  rn   r-   s       r/   '_ContentEmbeddingStatistics_from_vertexr    s[    
 !)	+}%1[M4k]#CD	+'3]OT+%GH	r1   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,   r  r-   s       r/   _ContentEmbedding_from_vertexr    sn    
 !)	+z".XJ[8* =>	+~&2	/[<.99	
 
r1   c                 V    i }t        |dg      t        |dgt        |dg             |S )NbillableCharacterCountbillable_character_countrn   r-   s       r/   !_EmbedContentMetadata_from_vertexr    sA    
 !)	+012>	#$[345 
r1   c                     i }t        |ddg      3t        |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 )Nzpredictions[]r  r  )r*   r,   r  r  r6   s        r/   !_EmbedContentResponse_from_vertexr    s    
 !)	+67C	 [?L*IJ	
 **dIF	
 
+
|$0	)[:,7	
 
	
s   A7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  rA  rC  rB  r  r   r  r-   s       r/   _Image_from_vertexr    s    
 !)	+z".YKkH:!>?	+,-.:				*d;1E0FGH 
+
|$0[M4j\#BC	r1   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"  rn   r-   s       r/   _SafetyAttributes_from_vertexr    r)  r1   c                 f   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+  rQ  r,  r-  r.  r  enhanced_prompt)r*   r,   r  r  r-   s       r/   _GeneratedImage_from_vertexr    s    
 !)	+y!-		:tK''CYO 
++,-9	[./0 
+y!-	%[7)4i	
 
+z".&'kH:)FG	r1   c                     i }t        |dg      2t        |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 r1  )r*   r,   r  r  r6   s        r/   #_GenerateImagesResponse_from_vertexr  '  s    
 !)	+'3	 [=/:	
 (
D)D	
 
+89:F	,-%?@A	
 
#	
r  c                     i }t        |dg      2t        |dgt        |dg      D cg c]  }t        | ||       c}       |S c c}w Nr2  r3  r*   r,   r  r6   s        r/   _EditImageResponse_from_vertexr  E  `    
 !)	+'3	 [=/:	
 (
D)D	
 
	
   Ac                     i }t        |dg      2t        |dgt        |dg      D cg c]  }t        | ||       c}       |S c c}w r  r  r6   s        r/   !_UpscaleImageResponse_from_vertexr  X  r  r  c                     i }t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             |S )Nendpointra   deployedModelIddeployed_model_idrn   r-   s       r/   _Endpoint_from_vertexr  k  sf    
 !)	+
|$0VHd;=>	+)*+7'(${=N<O*P 
r1   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?  rn   r-   s       r/   _TunedModelInfo_from_vertexr  |  s    
 !)
;#KLM 		[8%MNO 
+~&2]OT+~%FG	+~&2]OT+~%FG	r1   c                 p   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      2t        |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      |             |S c c}w )Nra   r3  r2  rD   	versionIdrB  deployedModels	endpointsr   r+  rC  )r*   r,   r  r  r6   s        r/   _Model_from_vertexr    s\   
 !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+}%1YKkK=!AB	+()*6	 [+;*<=	
 "*dI>	
 
+z".XJ[8* =>	+y!-	#[7)4i	
 
%	
s   ?D3c                    i }t        |dg      t        |dgt        |dg             t        |dg      Ft        |dgt        j                  | t        |dg            D cg c]  }t	        | ||       c}       |S c c}w rL  )r*   r,   r   rP  r  r6   s        r/   _ListModelsResponse_from_vertexr    s    
 !)	+()5&'kO;L)MN	+y!-	
 **Dwi8	
 z4;	
	 
	
rR  c                 
    i }|S re   rf   r-   s       r/    _DeleteModelResponse_from_vertexr    rh   r1   c                 V    i }t        |dg      t        |dgt        |dg             |S )NrV  rW  rn   r-   s       r/    _CountTokensResponse_from_vertexr    s6    
 !)	+'3^$d;&HI	r1   c                 V    i }t        |dg      t        |dgt        |dg             |S )N
tokensInfotokens_inforn   r-   s       r/   "_ComputeTokensResponse_from_vertexr    s5    
 !)	+~&2]OT+~%FG	r1   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]  rC  r_  r  r   r  r-   s       r/   _Video_from_vertexr    s    
 !)	+z".UGT+z:;	+,-.:				*d;1E0FGH 
+
|$0[M4j\#BC	r1   c                 l    i }t        |dg      $t        |dgt        | t        |dg      |             |S rc  )r*   r,   r  r-   s       r/   _GeneratedVideo_from_vertexr    sE    
 !)	+y!-		:tK''CYO 
r1   c                 *   i }t        |dg      2t        |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videosrg  rh  ri  rj  rk  )r*   r,   r  r6   s        r/   #_GenerateVideosResponse_from_vertexr     s    
 !)	+z".	 [8*5	
 (
D)D	
 
+/01=	#$[234 
+123?	%&[456 
)	
rm  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 )Nra   r  ro  rp  r`   rr  )r*   r,   r  r-   s       r/   $_GenerateVideosOperation_from_vertexr  A  s   
 !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
|$0	+[:,7	
 
+
|$0	
+[:,7	
 
r1   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ej:                     dej<                  fdZdddeej@                     dejB                  fdZ"dddedeejF                     dej<                  fdZ$dddedeejJ                     dejL                  fdZ'dddedeej                  ej                  f   deejP                     dejR                  fdZ*dddedeej                  ej                  f   deejV                     dejX                  fdZ-ddddded
ee   deej2                     deej\                     dej^                  f
dZ0dddedeej                  ej                  f   deej                     dej                  fdZ1dddedeej                  ej                  f   deej                     deej                     fdZ2ddded
edeej"                     dej$                  fdZ3ddded
edeej*                     deej,                     dej.                  f
dZ4dddedej2                  dedeejj                     dej6                  f
dZ6dddeej@                     de7ej<                     fdZy)ModelsNr   r   r   r   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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                               }| j                  j+                  |       |S 	Nr   r   r   r   z{model}:generateContentr"  ?r   postr`   kwargs)r   _GenerateContentParameters_api_clientvertexair  get
format_mapr   r	   popr   http_optionsr   convert_to_dictencode_unserializable_typesrequestr  r  GenerateContentResponse_from_response
model_dump_verify_responseselfr   r   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsr  response_dictreturn_values               r/   _generate_contentzModels._generate_contentj  s    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M   :


Mm
 :


Mm 00??'A'A'C @ L 	%%l3r1   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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                               }| j                  j+                  |       |  y w)	Nr  r   %{model}:streamGenerateContent?alt=sser"  r  r   r  r  )r   r  r  r  r  r  r  r   r	   r  r   r  r   r  r  request_streamedr  r  r  r  r  r  r  s               r/   _generate_content_streamzModels._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))::lL  
			"	"<m

 <m
 22AA )C)C)E B l ''5%s   G8G: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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                         
      }| j                  j+                  |       |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  r   {model}:predict{model}:batchEmbedContentsr"  r  r   Nr  r  )r   _EmbedContentParametersr  r  r  r  r  r   r	   r  r   r  r   r  r  r  r  r  EmbedContentResponser  r  r  r  s               r/   embed_contentzModels.embed_content  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M   7


Mm
 7


Mm --<<'A'A'C = L 	%%l3r1   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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                         	      }| j                  j+                  |       |S 
zGenerates 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.
    r   r  r   r   r  r"  r  r   Nr  r  )r   _GenerateImagesParametersr  r  r  r  r  r  r	   r  r   r  r   r  r  r  r  r6  GenerateImagesResponser  r  r  r  r   r  r   r  r  r  r  r  r  r  r  s               r/   _generate_imageszModels._generate_imagesT  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M   9


Mm
 9


Mm //>>'A'A'C ? L 	%%l3r1   r  c                N   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                  j                  rt!        | j                  |      }t         j"                  j%                  ||j'                         
      }| j                  j)                  |       |S )L  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  r   6This method is only supported in the Vertex AI client.r   r  r"  r  r   Nr  r  )r   _EditImageParametersr  r  r+   r  r  r  r	   r  r   r  r   r  r  r  r  EditImageResponser  r  r  r  r   r  r  r   r  r  r  r  r  r  r  r  s                r/   _edit_imagezModels._edit_image  s   d 00)	O $$OPP3


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL$$,,lLM   4


Mm **99'A'A'C : L 	%%l3r1   rQ  r  c                N   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                  j                  rt!        | j                  |      }t         j"                  j%                  ||j'                         
      }| j                  j)                  |       |S a  Upscales an 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 (_UpscaleImageAPIConfig): Configuration for upscaling.
    r   rQ  r  r   r  r   r  r"  r  r   Nr  r  )r   _UpscaleImageAPIParametersr  r  r+   r  r  r  r	   r  r   r  r   r  r  r  r  UpscaleImageResponser  r  r  r  r   rQ  r  r   r  r  r  r  r  r  r  r  s                r/   _upscale_imagezModels._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$$,,lLM   7


Mm --<<'A'A'C = L 	%%l3r1   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                  j                  rt!        | j                  |	      }	nt#        | j                  |	      }	t         j$                  j'                  |	|j)                               }
| j                  j+                  |
       |
S 	Nr   r   r   {name}r"  r  r   r  r  )r   _GetModelParametersr  r  r  r  r  r  r	   r  r   r  r   r  r  r  r  rJ  Modelr  r  r  r  r   r   r  r  r  r  r  r  r  r  s              r/   r  z
Models.getJ  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\<M   ()9)9=Im ((8(8-Hm;;--'A'A'C . L 	%%l3r1   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                  j                  rt!        | j                  |      }nt#        | j                  |      }t         j$                  j'                  ||j)                               }	| j                  j+                  |	       |	S 	Nr  r   z{models_url}r"  r  r   r  r  )r   _ListModelsParametersr  r  r  r  r  r/  r	   r  r   r  r   r  r  r  r  rQ  ListModelsResponser  r  r  
r  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\<M   5


Mm
 5


Mm ++::'A'A'C ; L 	%%l3r1   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                  j                  rt!        | j                  |	      }	nt#        | j                  |	      }	t         j$                  j'                  |	|j)                         	      }
| j                  j+                  |
       |
S 
Nr  r   z{model}r  r"  r  r   patchr  )r   _UpdateModelParametersr  r  r  r  r  r7  r	   r  r   r  r   r  r  r  r  rJ  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$$,,|\M   ()9)9=Im ((8(8-Hm;;--'A'A'C . L 	%%l3r1   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                  j                  rt!        | j                  |	      }	nt#        | j                  |	      }	t         j$                  j'                  |	|j)                               }
| j                  j+                  |
       |
S 	Nr  r   r  r"  r  r   deleter  )r   _DeleteModelParametersr  r  r  r  r  r9  r	   r  r   r  r   r  r  r  r  rT  DeleteModelResponser  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M   6


Mm
 6


Mm ,,;;'A'A'C < L 	%%l3r1   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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                         	      }| j                  j+                  |       |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  r   {model}:countTokensr"  r  r   Nr  r  )r   _CountTokensParametersr  r  r  r  r  r?  r	   r  r   r  r   r  r  r  r  rZ  CountTokensResponser  r  r  r  s               r/   count_tokenszModels.count_tokensG  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M   6


Mm
 6


Mm ,,;;'A'A'C < L 	%%l3r1   c                L   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                  j                  rt!        | j                  |
      }
t         j"                  j%                  |
|j'                         
      }| j                  j)                  |       |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  r   {model}:computeTokensr"  r  r   Nr  r  )r   _ComputeTokensParametersr  r  r+   r  r  r  r	   r  r   r  r   r  r  r  r  ComputeTokensResponser  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M   8


Mm ..=='A'A'C > L 	%%l3r1   r  rQ  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                  j                  rt!        | j                  |      }nt#        | j                  |      }t         j$                  j'                  ||j)                         	      }| j                  j+                  |       |S 
aS  Generates videos based on a text description and configuration.

    Args:
      model: The model to use.
      instances: A list of prompts, images and videos to generate videos from.
      config: Configuration for generation.

    Usage:

      ```
      operation = client.models.generate_videos(
          model="veo-2.0-generate-001",
          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
      ```
    )r   r  rQ  r   r   z{model}:predictLongRunningr"  r  r   Nr  r  )r   _GenerateVideosParametersr  r  r  r  r  rR  r	   r  r   r  r   r  r  r  r  rs  GenerateVideosOperationr  r  r  r  r   r  rQ  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M   :


Mm
 :


Mm 00??'A'A'C @ L 	%%l3r1   c                H   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                  | j                   |      }|s|j#                  |       t%        |t&              r"|j)                  |
       |j)                  |       |j)                  |
       |j)                  |       |dkD  rt        j*                  |      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
      'publishers/meta/models/llama-3.1-405b-instruct-maas'
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash' or 'meta/llama-3.1-405b-instruct-maas'

    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.

    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('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      )
      print(response.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    r  &AFC is enabled with max remote calls: .r   r
   AFC remote call 	 is done.8Reached max remote calls for automatic function calling.userr5   r4   )r   should_disable_afcr  get_max_remote_calls_afcloggerinfor   r  get_function_mapr  r   r4   get_function_response_partsContentr   r   r  extend
isinstancelistappendshould_append_afc_history"automatic_function_calling_history)r  r   r   r   remaining_remote_calls_afcr<  r`   ifunction_mapfunc_response_partsfunc_call_contentfunc_response_contents               r/   generate_contentzModels.generate_contentN  s   @ &&v.## $   ".!F!Fv!N
KK
01K0LAN ?A&,,.H	A
$q
(1fa'' ( h kk$QCy12 A% 	#q	(NO!226:l!!$$Q'//$$Q'//55(DD
L !"--a088#mm# d..9h/*11(;	Hd	#)*-.(//0AB(//0EFM %q
(N --f5(:N
, 1 Or1   c             #   f  K   t        j                  |      r| j                  |||      E d{    yt        j                  |      }t        j                  d| d       g }d}d}d}|dkD  r<|dz  }| j                  |||      }	t        j                  d| d       |dz  }|dk(  rt        j                  d	       t        j                  |      }
|dk(  rv|	D ]p  }|
s| 
|j                  r<|j                  d   j                  r#|j                  d   j                  j                  s nt        j                  ||
      }|rm| r n|	D ]"  }t        j                  |      r||_        | $ |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                   | j"                  |      }|s|j%                  |       t'        |t(              r$|"|j+                  |       |j+                  |       ||j+                  |       |j+                  |       |dkD  r;y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
      'publishers/meta/models/llama-3.1-405b-instruct-maas'
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash' or 'meta/llama-3.1-405b-instruct-maas'

    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.

    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  Nr)  r*  r   r
   r+  r,  r-  r.  r/  )r   r0  r  r1  r2  r3  r4  r  r   r4   r5  r;  r<  r   r6  r   r   r  r7  r8  r9  r:  )r  r   r   r   r=  r<  chunkr@  r>  r`   r?  rA  rB  s                r/   generate_content_streamzModels.generate_content_stream  s    @ &&v... /    !-!F!Fv!N
KK
01K0LAN ?A&E	A
$q
(1fa.. / h kk$QCy12 A% 	#q	(NO!226:l	
a  	EK $$''*22''*2288"."J"J|# 'k	$  	E33F;2 4 +	   ##A&..##A&..44
*FF<
   
			%!,,Q/77 %%!
 << 0 0(;1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHM %q
(s   -J1J.DJ1EJ1,J1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r3  r5  r  r3  r.  r'  r:  r   r  	r  r   r  r   api_responser5  r3  generated_imager`   s	            r/   generate_imageszModels.generate_images\  s    : (( ) L
 )-%|<<'88 1

+
+//<< -<,M,M)01 ++)*KH Or1   c                ,    | j                  ||||      S )r  r  r  r  r   r  r  r   s        r/   
edit_imagezModels.edit_image  s)    b )	   r1   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            }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  Nr  r  r  r  r  r  r  upscalerk   r
   r   	r   UpscaleImageParametersr8  UpscaleImageConfigr  dict_UpscaleImageAPIConfigDictr  r  r  r   rQ  r  r   
config_dct
api_configs          r/   upscale_imagezModels.upscale_image  s    B 
  %	 \rF&%223$$&j<j11^^ND9%>>*>E#(:DA#->>($$
	J #Jv%&J!"%	   r1   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:*rO  )r   r	  r   ListModelsConfigr'  r  r  copyr&  r   r  r  r   filter_values      r/   r9  zModels.list  s    8 	##6299 	$!!#   f  {{}f}}  77% 	
 



&
!	 r1   )8__name__
__module____qualname__strr   r   ContentListUnionContentListUnionDictr   GenerateContentConfigOrDictr  r  r   r  EmbedContentConfigOrDictr  r  GenerateImagesConfigOrDictr  r  r9  _ReferenceImageAPIOrDictEditImageConfigOrDictr  r  ImageOrDict_UpscaleImageAPIConfigOrDictr  r  GetModelConfigOrDictr  r  ListModelsConfigOrDictr
  r  UpdateModelConfigOrDictr  DeleteModelConfigOrDictr  r  CountTokensConfigOrDictr  r  ComputeTokensConfigOrDictr  r   GenerateVideosConfigOrDictr%  r'  rC  rF  rN  rR  UpscaleImageConfigOrDictr^  r   rf   r1   r/   r  r  h  s    =AC C e,,e.H.HHI	C
 u889C $$CT =AG G e,,e.H.HHI	G
 u889G --.G\ :>Z Z e,,e.H.HHI	Z
 u556Z !!ZB <@K K 	K
 u778K ##Kf 7;c c 	c
 U;;<c u223c cV >BB B 	B
 B u99:B !!BJ KO::#+E,F,F#G:{{:z AE= < <===F 9=	= = u445	=
 {{=F 9=	A A u445	A
   AP 9=X X e,,e.H.HHI	X
 u445X   X~ ;?N N e,,e.H.HHI	N
 u667N ""Nh #+/;?[ [ sm	[
 e''([ u778[ $$[D =Av v e,,e.H.HHI	v
 u889v $$vz =ATI TI e,,e.H.HHI	TI
 u889TI --.TIv <@5 5 	5
 u7785 ##5z 7;6 6 	6
 U;;<6 u2236 6| :>@ @ 	@
 @ u556@ !!@J 8<0 u3340 U[[	0r1   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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ej<                     dej>                  fdZ dddeejB                     dejD                  fdZ#dddedeejH                     dej>                  fdZ%dddedeejL                     dejN                  fdZ(dddedeej                  ej                  f   deejR                     dejT                  fdZ+dddedeej                  ej                  f   deejX                     dejZ                  fdZ.ddddded
ee   deej4                     deej^                     dej`                  f
dZ1dddedeej                  ej                  f   deej                     dej                  fdZ2dddedeej                  ej                  f   deej                     deeej                        fdZ3ddded
edeej,                     deej.                     dej0                  f
dZ4dddeejB                     de5ej>                     fdZddded
edeej$                     dej&                  fdZ6dddedej4                  dedeejn                     dej8                  f
dZ8y)AsyncModelsNr  r   r   r   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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                               }| j                  j+                  |       |S 7 wr  )r   r  r  r  r  r  r  r   r	   r  r   r  r   r  r  async_requestr  r  r  r  r  r  r  s               r/   r  zAsyncModels._generate_contentB  s     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**88lL M   :


Mm
 :


Mm 00??'A'A'C @ L 	%%l3%   E$G<&G:'BG<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 {   
 fd}	 |	       S 7 w)	Nr  r   r  r"  r  r   r  c                 P  K   2 3 d {   } j                   j                  rt        j                   |       } nt        j                   |       } t        j
                  j                  | j                               }j                   j                  |       | 7 6 y w)Nr  )	r  r  r  r  r   r  r  r  r  )r  r  r  response_streamr  s     r/   async_generatorz=AsyncModels._generate_content_stream.<locals>.async_generator  s     !0  $$>-
 >- 44CC"?+E+E+G D 
 	)),7!s&   B&B$B"B$BB&"B$$B&)r   r  r  r  r  r  r  r   r	   r  r   r  r   r  r  async_request_streamed)r  r   r   r   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 ,,CClL O& /s   E$E>)E<*E>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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                         
      }| j                  j+                  |       |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  r   r  r  r"  r  r   Nr  r  )r   r  r  r  r  r  r  r   r	   r  r   r  r   r  r  r~  r  r  r  r  r  r  r  s               r/   r  zAsyncModels.embed_content  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**88lL M   7


Mm
 7


Mm --<<'A'A'C = L 	%%l3%r  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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                         	      }| j                  j+                  |       |S 7 wr  )r   r  r  r  r  r  r  r  r	   r  r   r  r   r  r  r~  r  r6  r  r  r  r  r  s               r/   r  zAsyncModels._generate_images1  s     55O   8


Ol &))&1	 ++,<= 7


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL**88lL M   9


Mm
 9


Mm //>>'A'A'C ? L 	%%l3%r  r  c                j  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                  j                  rt!        | j                  |      }t         j"                  j%                  ||j'                         
      }| j                  j)                  |       |S 7 |w)V  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  r  r   r  r"  r  r   Nr  r  )r   r  r  r  r+   r  r  r  r	   r  r   r  r   r  r  r~  r  r  r  r  r  r  s                r/   r  zAsyncModels._edit_image~  s    d 00)	O $$OPP3


Ol &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL**88lL M   4


Mm **99'A'A'C : L 	%%l3   D2F34F15A=F3rQ  r  c                j  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                  j                  rt!        | j                  |      }t         j"                  j%                  ||j'                         
      }| j                  j)                  |       |S 7 |wr  )r   r  r  r  r+   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**88lL M   7


Mm --<<'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                  j                  rt!        | j                  |	      }	nt#        | j                  |	      }	t         j$                  j'                  |	|j)                               }
| j                  j+                  |
       |
S 7 wr  )r   r  r  r  r  r  r  r  r	   r  r   r  r   r  r  r~  r  rJ  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**88t\< M   ()9)9=Im ((8(8-Hm;;--'A'A'C . L 	%%l3   E#G;%G9&BG;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                  j                  rt!        | j                  |      }nt#        | j                  |      }t         j$                  j'                  ||j)                               }	| j                  j+                  |	       |	S 7 wr  )r   r	  r  r  r  r  r  r/  r	   r  r   r  r   r  r  r~  r  rQ  r
  r  r  r  r  s
             r/   r  zAsyncModels._listc  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**88t\< M   5


Mm
 5


Mm ++::'A'A'C ; L 	%%l3%s   E"G:$G8%BG: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                  j                  rt!        | j                  |	      }	nt#        | j                  |	      }	t         j$                  j'                  |	|j)                         	      }
| j                  j+                  |
       |
S 7 wr  )r   r  r  r  r  r  r  r7  r	   r  r   r  r   r  r  r~  r  rJ  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**88|\ M   ()9)9=Im ((8(8-Hm;;--'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                  j                  rt!        | j                  |	      }	nt#        | j                  |	      }	t         j$                  j'                  |	|j)                               }
| j                  j+                  |
       |
S 7 wr  )r   r  r  r  r  r  r  r9  r	   r  r   r  r   r  r  r~  r  rT  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**88$l M   6


Mm
 6


Mm ,,;;'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                  j                  rt!        | j                  |
      }
nt#        | j                  |
      }
t         j$                  j'                  |
|j)                         	      }| j                  j+                  |       |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  r   r  r"  r  r   Nr  r  )r   r  r  r  r  r  r  r?  r	   r  r   r  r   r  r  r~  r  rZ  r  r  r  r  r  s               r/   r  zAsyncModels.count_tokens$  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**88lL M   6


Mm
 6


Mm ,,;;'A'A'C < L 	%%l3%r  c                h  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                  j                  rt!        | j                  |
      }
t         j"                  j%                  |
|j'                         
      }| j                  j)                  |       |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  r   r  r"  r  r   Nr  r  )r   r  r  r  r+   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**88lL M   8


Mm ..=='A'A'C > L 	%%l3s   D1F23F04A=F2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                  j                  rt!        | j                  |      }nt#        | j                  |      }t         j$                  j'                  ||j)                         	      }| j                  j+                  |       |S 7 wr#  )r   r$  r  r  r  r  r  rR  r	   r  r   r  r   r  r  r~  r  rs  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**88lL M   :


Mm
 :


Mm 00??'A'A'C @ L 	%%l3%s   E%G='G;(BG=c                T  K   t        j                  |      r| j                  |||       d{   S t        j                  |      }t        j                  d| d       g }t        j                         }|dkD  r| 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                  | j                   |      }|s|j#                  |       t%        |t&              r"|j)                  |	       |j)                  |
       |j)                  |	       |j)                  |
       |dkD  rt        j*                  |      r	|||_        |S 7 7 7 w)a.  Makes an API request to generate content using a model.

    Some models support multimodal input and output.

    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.
    r  Nr)  r*  r   r
   r-  Tis_caller_method_asyncr.  r/  )r   r0  r  r1  r2  r3  r   r  r4  r  r   r4   !get_function_response_parts_asyncr6  r   r   r  r7  r8  r9  r:  r;  r<  )r  r   r   r   r=  r<  r`   r?  r@  rA  rB  s              r/   rC  zAsyncModels.generate_content*  s(    H &&v.)) *    ".!F!Fv!N
KK
01K0LAN ?A&,,.H
$q
(-- .  h !A% 	#q	(NO!22
l !!$$Q'//$$Q'//55>>  
 !"--a088#mm# d..9h/*11(;	Hd	#)*-.(//0AB(//0EFQ %q
(T --f5(:N
, 1 Oo*s<   -H(H A%H(H#B$H(:H&;CH( !H(#H(&H(c                    K   t        j                  |      r+ j                  |||       d{   fd} ||||      S  fd} ||||      S 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
      'publishers/meta/models/llama-3.1-405b-instruct-maas'
    - `/` separated publisher and model name, for example:
      'google/gemini-2.0-flash' or 'meta/llama-3.1-405b-instruct-maas'

    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.

    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.
    r  Nc                6   K   2 3 d {   }| 7 
6 y wre   rf   )r   r   r   rE  r`   s       r/   base_async_generatorzAAsyncModels.generate_content_stream.<locals>.base_async_generator  s#     # 	 	%+	8s   c                B  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| |j                  r<|j                  d   j                  r#|j                  d   j                  j                  s nTt        j                  ||	       d {   }|r|| |2 3 d {   }t        j                  |      r||_        | +|	sy |sy |j                  d   j                  }
t        j                  d|      }t        j                   j"                  |      }|s|j%                  |       t'        |t(              r$|
"|j+                  |
       |j+                  |       |
|j+                  |
       |j+                  |       |dkD  ry y 7 7 x7 6 7 6 |j                  r<|j                  d   j                  r#|j                  d   j                  j                  sy t        j                  ||	      }9w)Nr)  r*  r   r
   r  r+  r,  r-  Tr  r.  r/  )r   r1  r2  r3  r  r4  r  r   r4   r  r;  r<  r5  r   r6  r   r   r  r7  r8  r9  r:  )r   r   r   r=  r<  r@  rE  r>  r`   r?  rA  rB  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4
 6 &  Ek &&))!,44))!,44::$FF\  "
 ) &  E55f=4 6 K 
"
 ",,Q/77 %%!
 << 0 0(;1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHY '*
$ &(X ""%%a(00%%a(0066 , H H\!
s|   AJH0AJ7H9;H3<H9?A,J+H6,J3J;H=?H; H=C)J.J3H96J9J;H==A J)r   r0  r  )r  r   r   r   r  r  r`   s   `     @r/   rF  z#AsyncModels.generate_content_stream  sn     @ &&v.44 5  h "%6::UIn 5(F33Cs   -AA#Ac                H   K   | j                  ||||       d{   S 7 w)r  r  NrP  rQ  s        r/   rR  zAsyncModels.edit_image,  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  NTr`  ra  rO  )r   r	  r   rb  r'  r  r  rc  r&  r   r  rd  s      r/   r9  zAsyncModels.listd  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  NrH  rI  rJ  rK  s	            r/   rN  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            }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  Nr  r  r  rT  rU  rk   r
   r   rV  r[  s          r/   r^  zAsyncModels.upscale_image  s     B 
  %	 \rF&%223$$&j<j11^^ND9%>>*>E#(:DA#->>($$
	J #Jv%&J!"$$%	 %    s   CCCC)9rf  rg  rh  ri  r   r   rj  rk  r   rl  r  r  r   r   r  rm  r  r  rn  r  r  r9  ro  rp  r  r  rq  rr  r  r  rs  r  r  rt  r
  r  ru  r  rv  r  r  rw  r  r  rx  r  r   ry  r%  r'  rC  rF  rR  r   rN  rz  r^  rf   r1   r/   r|  r|  @  s"    =AC C e,,e.H.HHI	C
 u889C $$CT =AL L e,,e.H.HHI	L
 u889L u<<=>Lf :>Z Z e,,e.H.HHI	Z
 u556Z !!ZB <@K K 	K
 u778K ##Kf 7;c c 	c
 U;;<c u223c cV >BB B 	B
 B u99:B !!BJ KO::#+E,F,F#G:{{:z AE= < <===F 9=	= = u445	=
 {{=F 9=	A A u445	A
   AP 9=X X e,,e.H.HHI	X
 u445X   X~ ;?M M e,,e.H.HHI	M
 u667M ""Mf #+/;?[ [ sm	[
 e''([ u778[ $$[D =A\ \ e,,e.H.HHI	\
 u889\ $$\F =Ab4 b4 e,,e.H.HHI	b4
 u889b4 u<<=>b4T 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 :>@ @ 	@
 @ u556@ !!@r1   r|  re   )loggingtypingr   r   r   r   r   r   urllib.parser	    r   r   r   r   r   r   r  r   r   r*   r   r,   pagersr   r   	getLoggerr2  rY  objectr0   r8   rU   rY   r^   rc   rg   ro   ru   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r+  r/  r4  r7  r9  r<  r?  rE  rN  rR  rU  rW  r]  r`  rb  rd  rf  rh  rj  rl  rn  rp  rr  rt  rv  rx  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/  r6  r8  r@  rJ  rQ  rT  rZ  ra  rd  rl  rs  ru  rw  ry  r}  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  
BaseModuler  r|  rf   r1   r/   <module>r     s  $  K K "       & . . %			0	1 %)))tV|$) D>) 
	)^ %)tV|$ D> 
	2 %)LLtV|$L D>L 
	Ld %)tV|$ D> 
	" %)tV|$ D> 
	* %)tV|$ D> 
	0 %)tV|$ D> 
	 %)tV|$ D> 
	, %)tV|$ D> 
	. %)**tV|$* D>* 
	*` %)tV|$ D> 
	, %)tV|$ D> 
	. %)		tV|$	 D>	 
		 %)tV|$ D> 
	* %)tV|$ D> 
	0 %)tV|$ D> 
	( %)ggtV|$g D>g 
	gZ %)""tV|$" D>" 
	"P %)tV|$ D> 
	H %)""tV|$" D>" 
	"P %)ddtV|$d D>d 
	dT %)tV|$ D> 
	> %)tV|$ D> 
	, %)tV|$ D> 
	F %)tV|$ D> 
	* %)tV|$ D> 
	& %)tV|$ D> 
	8 %)tV|$ D> 
	, %)tV|$ D> 
	4 %)""tV|$" D>" 
	"P %)tV|$ D> 
	2 %)<<tV|$< D>< 
	<D %)  tV|$  D>  
	 L %)))tV|$) D>) 
	)^ %)tV|$ D> 
	2 %)LLtV|$L D>L 
	Ld %)tV|$ D> 
	& %)tV|$ D> 
	* %)tV|$ D> 
	< %)tV|$ D> 
	 %)tV|$ D> 
	, %)tV|$ D> 
	. %)**tV|$* D>* 
	*` %)tV|$ D> 
	, %)tV|$ D> 
	. %)		tV|$	 D>	 
		 %)tV|$ D> 
	* %)tV|$ D> 
	0 %)tV|$ D> 
	( %)iitV|$i D>i 
	i^ %)""tV|$" D>" 
	"P %)&&tV|$& D>& 
	&X %)tV|$ D> 
	F %)lltV|$l D>l 
	ld %)tV|$ D> 
	> %)tV|$ D> 
	2 %)tV|$ D> 
	. %)tV|$ D> 
	, %)tV|$ D> 
	& %)tV|$ D> 
	, %)99tV|$9 D>9 
	9~ %)lltV|$l D>l 
	ld %)##tV|$# D># 
	#R %)&&tV|$& D>& 
	&X %)$$tV|$$ D>$ 
	$T %)tV|$ D> 
	, %)tV|$ D> 
	F %)tV|$ D> 
	* %)tV|$ D> 
	& %)tV|$ D> 
	8 %)tV|$ D> 
	, %)##tV|$# D># 
	#R %)""tV|$" D>" 
	"P %)tV|$ D> 
	D %)LLtV|$L D>L 
	Ld %)  tV|$  D>  
	 FQ3 QQ# Q
Q Q %)''tV|$' D>' 
	'Z %)tV|$ D> 
	2 %)		tV|$	 D>	 
		 %)11tV|$1 D>1 
	1n %)tV|$ D> 
	> %)tV|$ D> 
	 %)		tV|$	 D>	 
		 %)tV|$ D> 
	 %)tV|$ D> 
	> %)tV|$ D> 
	. %)tV|$ D> 
	6 %)tV|$ D> 
	F %)tV|$ D> 
	B %)tV|$ D> 
	 %)tV|$ D> 
	* %)..tV|$. D>. 
	.h %)tV|$ D> 
	6 %)tV|$ D> 
	 %)tV|$ D> 
	, %)tV|$ D> 
	2 %)tV|$ D> 
	& %)tV|$ D> 
	H %)((tV|$( D>( 
	(\ %)))tV|$) D>) 
	)^ %)tV|$ D> 
	2 %)		tV|$	 D>	 
		 %)11tV|$1 D>1 
	1n %)tV|$ D> 
	J %)tV|$ D> 
	$ %)tV|$ D> 
	0 %)tV|$ D> 
	& %)tV|$ D> 
	> %)tV|$ D> 
	2 %)tV|$ D> 
	6 %)  tV|$  D>  
	 L %)tV|$ D> 
	B %)tV|$ D> 
	, %)tV|$ D> 
	, %)tV|$ D> 
	( %)tV|$ D> 
	8 %)((tV|$( D>( 
	(\ %)tV|$ D> 
	6 %)tV|$ D> 
	 %)		tV|$	 D>	 
		 %)		tV|$	 D>	 
		 %)tV|$ D> 
	2 %)tV|$ D> 
	& %)tV|$ D> 
	H %)$$tV|$$ D>$ 
	$NU[## Up.O+(( Or1   