
    'i                     .   d dl Z d dlZd dlmZmZmZmZmZmZ d dl	m
Z
 ddlmZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZmZ  ej>                  d      Z deddfdZ!deddfdZ"deddfdZ#	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ'	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ(	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ)	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ*	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ+	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd Z,	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd!Z-	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd"Z.	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd#Z/	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd$Z0	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd%Z1	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d&Z2	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d'Z3	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd(Z4	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd)Z5	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d*Z6	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d+Z7	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd,Z8	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd-Z9	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd.Z:	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d/Z;	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd0Z<	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd1Z=	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd2Z>	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d3Z?	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d4Z@	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd5ZA	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd6ZB	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd7ZC	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd8ZD	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd9ZE	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd:ZF	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd;ZG	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d<ZH	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d=ZI	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d>ZJ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
d?ZK	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd@ZL	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdAZM	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdBZN	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdCZO	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dDZP	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dEZQ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdFZR	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdGZS	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdHZT	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdIZU	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdJZV	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdKZW	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dLZX	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dMZY	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdNZZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdOZ[	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdPZ\	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdQZ]	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdRZ^	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdSZ_	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdTZ`	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdUZa	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdVZb	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdWZc	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dXZd	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dYZe	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZZf	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd[Zg	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd\Zh	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd]Zi	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd^Zj	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd_Zk	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd`Zl	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdaZm	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dbZn	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dcZo	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
ddZp	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
deZq	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdfZr	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdgZs	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdhZt	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdiZu	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdjZv	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdkZw	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdlZx	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdmZy	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dnZz	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdoZ{	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdpZ|	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdqZ}	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdrZ~	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdsZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdtZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fduZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdvZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dwZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdxZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdyZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdzZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd{Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd|Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd}Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fd~Z	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddedee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   f
dZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ	 	 ddee$e%ef   e&f   dee$e%ef      deee$e%ef   e&f      de$e%ef   fdZ G d dej0                        Z G d dej0                        Zy)    N)AnyAsyncIterator	AwaitableIteratorOptionalUnion)	urlencode   )_api_module)_base_transformers)_common)_extra_utils)
_mcp_utils)_transformers)errors)types)BaseApiClient)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.models
enum_valuereturnc                 <    | t        dg      v rt        |  d      y )N	ALLOW_ALL+ enum value is not supported in Gemini API.set
ValueErrorr   s    X/home/www/utuvibe.miabetepe.com/venv/lib/python3.12/site-packages/google/genai/models.py(_PersonGeneration_to_mldev_enum_validater"   (   s)    3}%%

|#NO
PP &    c                 <    | t        dg      v rt        |  d      y )N
BLOCK_NONEr   r   r    s    r!   )_SafetyFilterLevel_to_mldev_enum_validater&   -   s)    3~&&

|#NO
PP 'r#   c                 <    | t        dg      v rt        |  d      y )NSTYLEr   r   r    s    r!   4_VideoGenerationReferenceType_to_mldev_enum_validater)   2   s*     3y>!

|#NO
PP "r#   from_objectparent_objectroot_objectc                     i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Ndatadisplay_name6display_name parameter is not supported in Gemini API.	mime_typemimeTypegetvsetvr   r*   r+   r,   	to_objects       r!   _Blob_to_mldevr8   9   sw    
 !)	+x ,VHd;9:	+'(4
M
NN	+}%1ZL${[M"BC	r#   c           
      >   i }t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             |S c c}w )NcontentcitationMetadatacitation_metadata
tokenCounttoken_countfinishReasonfinish_reasonavgLogprobsavg_logprobsgroundingMetadatagrounding_metadataindexlogprobsResultlogprobs_resultsafetyRatingssafety_ratingsurlContextMetadataurl_context_metadata)r4   r5   _CitationMetadata_from_mldevr*   r+   r,   r7   items        r!   _Candidate_from_mldevrO   K   s   
 !)	+	{#/YKkI;!?@	+*+,8	$123Y	
 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	+'3^$d;&HI	++,-9	[./0 
+y!-WItK';<	+()*6&'k<L;M)NO	+()5	{_,=>?$? 
+,-.:	 [/01 
 	@s   "	Fc                 |    i }t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )NcitationSources	citationsr4   r5   rM   s        r!   rL   rL      sQ    
 !)	+)*+7	{->,?@A$A 
 	Bs   	9
api_clientc                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       |S c c}w )Nmodel_urlcontents)r4   r5   tt_model
t_contentsrT   r*   r+   r,   r7   rN   s         r!   "_ComputeTokensParameters_to_vertexr]      s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
 	Is   5	Bc                     i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )NsdkHttpResponsesdk_http_response
tokensInfotokens_inforS   rM   s        r!   "_ComputeTokensResponse_from_vertexrc      s}    
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
 	=s   	Ac                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N	truncatedr>   rS   r6   s       r!   '_ContentEmbeddingStatistics_from_vertexrf      s[    
 !)	+}%1[M4k]#CD	+'3]OT+%GH	r#   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             |S )Nvalues
statistics)r4   r5   rf   r6   s       r!   _ContentEmbedding_from_vertexrj      sn    
 !)	+z".XJ[8* =>	+~&2	/|n-y+	
 
r#   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)r4   r5   _Part_to_mldevrM   s        r!   _Content_to_mldevro      s    
 !)	+y!-		 [7)4	
 4K8	
 
+x ,VHd;9:		
s   A*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computeControlrS   r6   s       r!   !_ControlReferenceConfig_to_vertexru      si    
 !)	+'(4]OT+7G%HI	+:;<H	[=>? 
r#   c                     i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        d      |S )Nsystem_instructionz<system_instruction parameter is not supported in Gemini API.toolsz/tools parameter is not supported in Gemini API.generation_configz;generation_config parameter is not supported in Gemini API.)r4   r   r6   s       r!   _CountTokensConfig_to_mldevrz     sp    
 !)	+,-.:
F  
+y!-
F
GG	++,-9
E  
r#   c                 f   i }t        | dg      ,t        |dg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        t        | dg      ||             |S c c}w )Nrw   systemInstructionrx   ry   generationConfig)r4   r5   rY   	t_content_Tool_to_vertex_GenerationConfig_to_vertexrM   s        r!   _CountTokensConfig_to_vertexr   %  s    
 !)	+,-.:		D';&<=> 
+y!-		 [7)4	
 D)[9	
 
++,-9	#234i	
 
	
s    B.c                 x   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Et        |dgt        j                  t        |dg            D cg c]  }t        |||       c}       t        |dg      t        t        |dg      ||       |S c c}w NrV   rW   rX   config)r4   r5   rY   rZ   r[   ro   rz   r\   s         r!   _CountTokensParameters_to_mldevr   I  s     !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 dI{;	
 
+z".[8*%y+ 
	
s   5B7c                 b   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       t        |dg      t        t        |dg      ||       |S c c}w r   )r4   r5   rY   rZ   r[   r   r\   s         r!    _CountTokensParameters_to_vertexr   i  s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
+z". [8*%y+ 
 	Is   5	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             |S )Nr_   r`   totalTokenstotal_tokenscachedContentTokenCountcached_content_token_countrS   r6   s       r!   _CountTokensResponse_from_mldevr     s    
 !)	+)*+7'(${=N<O*P 
+'3^$d;&HI	+123?	%&[456 
r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr_   r`   r   r   rS   r6   s       r!    _CountTokensResponse_from_vertexr     sg    
 !)	+)*+7'(${=N<O*P 
+'3^$d;&HI	r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S NrV   rW   namer4   r5   rY   rZ   rT   r*   r+   r,   r7   s        r!   _DeleteModelParameters_to_mldevr     J     !)	+y!-				*d;	:; 
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!    _DeleteModelParameters_to_vertexr     r   r#   c                 V    i }t        | dg      t        |dgt        | dg             |S Nr_   r`   rS   r6   s       r!   _DeleteModelResponse_from_mldevr     @    
 !)	+)*+7'(${=N<O*P 
r#   c                 V    i }t        | dg      t        |dgt        | dg             |S r   rS   r6   s       r!    _DeleteModelResponse_from_vertexr     r   r#   c                 6   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gt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |g d t        | dg             |S )!Noutput_gcs_uri
parameters
storageUrinegative_promptnegativePromptnumber_of_imagessampleCountaspect_ratioaspectRatioguidance_scaleguidanceScaleseedsafety_filter_levelsafetySettingperson_generationpersonGenerationinclude_safety_attributesincludeSafetyAttributesinclude_rai_reasonincludeRaiReasonlanguageoutput_mime_typer   outputOptionsr2   output_compression_qualityr   r   compressionQualityadd_watermarkaddWatermarklabels	edit_modeeditMode
base_steps)r   
editConfig	baseStepsrS   r6   s       r!   _EditImageConfig_to_vertexr     sO   
 !)	+()*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	~&[?+, 
+z".
Dxj$AB	+}%1	z"[;-( 
+~&21[<.) 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      3t        |ddgt        |dg      D cg c]  }t	        |||       c}       t        |dg      t        t        |dg      ||       |S c c}w )NrV   rW   promptinstances[0]reference_imagesreferenceImagesr   )r4   r5   rY   rZ   _ReferenceImageAPI_to_vertexr   r\   s         r!   _EditImageParameters_to_vertexr   f  s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+*+,8	*+ [+=*>?	
 )y+F	
 
+z".[8*%y+ 
	
s   
Cc                     i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w Nr_   r`   predictionsgenerated_imagesr4   r5   _GeneratedImage_from_vertexrM   s        r!   _EditImageResponse_from_vertexr         
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 (iE	
 
	
   A*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[]taskTypetitleoutput_dimensionalityoutputDimensionalityr1   z3mime_type parameter is not supported in Gemini API.auto_truncatez7auto_truncate parameter is not supported in Gemini API.r3   r6   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	r#   c                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd
gt        | d	g             |S )Nr   instances[]r   r   r   r   r1   r2   r   autoTruncaterS   r6   s       r!   _EmbedContentConfig_to_vertexr     s    
 !)	+}%1	$[;-( 
+y!-0${WI2NO	+/01=	-.[234 
+}%1	
#[;-( 
+()5	~&[?+, 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      <t        |ddgt        j                  | t        |dg            D cg c]  }| c}       t        |dg      t        t        |dg      ||       t        |ddgt        j                  | t        |dg                   |S c c}w )NrV   rW   rX   r   r:   r   )r4   r5   rY   rZ   t_contents_for_embedr   r\   s         r!    _EmbedContentParameters_to_mldevr     s     !)	+y!-				*d;	:; 
+
|$0	y! ..Dzl;	
 	
	 
+z". [8*%y+ Wii
Dwi89
 
%	
s   7	Cc                 f   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            D cg c]  }| c}       t        |dg      t        t        |dg      ||       |S c c}w )NrV   rW   rX   r   r:   r   )r4   r5   rY   rZ   r   r   r\   s         r!   !_EmbedContentParameters_to_vertexr     s     !)	+y!-				*d;	:; 
+
|$0		" ..Dzl;	
 	
	 
+z".![8*%y+ 
	
s   7	B.c                    i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       t        | dg      t        |dgt        | dg             |S c c}w )Nr_   r`   
embeddingsmetadatarS   rM   s        r!    _EmbedContentResponse_from_mldevr   4  s    
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
+
|$0ZL${ZL"AB	 	=s   	Bc                 .   i }t        | dg      t        |dgt        | dg             t        | ddg      3t        |dgt        | ddg      D cg c]  }t        |||       c}       t        | dg      t        |dgt        | dg             |S c c}w )Nr_   r`   zpredictions[]r   r   )r4   r5   rj   rM   s        r!   !_EmbedContentResponse_from_vertexr   L  s    
 !)	+)*+7'(${=N<O*P 
+67C	 [?L*IJ	
 *$	;G	
 
+
|$0ZL${ZL"AB		
s   Bc                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nendpointr   deployedModelIddeployed_model_idrS   r6   s       r!   _Endpoint_from_vertexr   g  sf    
 !)	+
|$0VHd;=>	+)*+7'(${=N<O*P 
r#   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr/   r0   file_urifileUrir1   r2   r4   r   r5   r6   s       r!   _FileData_to_mldevr   x  sw    
 !)	+'(4
M
NN	+
|$0YKkJ<!@A	+}%1ZL${[M"BC	r#   c                 N   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        d      |S )Nidargsr   partial_argsz6partial_args parameter is not supported in Gemini API.will_continuez7will_continue parameter is not supported in Gemini API.r3   r6   s       r!   _FunctionCall_to_mldevr     s    
 !)	+v*TFDtf56	+x ,VHd;9:	+x ,VHd;9:	+'(4
M
NN	+()5
N
OO	r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      |S )Nallowed_function_namesallowedFunctionNamesmodestream_function_call_argumentszHstream_function_call_arguments parameter is not supported in Gemini API.r3   r6   s       r!   _FunctionCallingConfig_to_mldevr    s    
 !)	+012>	 [345 
+x ,VHd;9:	+89:F
	 
 
r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        d
      |S )Ndescriptionr   r   parameters_json_schemaparametersJsonSchemaresponseresponse_json_schemaresponseJsonSchemabehaviorz1behavior parameter is not supported in Vertex AI.r3   r6   s       r!   _FunctionDeclaration_to_vertexr
    s&   
 !)	+'3]OT+%GH	+x ,VHd;9:	+~&2\ND|n$EF	+012>	 [345 
+
|$0ZL${ZL"AB	+./0<	[123 
+
|$0
H
II	r#   c                 
   i }t        |dg      7t        |dgt        t        j                  t        |dg            ||             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |d	gt        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dg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      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      ,t        |d.gt        j                  t        |d-g                   t        |d/g      t        d0      t        |d1g      t        |d2gt        |d1g             t        |d3g      $t        |d4gt        t        |d3g      ||             t        |d5g      t        |d6gt        |d5g             t        |d7g      t        d8      |S c c}w c c}w )9Nrw   r|   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frequencyPenaltyr   response_mime_typeresponseMimeTyperesponse_schemaresponseSchemar  r  routing_configz8routing_config parameter is not supported in Gemini API.model_selection_configz@model_selection_config parameter is not supported in Gemini API.safety_settingssafetySettingsrx   tool_config
toolConfigr   0labels 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image_configimageConfigenable_enhanced_civic_answersenableEnhancedCivicAnswersmodel_armor_configz<model_armor_config parameter is not supported in Gemini API.)r4   r5   ro   rY   r~   t_schemar   _SafetySetting_to_mldevt_tools_Tool_to_mldevt_tool_ToolConfig_to_mldevt_cached_content_namet_speech_config_ImageConfig_to_mldevr\   s         r!   _GenerateContentConfig_to_mldevrB    s    !)	+,-.:	KK[+?*@AB	
 
+'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		

:tK2C1DEF 
+./0<	[123 
+()*6
O
PP	+012>
J  
+)*+7	 [+<*=>	
 $D)[A	
 
+y!-		 		*d;	.JK	
 188J5y+N	
 
+'3	}o.	;	
 
+z".
G
HH	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5		${_,=>? 
+)*+7
C  
+)*+7%&[;L:M(NO	+'(4	~./K	
 
+789E	%&[:;< 
+,-.:
F  
k	
	
s   S<(Tc                 :
   i }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      t        |dgt        |dg             t        |dg      t        |d	gt        |dg             t        |d
g      t        |dgt        |d
g             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dgt        |dg             t        |dg      t        |dg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      t        |dgt        |dg             t        |d g      't        |d!gt        |d g      D cg c]  }| 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        |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      ,t        |d-gt        j                  t        |d,g                   t        |d.g      t        |d/gt        |d.g             t        |d0g      t        |d1gt        |d0g             t        |d2g      $t        |d3gt        t        |d2g      ||             t        |d4g      t        d5      t        |d6g      t        |d7gt        |d6g             |S c c}w c c}w )8Nrw   r|   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r  r  r   r!  r  r  r"  routingConfigr#  modelConfigr$  r%  rx   r&  r'  r   r)  r*  r+  r,  r-  r.  r/  r0  r1  audioTimestampr2  r3  r4  r5  r6  Fenable_enhanced_civic_answers parameter is not supported in Vertex AI.r8  modelArmorConfig)r4   r5   rY   r~   r9  r;  r   r=  r?  r@  _ImageConfig_to_vertexr   r\   s         r!    _GenerateContentConfig_to_vertexrJ    s    !)	+,-.:		D';&<=> 
+'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		

:tK2C1DEF 
+./0<	[123 
+()*6_%tK:J9K'LM	+012>	[345 
+)*+7	{->,?@A$A 
+y!-		 		*d;	.JK	
 AHHZ6	;O	
 
+'3[=/(JK	+z".
Dxj$AB	+()*6		[+;*<=	
 
+-./;	[012 
+*+,8%&[;M:N(O 
+()5		${_,=>? 
+)*+7%&[;L:M(NO	+)*+7%&[;L:M(NO	+'(4	~./K	
 
+789E
P  
+,-.:	[/01 
U 	B	
s   	T(Tc                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      Et        |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 NrV   rW   rX   r   r}   )r4   r5   rY   rZ   r[   ro   rB  r\   s         r!   #_GenerateContentParameters_to_mldevrM  F  s     !)	+y!-				*d;	:; 
+
|$0	 T+
|%DE	
 dI{;	
 
+z".	'[8*5y+	
 
	
s   5Cc                 |   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      :t        |dgt        j                  t        |dg            D cg c]  }| c}       t        |dg      %t        |dgt        | t        |dg      ||             |S c c}w rL  )r4   r5   rY   rZ   r[   rJ  r\   s         r!   $_GenerateContentParameters_to_vertexrO  j  s     !)	+y!-				*d;	:; 
+
|$0	,,tK*'FGH$H 
+z".	([8*5y+	
 
 	Is   5	B9c                    i }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        | 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`   
candidatesmodelVersionmodel_versionpromptFeedbackprompt_feedback
responseIdresponse_idusageMetadatausage_metadata)r4   r5   rO   rM   s        r!   #_GenerateContentResponse_from_mldevrZ    s5   
 !)	+)*+7'(${=N<O*P 
+~&2	 [<.9	
 "$	;?	
 
+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	%	
s   Dc                 D   i }t        | dg      t        |dgt        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| 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`   rQ  
createTimecreate_timerR  rS  rT  rU  rV  rW  rX  rY  rS   rM   s        r!   $_GenerateContentResponse_from_vertexr^    sH   
 !)	+)*+7'(${=N<O*P 
+~&2	{\N;<$< 
+~&2]OT+~%FG	+'(4_%tK.9I'JK	+()*6&'k<L;M)NO	+~&2]OT+~%FG	+()5%&[?:K(LM	% 	=s   	Dc                    i }t        | dg      t        d      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      t        | dg      t        |dd gt        | dg             t        | d!g      t        d"      |S )#Nr   8output_gcs_uri parameter is not supported in Gemini API.r   z9negative_prompt parameter is not supported in Gemini API.r   r   r   r   r   r   r   r   .seed parameter is not supported in Gemini API.r   r   r   r   r   r   r   r   r   r   r   r   r   r   z7add_watermark parameter is not supported in Gemini API.r   r(  
image_sizesampleImageSizeenhance_promptz8enhance_prompt parameter is not supported in Gemini API.)r4   r   r5   r&   r"   r6   s       r!   _GenerateImagesConfig_to_mldevre    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	+z".
G
HH	+~&2	()[<.) 
+()*6
O
PP	r#   c                 6   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gt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |dd gt        | dg             |S )!Nr   r   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   rb  rc  rd  enhancePromptrS   r6   s       r!   _GenerateImagesConfig_to_vertexrh  D  sY   
 !)	+()*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	~&[?+, 
+z".
Dxj$AB	+~&2	()[<.) 
+()*6	'[+,- 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      t	        t        |dg      ||       |S NrV   rW   r   r   r   )r4   r5   rY   rZ   re  r   s        r!   "_GenerateImagesParameters_to_mldevrk    s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z"."[8*%y+ 
r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      t	        t        |dg      ||       |S rj  )r4   r5   rY   rZ   rh  r   s        r!   #_GenerateImagesParameters_to_vertexrm    s     !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+z".#[8*%y+ 
r#   c                 @   i }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        t        | dg      ||             |S c c}w Nr_   r`   r   r   positivePromptSafetyAttributes!positive_prompt_safety_attributes)r4   r5   _GeneratedImage_from_mldev_SafetyAttributes_from_mldevrM   s        r!   "_GenerateImagesResponse_from_mldevrt    s    
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 'tYD	
 
+89:F	,-$?@A	
 
#	
   Bc                 @   i }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        t        | dg      ||             |S c c}w ro  )r4   r5   r   _SafetyAttributes_from_vertexrM   s        r!   #_GenerateImagesResponse_from_vertexrx    s    
 !)	+)*+7'(${=N<O*P 
+'3	 [=/:	
 (iE	
 
+89:F	,-%?@A	
 
#	
ru  c                 j   i }t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dd	gt        | dg             t        | d
g      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        d      t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t	        |||       c}       t        | dg      t        d      t        | d g      t        d!      |S c c}w )"Nnumber_of_videosr   r   r   r`  fpsz-fps parameter is not supported in Gemini API.duration_secondsdurationSecondsr   ra  r   r   
resolutionr   r   pubsub_topicz6pubsub_topic parameter is not supported in Gemini API.r   r   rd  rg  generate_audioz8generate_audio parameter is not supported in Gemini API.
last_framer   	lastFramer   r   maskz.mask parameter is not supported in Gemini API.compression_qualityz=compression_quality parameter is not supported in Gemini API.)r4   r5   r   _Image_to_mldev'_VideoGenerationReferenceImage_to_mldevrM   s        r!   _GenerateVideosConfig_to_mldevr  5  s   
 !)	+*+,8	}%[-./ 
+()*6
O
PP	+w+
D
EE	+*+,8	()[-./ 
+x ,
E
FF	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4
M
NN	+)*+7	'([,-. 
+()*6	'[+,- 
+()*6
O
PP	+~&2	%|n-y+	
 
+*+,8	*+
 [+=*>?		
  4i	
	 
+x ,
E
FF	+-./;
G  
!	
s   #H0c                 R   i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd	gt        | d	g             t        | d
g      t        |ddgt        | d
g             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t        |||       c}       t        | dg      %t        |ddgt	        t        | dg      ||             t        | dg      t        |ddgt        | dg             |S c c}w )Nrz  r   r   r   r   r{  r|  r}  r   r   r   r~  r   r   r  pubsubTopicr   r   rd  rg  r  generateAudior  r   r  r   r   r  r  r   )r4   r5   _Image_to_vertex(_VideoGenerationReferenceImage_to_vertex_VideoGenerationMask_to_vertexrM   s        r!   _GenerateVideosConfig_to_vertexr    sn   
 !)	+*+,8	}%[-./ 
+()*6	|$[+,- 
+w+u-tK%/IJ	+*+,8	()[-./ 
+x ,v.[6(0KL	+'(4	}%[>*+ 
+~&2	|$[<.) 
++,-9	)*[./0 
+'(4	}%[>*+ 
+)*+7	'([,-. 
+()*6	'[+,- 
+()*6	'[+,- 
+~&2	%|n-y+	
 
+*+,8	*+
 [+=*>?		
  5i	
	 
+x ,	 &vh'K	
 
+-./;	+,[012 
1	
s   .J$c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | ddg      %t        |dgt        t        | ddg      ||             t        | ddg      %t        |dgt        t        | ddg      ||             |S )Nr   r   doneerrorr  generateVideoResponseresult)r4   r5   "_GenerateVideosResponse_from_mldevr6   s       r!   #_GenerateVideosOperation_from_mldevr    s-   
 !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
$;<=I	*z+BCD	
 
+
$;<=I	
*z+BCD	
 
r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             t        | dg      $t        |dgt        t        | dg      ||             |S )Nr   r   r  r  r  r  )r4   r5   #_GenerateVideosResponse_from_vertexr6   s       r!   $_GenerateVideosOperation_from_vertexr  B  s   
 !)	+x ,VHd;9:	+
|$0ZL${ZL"AB	+x ,VHd;9:	+y!-WItK';<	+
|$0	+zl+Y	
 
+
|$0	
+zl+Y	
 
r#   c                 *   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      %t        |ddgt	        t        |dg      ||             t        |dg      %t        |ddgt        t        |dg      ||             t        |dg      t        t        |dg      ||       t        |dg      t        t        |dg      ||       |S 	NrV   rW   r   r   imagevideosourcer   )r4   r5   rY   rZ   r  _Video_to_mldev_GenerateVideosSource_to_mldevr  r   s        r!   "_GenerateVideosParameters_to_mldevr  i  s7    !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	![7)4iM 
+y!-	![7)4iM 
+z"."[8*%y+ 
+z"."[8*%y+ 
r#   c                 *   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t        |ddgt        |dg             t        |dg      %t        |ddgt	        t        |dg      ||             t        |dg      %t        |ddgt        t        |dg      ||             t        |dg      t        t        |dg      ||       t        |dg      t        t        |dg      ||       |S r  )r4   r5   rY   rZ   r  _Video_to_vertex_GenerateVideosSource_to_vertexr  r   s        r!   #_GenerateVideosParameters_to_vertexr    s7    !)	+y!-				*d;	:; 
+z".^X.[8*0MN	+y!-	!kG95y+N 
+y!-	!kG95y+N 
+z".#[8*%y+ 
+z".#[8*%y+ 
r#   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)r4   r5   _GeneratedVideo_from_mldevrM   s        r!   r  r    s    
 !)	+*+,8	 [+=*>?	
 'tYD	
 
+/01=	#$[234 
+123?	%&[456 
)	
   B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videosr  r  r  r  r  )r4   r5   _GeneratedVideo_from_vertexrM   s        r!   r  r    s    
 !)	+z".	 [8*5	
 (iE	
 
+/01=	#$[234 
+123?	%&[456 
)	
r  c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S Nr   r   r  r  )r4   r5   r  r  r6   s       r!   r  r  	  s    
 !)	+z".14hZ3P 
+y!-	![7)4iM 
+y!-	![7)4iM 
r#   c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S r  )r4   r5   r  r  r6   s       r!   r  r  	  s    
 !)	+z".14hZ3P 
+y!-	!kG95y+N 
+y!-	!kG95y+N 
r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w )N_selfr  r   )r4   r5   _Image_from_vertexrM   s        r!   _GeneratedImageMask_from_vertexr  ;	  s    
 !)	+y!-	wi()[	
 
+z".H:kH:1NOO 
  Ps   	A*c           
         i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  r  raiFilteredReasonrai_filtered_reasonsafety_attributes)r4   r5   _Image_from_mldevrs  r6   s       r!   rr  rr  R	  s    
 !)	+y!-		${WI6	;O 
++,-9	[./0 
+y!-	$wi()[	
 
r#   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  r  r  r  r  r   enhanced_prompt)r4   r5   r  rw  r6   s       r!   r   r   r	  s    
 !)	+y!-		wi()[	
 
++,-9	[./0 
+y!-	%wi()[	
 
+z".&'kH:)FG	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  )r4   r5   _Video_from_mldevr6   s       r!   r  r  	  sE    
 !)	+y!-		${WI6	;O 
r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  r  )r4   r5   _Video_from_vertexr6   s       r!   r  r  	  sH    
 !)	+y!-		wi()[	
 
r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        |d
gt        | d	g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d gt        | dg             t        | d!g      t        |d"gt        | d!g             t        | d#g      t        |d#gt        | d#g             t        | d$g      t        |d%gt        | d$g             t        | d&g      t        |d'gt        | d&g             t        | d(g      t        |d)gt        | d(g             t        | d*g      t        d+      |S ),Nr#  rE  r  r  r1  rF  r  r  enable_affective_dialogenableAffectiveDialogr  r  r  r  r  r-  r.  r  r  r  r  r  r  r+  r,  r   r!  r"  rD  r   r/  r0  r  r  r  r2  r3  r  r  r  r  r6  rG  r3   r6   s       r!   r   r   	  s   
 !)	+012>	[345 
+./0<	[123 
+)*+7%&[;L:M(NO	+)*+7%&[;L:M(NO	+123?	 ![456 
++,-9	[./0 
+
|$0ZL${ZL"AB	++,-9%&[;N:O(P 
+*+,8%&[;M:N(O 
+*+,8%&[;M:N(O 
++,-9	[./0 
+,-.:	[/01 
+-./;	[012 
+)*+7%&[;L:M(NO	+()*6_%tK:J9K'LM	+x ,VHd;9:	+()5^$d;8I&JK	+()*6_%tK:J9K'LM	+'3]OT+%GH	+)*+7%&[;L:M(NO	+y!-VHd;	:;	+y!-VHd;	:;	+789E
P  
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!   _GetModelParameters_to_mldevr  +
  r   r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S r   r   r   s        r!   _GetModelParameters_to_vertexr  <
  r   r#   c                     i }t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Nauth_configz5auth_config parameter is not supported in Gemini API.enable_widgetenableWidgetr   r6   s       r!   _GoogleMaps_to_mldevr  M
  sS    
 !)	+'3
L
MM	+()5^$d;8I&JK	r#   c                     i }t        | dg      t        d      t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Nexclude_domainsz9exclude_domains parameter is not supported in Gemini API.blocking_confidencez=blocking_confidence parameter is not supported in Gemini API.time_range_filtertimeRangeFilterr   r6   s       r!   _GoogleSearch_to_mldevr  \
  s    
 !)	+)*+7
C  
+-./;
G  
++,-9%&[;N:O(P 
r#   c                 2   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        d      t        | d	g      t        d
      |S )Nr   r   rb  	imageSizer   z;person_generation parameter is not supported in Gemini API.r   z:output_mime_type parameter is not supported in Gemini API.r   zDoutput_compression_quality parameter is not supported in Gemini API.r3   r6   s       r!   rA  rA  t
  s    
 !)	+'(4]OT+7G%HI	+~&2[M4l^#DE	++,-9
E  
+*+,8
D  
+456B
N  
r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dd	gt        | dg             t        | d
g      t        |ddgt        | d
g             |S )Nr   r   rb  r  r   r   r   imageOutputOptionsr2   r   r   rS   r6   s       r!   rI  rI  
  s    
 !)	+'(4]OT+7G%HI	+~&2[M4l^#DE	++,-9	[./0 
+*+,8	z*[-./ 
+456B	34[789 
r#   c           
          i }t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )NbytesBase64Encodedimage_bytesr2   r1   r4   r5   base_tt_bytesr6   s       r!   r  r  
  so    
 !)	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )NgcsUrigcs_urir  r  r2   r1   r  r6   s       r!   r  r  
  s    
 !)	+z".YKkH:!>?	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	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 )Nr  z1gcs_uri parameter is not supported in Gemini API.r  r  r1   r2   )r4   r   r5   r  r  r6   s       r!   r  r  
  s    
 !)	+	{#/
H
II	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r1   r2   r  r6   s       r!   r  r  
  s    
 !)	+	{#/XJ[9+ >?	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c                 j   i }t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      .t        |dd	gt        j                  | t        |dg                   |S 
N	page_size_querypageSize
page_token	pageTokenfilter
query_baserW   
models_urlr4   r5   rY   t_models_urlr   s        r!   _ListModelsConfig_to_mldevr         !)	+}%1*-tK+/O 
+~&2	;[<.) 
+z".8,d;
.KL	+~&2		z4l^#DE 
r#   c                 j   i }t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      t        |ddgt        |dg             t        |dg      .t        |dd	gt        j                  | t        |dg                   |S r  r  r   s        r!   _ListModelsConfig_to_vertexr  -  r  r#   c                 V    i }t        |dg      t        | t        |dg      ||       |S Nr   )r4   r  r   s        r!   _ListModelsParameters_to_mldevr  N  s:     !)	+z".Dxj19k 
r#   c                 V    i }t        |dg      t        | t        |dg      ||       |S r  )r4   r  r   s        r!   _ListModelsParameters_to_vertexr  ]  s:     !)	+z".Dxj19k 
r#   c                 P   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      Et        |dgt        j                  t        | dg            D cg c]  }t	        |||       c}       |S c c}w Nr_   r`   nextPageTokennext_page_tokenr  models)r4   r5   rY   t_extract_models_Model_from_mldevrM   s        r!   _ListModelsResponse_from_mldevr   l  s    
 !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+y!-	
 **4gY+GH	
 dI{;	
 
	
   B#c                 P   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      Et        |dgt        j                  t        | dg            D cg c]  }t	        |||       c}       |S c c}w r  )r4   r5   rY   r  _Model_from_vertexrM   s        r!   _ListModelsResponse_from_vertexr    s    
 !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+y!-	
 **4gY+GH	
 tY<	
 
	
r  c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )N	mask_modemaskModesegmentation_classesmaskClassesmask_dilationdilationrS   r6   s       r!   _MaskReferenceConfig_to_vertexr    s    
 !)	+}%1ZL${[M"BC	+./0<M?D7M6N$O 
+()5ZL${_4E"FG	r#   c                    i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |d	gt        | dg             t        | d
g      t        |dgt        | d
g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      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   displayNamer/   r  versionr  tuned_model_infoinputTokenLimitinput_token_limitoutputTokenLimitoutput_token_limitsupportedGenerationMethodssupported_actionsr  maxTemperaturemax_temperaturer  r  r  r  thinkingrS   r6   s       r!   r  r    s)   
 !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+	{#/YKkI;!?@	+y!-'(${WI*FG	+)*+7'(${=N<O*P 
+*+,8	[-./ 
+456B	[789 
+'3]OT+%GH	+()*6&'k<L;M)NO	+x ,WItK&:;	+x ,WItK&:;	+
|$0ZL${ZL"AB	r#   c                 .   i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      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        | dg             t        | dg      't        |dgt        | dg      D cg c]  }| c}       |S c c}w c c}w )Nr   r  r/   r  	versionIdr  deployedModels	endpointsr   r  r  defaultCheckpointIddefault_checkpoint_idcheckpoints)r4   r5   r   _TunedModelInfo_from_vertexrM   s        r!   r  r    s   
 !)	+x ,VHd;9:	+'3^$d;&HI	+'3]OT+%GH	+}%1YKkK=!AB	+()*6	 [+;*<=	
 "$	;?	
 
+z".XJ[8* =>	+y!-	#wi()[	
 
+-./;	 ![012 
+'3	{]O<=$= 
A	
: 	>s   ?F;	F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        t        | dg      ||             t        | d	g      $t        |d
gt        t        | d	g      ||             t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt	        t        | dg      ||             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S )Nr-  r.  code_execution_resultcodeExecutionResultexecutable_codeexecutableCode	file_datafileDatafunction_callfunctionCallfunction_responsefunctionResponseinline_data
inlineDatatextthoughtthought_signaturethoughtSignaturevideo_metadatavideoMetadata)r4   r5   r   r   r8   r6   s       r!   rn   rn   )  s'   
 !)	+*+,8%&[;M:N(O 
+/01=	[234 
+)*+7%&[;L:M(NO	+}%1	{m,i	
 
+()5	/0)[	
 
++,-9	[./0 
+'3	}o.	;	
 
+x ,VHd;9:	+	{#/YKkI;!?@	++,-9	[./0 
+()*6_%tK:J9K'LM	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nproduct_imager  r4   r5   r  r6   s       r!   _ProductImage_to_vertexr8  s  sJ    
 !)	+()5		/0)[	
 
r#   c                 b   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        |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gt        | dg             |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   rd  rg  r   rS   r6   s       r!   _RecontextImageConfig_to_vertexr:    s#   
 !)	+*+,8	}%[-./ 
+~&2	{#[<.) 
+()*6	|$[+,- 
+x ,v.[6(0KL	+-./;	'[012 
++,-9	)*[./0 
+()5	~&[?+, 
+*+,83[-./ 
+456B=[789 
+()*6	'[+,- 
+z".
Dxj$AB	r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       t        |dg      t        t        |dg      ||       |S NrV   rW   r  r   )r4   r5   rY   rZ   _RecontextImageSource_to_vertexr:  r   s        r!   #_RecontextImageParameters_to_vertexr>    s     !)	+y!-				*d;	:; 
+z".#[8*%y+ 
+z".#[8*%y+ 
r#   c                     i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   r   r   rM   s        r!   #_RecontextImageResponse_from_vertexr@    s`    
 !)	+'3	 [=/:	
 (iE	
 
	
   Ac                 F   i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |g dt        t        | dg      ||             t        | dg      3t        |ddgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   r   person_image)r   personImager  product_imagesproductImages)r4   r5   r  r8  rM   s        r!   r=  r=    s    
 !)	+z".14hZ3P 
+'(40~./K	
 
+()*6	) [+;*<=	
 $D)[A	
 
	
s   B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        | dg             t        | dg      t        |dg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)r4   r5   r  r  ru   r6   s       r!   r   r   #  s   
 !)	+)*+7	012I{	
 
+'(4]OT+7G%HI	+()*6_%tK:J9K'LM	++,-9	&234i	
 
+./0<	)567K	
 
+,-.:	[/01 
+./0<	[123 
r#   c           	          i }t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             t        | dg      t        |dgt        | dg             |S NsafetyAttributes
categoriesscorescontentTypecontent_typerS   r6   s       r!   rs  rs  [      
 !)	+*L9:F	[-|<= 
+*H56BH:tK2Dh1OP 
+'3^$d;&HI	r#   c           	          i }t        | ddg      t        |dgt        | ddg             t        | ddg      t        |dgt        | ddg             t        | dg      t        |dgt        | dg             |S rW  rS   r6   s       r!   rw  rw  s  r]  r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        d      t        | dg      t        |dgt        | dg             |S )Ncategorymethodz0method parameter is not supported in Gemini API.	thresholdr3   r6   s       r!   r:  r:    sv    
 !)	+
|$0ZL${ZL"AB	+z".
G
HH	+}%1[M4k]#CD	r#   c           
      l    i }t        | dg      $t        |dgt        t        | dg      ||             |S )Nr  r7  r6   s       r!   _ScribbleImage_to_vertexrd    sE    
 !)	+y!-		kG95y+N 
r#   c                    i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | d	g      t        |dd
gt        | d	g             t        | dg      t        |dgt        | dg             |S )Nr   r   max_predictionsmaxPredictionsconfidence_thresholdconfidenceThresholdr
  maskDilationbinary_color_thresholdbinaryColorThresholdr   rS   r6   s       r!   _SegmentImageConfig_to_vertexrm    s/   
 !)	+x ,v.[6(0KL	+)*+7	'([,-. 
+./0<	,-[123 
+()5	~&[?+, 
+012>	-.[345 
+z".
Dxj$AB	r#   c                    i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       t        |dg      t        t        |dg      ||       |S r<  )r4   r5   rY   rZ   _SegmentImageSource_to_vertexrm  r   s        r!   !_SegmentImageParameters_to_vertexrp    s     !)	+y!-				*d;	:; 
+z".![8*%y+ 
+z".![8*%y+ 
r#   c                     i }t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w )Nr   generated_masks)r4   r5   r  rM   s        r!   !_SegmentImageResponse_from_vertexrs    s`    
 !)	+'3	 [=/:	
 ,D)[I	
 
	
rA  c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      %t        |ddgt        t        | dg      ||             t        | dg      %t        |ddgt        t        | dg      ||             |S )Nr   r   r  scribble_imagescribble)r4   r5   r  rd  r6   s       r!   ro  ro    s    
 !)	+z".14hZ3P 
+y!-	!kG95y+N 
+()*6	$ /019k	
 
r#   c           
          i }t        | dg      t        |dgt        | dg             t        | dg      $t        |dgt        t        | dg      ||             |S )Nretrieval_configretrievalConfigfunction_calling_configfunctionCallingConfig)r4   r5   r  r6   s       r!   r>  r>  %  s    
 !)	+*+,8%&[;M:N(O 
+123?	 !'89:	
 
r#   c           
         i }t        | dg      t        d      t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | d	g      t        d
      t        | dg      't        |dgt        | dg      D cg c]  }| c}       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             |S c c}w )N	retrievalz3retrieval parameter is not supported in Gemini API.computer_usecomputerUsefile_search
fileSearchcode_executioncodeExecutionenterprise_web_searchz?enterprise_web_search parameter is not supported in Gemini API.function_declarationsfunctionDeclarationsgoogle_maps
googleMapsgoogle_searchgoogleSearchgoogle_search_retrievalgoogleSearchRetrievalurl_context
urlContext)r4   r   r5   r  r  rM   s        r!   r<  r<  >  s   
 !)	+}%1
J
KK	+'(4]OT+7G%HI	+'3\ND}o$FG	+()*6_%tK:J9K'LM	+/01=
I  
+/01=	 {-D,EFG$G 
+'3	}o.	;	
 
+()5	/0)[	
 
+123?	 ![456 
+'3\ND}o$FG	? 	Hs   		F	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      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        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S c c}w )Nr}  r~  r  r  z4file_search parameter is not supported in Vertex AI.r  r  r  enterpriseWebSearchr  r  r  r  r  r  r  r  r  r  )r4   r5   r   r
  rM   s        r!   r   r   {  s   
 !)	+}%1[M4k]#CD	+'(4]OT+7G%HI	+'3
K
LL	+()*6_%tK:J9K'LM	+/01=	[234 
+/01=	  [+B*CD	
 +4KH	
 
+'3\ND}o$FG	+()5^$d;8I&JK	+123?	 ![456 
+'3\ND}o$FG	-	
s   F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-id
base_modelr\  r]  
updateTimeupdate_timerS   r6   s       r!   r!  r!    s    
 !)
;#KLM 		[8%MNO 
+~&2]OT+~%FG	+~&2]OT+~%FG	r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S Nr/   r  r  r  r  rS   r6   s       r!   _UpdateModelConfig_to_mldevr        
 !)	+'(4kN;K)LM	+'3kM?)KL	+/01=	[234 
r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r  rS   r6   s       r!   _UpdateModelConfig_to_vertexr    r  r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       |S )NrV   rW   r   r   )r4   r5   rY   rZ   r  r   s        r!   _UpdateModelParameters_to_mldevr    ss     !)	+y!-				*d;	:; 
+z".[8*%y+ 
r#   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      ||       |S )NrV   rW   r   )r4   r5   rY   rZ   r  r   s        r!    _UpdateModelParameters_to_vertexr    ss     !)	+y!-				*d;	:; 
+z". [8*%y+ 
r#   c                 b   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        |g dt        | d
g             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |g dt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   enhance_input_image)r   upscaleConfigenhanceInputImageimage_preservation_factor)r   r  imagePreservationFactorr   r   r   r   rS   r6   s       r!    _UpscaleImageAPIConfig_to_vertexr  $  s    
 !)	+()*6	|$[+,- 
+-./;	'[012 
++,-9	)*[./0 
+,-.:	)*[/01 
+*+,83[-./ 
+456B=[789 
+-./;<[012 
+345AB[678 
+z".
Dxj$AB	+*+,8	}%[-./ 
+x ,v.[6(0KL	r#   c                 |   i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      %t        |ddgt	        t        |dg      ||             t        |dg      t        |g dt        |dg             t        |dg      t        t        |dg      ||       |S )NrV   rW   r  r   upscale_factor)r   r  upscaleFactorr   )r4   r5   rY   rZ   r  r  r   s        r!   $_UpscaleImageAPIParameters_to_vertexr  s  s     !)	+y!-				*d;	:; 
+y!-	!kG95y+N 
+()*68[+,- 
+z".$[8*%y+ 
r#   c                     i }t        | dg      t        |dgt        | dg             t        | dg      2t        |dgt        | dg      D cg c]  }t        |||       c}       |S c c}w r   r   rM   s        r!   !_UpscaleImageResponse_from_vertexr    r   r   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r7  r6   s       r!   r  r    sk    
 !)	+y!-		kG95y+N 
+}%1ZL${[M"BC	r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      /t        t        | dg             t        |dgt        | dg             |S Nr  rL  rM  )r4   r5   r  r)   r6   s       r!   r  r    s    
 !)	+y!-		[7)4iM 
+()*68[+,- 	_%tK:J9K'LM	r#   c           
          i }t        | dg      $t        |dgt        t        | dg      ||             t        | dg      t        |dgt        | dg             |S r  r7  r6   s       r!   r  r    sp    
 !)	+y!-		kG95y+N 
+()*6_%tK:J9K'LM	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )NuriencodedVideovideo_bytesencodingr1   r  r6   s       r!   r  r    s    
 !)	+w+UGT+w78	+'(4	tK.)9:; 
+
|$0[M4j\#BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r2   r1   r  r6   s       r!   r  r    s    
 !)	+z".UGT+z:;	+,-.:	tK*>)?@A 
+
|$0[M4j\#BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r1   r  r  r6   s       r!   r  r    s    
 !)	+w+UGT+w78	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c           
         i }t        | dg      t        |dgt        | dg             t        | dg      ,t        |dgt        j                  t        | dg                   t        | dg      t        |dgt        | dg             |S )Nr  r  r  r  r1   r2   r  r6   s       r!   r  r  -  s    
 !)	+w+XJ[5' :;	+'3	tK-9: 
+}%1ZL${[M"BC	r#   c                   	   e Zd Zdddedeej                  ej                  f   deej                     dej                  fdZdddedeej                  ej                  f   deej                     deej                     fdZdddedeej                  ej                  f   deej                     dej                  fd	Zddded
edeej"                     dej$                  fdZddded
edeej*                     deej,                     dej.                  f
dZdddedej2                  dedeej4                     dej6                  f
dZdddedej:                  deej<                     dej>                  fdZ dddedejB                  deejD                     dejF                  fdZ$dddedeejJ                     dejL                  fdZ'dddeejP                     dejR                  fdZ*dddedeejV                     dejL                  fdZ,dddedeejZ                     dej\                  fdZ/dddedeej                  ej                  f   deej`                     dejb                  fdZ2dddedeej                  ej                  f   deejf                     dejh                  fdZ5ddddddded
ee   deej2                     deejl                     deejn                     deejp                     dejr                  fdZ:dddedej                  deej                     dej                  fdZ;dddedej                  deej                     deej                     fdZ<ddded
edeej"                     dej$                  fdZ=ddded
edeej*                     deej,                     dej.                  f
d Z>dddedej2                  dedeej~                     dej6                  f
d!Z@ddddddded
ee   deej2                     deejl                     deejn                     deejp                     dejr                  fd"ZAdddeejP                     deBejL                     fd#Zy)$ModelsNr   rV   rX   r   r   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|@t!        |dd       r3t        j"                  |
	      }| j                  j%                  |       |S |
j&                  si nt)        j*                  |
j&                        }| j                  j                  rt-        |d |      }| j                  j                  st/        |d |      }t         j"                  j1                  ||j3                         
      }t        j4                  |
j6                        |_        | j                  j%                  |       |S NrV   rX   r   rW   z{model}:generateContentr  ?r   postshould_return_http_response)r`   r  kwargsheaders)r   _GenerateContentParameters_api_clientvertexairO  get
format_maprM  r	   popr   http_optionsr   convert_to_dictencode_unserializable_typesrequestgetattrGenerateContentResponse_verify_responsebodyjsonloadsr^  rZ  _from_response
model_dumpHttpResponser  r`   selfrV   rX   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsr  r  return_valueresponse_dicts                r!   _generate_contentzModels._generate_contentE  si    66O   9


OT?l &))&1	(334DE(8


OT?l &))&1	(334DE(##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH g-t 22XNl
''5&mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L &+%7%7  &L" 	%%l3r#   c             #     K   t        j                  |||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }|t        |dd       rt!        d      | j                  j#                  d	|||	      D ]  }
|
j$                  si nt'        j(                  |
j$                        }| j                  j                  rt+        |d |      }| j                  j                  st-        |d |      }t         j.                  j1                  ||j3                         
      }t        j4                  |
j6                        |_        | j                  j;                  |       |  y w)Nr  rW   %{model}:streamGenerateContent?alt=sser  r  r   r  FAccessing the raw HTTP response is not supported in streaming methods.r  r  r  )r   r  r  r  rO  r  r  rM  r	   r  r   r  r   r  r  r  r   request_streamedr  r  r  r^  rZ  r  r  r  r  r  r`   r  r  rV   rX   r   r  r  r  r  r  r  r  r  r  s                r!   _generate_content_streamzModels._generate_content_stream  si     66O   9


OT?l &))&1	6AA
 78


OT?l &))&1	6AA
 7##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DLg-t  
 $$55lL  !)b4::hmm3Lm				"	"<4
 &&;4
 22AA )C)C)E B l (-'9'9""(l$ ''5/s   I+I-c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         
      }t        j0                  |
j2                        |_        | j                  j7                  |       |S )aA  Calculates embeddings for the given contents. Only text is supported.

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

    Usage:

    .. code-block:: python

      embeddings = client.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  NrW   {model}:predict{model}:batchEmbedContentsr  r  r   r  r  r  )r   _EmbedContentParametersr  r  r   r  r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   EmbedContentResponser  r  r  r  r`   r  r  s                r!   embed_contentzModels.embed_content  s'   < 33O   6


OT?l &))&1	 ++,<= 5


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m $$6
m --<<'A'A'C = L &+%7%7  &L" 	%%l3r#   r   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S )z%Private method for generating images.rV   r   r   NrW   r  r  r  r   r  r  r  )r   _GenerateImagesParametersr  r  rm  r  r  rk  r	   r  r   r  r   r  r  r  r  r  r  rx  rt  GenerateImagesResponser  r  r  r  r`   r  r  rV   r   r   r  r  r  r  r  r  r  r  r  s                r!   _generate_imageszModels._generate_imagesM  s'    55O   8


OT?l &))&1	 ++,<= 7


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  9
m $$8
m //>>'A'A'C ? L &+%7%7  &L" 	%%l3r#   r   c                   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
      }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S )z$Private method for editing an image.rV   r   r   r   6This method is only supported in the Vertex AI client.NrW   r  r  r  r   r  r  r  )r   _EditImageParametersr  r  r   r   r  r  r	   r  r   r  r   r  r  r  r  r  r  r   EditImageResponser  r  r  r  r`   r  r  rV   r   r   r   r  r  r  r  r  r  r  r  r  s                 r!   _edit_imagezModels._edit_image  s    00)	O $$OPP3


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  4
m **99'A'A'C : L &+%7%7  &L" 	%%l3r#   r  r  c                   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
      }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S )z&Private method for upscaling an image.rV   r  r  r   r  NrW   r  r  r  r   r  r  r  )r   _UpscaleImageAPIParametersr  r  r   r  r  r  r	   r  r   r  r   r  r  r  r  r  r  r  UpscaleImageResponser  r  r  r  r`   r  r  rV   r  r  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


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m --<<'A'A'C = L &+%7%7  &L" 	%%l3r#   r  c                   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S a  Recontextualizes an image.

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

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

    Usage:

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

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

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

    Usage:

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

      mask_image = response.generated_masks[0].mask
      ```
    r  r  NrW   r  r  r  r   r  r  )r   _SegmentImageParametersr  r  r   rp  r  r  r	   r  r   r  r   r  r  r  r  r  r  rs  SegmentImageResponser  r  r  r  s                r!   segment_imagezModels.segment_image  s   @ 33O $$OPP6


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  7
m --<<'A'A'C = L 	%%l3r#   c                F   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }| j                  j1                  |       |S 	NrV   r   rW   {name}r  r  r   r  r  )r   _GetModelParametersr  r  r  r  r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  Modelr  r  r  r  rV   r   r  r  r  r  r  r  r  r  r  s               r!   r  z
Models.get  s    //O   2


OT?l &))&1	""#341


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3r#   c                   t        j                  |      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r=|j                  d      r,|j                  d      }| d| }|r$|dt        |       z  }n|r| dt        |       }|j                  d	d        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d
|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                        |_        | j                  j7                  |       |S Nr  rW   z{models_url}r  r  z?filter=&r  r   r  r  r  )r   _ListModelsParametersr  r  r  r  r  r  r  r	   r   r  r   r  r  r  r  r  r  r  r   ListModelsResponser  r  r  r  r`   r  r  r   r  r  r  r  r  query_param_filterr  r  r  r  s               r!   _listzModels._list  si    11O   4


OT?l &))&1	(()9:3


OT?l &))&1	(()9:##H-L((2'++H5vX012d	!Il+,--	vQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  5
m $$4
m ++::'A'A'C ; L &+%7%7  &L" 	%%l3r#   c                F   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                         	      }| j                  j1                  |       |S 
Nr  rW   z{model}r  r  r  r   patchr  )r   _UpdateModelParametersr  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!   updatezModels.updateb  s    22O   5


OT?l &))&1	##$454


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''|\H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3r#   c                   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                  	      |_        | j                  j7                  |       |S 
Nr  rW   r  r  r  r   deleter  r  )r   _DeleteModelParametersr  r  r   r  r  r   r	   r  r   r  r   r  r  r  r  r  r  r   r   DeleteModelResponser  r  r  r  r`   r  r  s               r!   r"  zModels.delete  s$    22O   5


OT?l &))&1	""#344


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''$lH 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3r#   c                   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	      }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S )a8  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

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

    Usage:

    .. code-block:: python

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

    list of tokens and list of token ids.

    This method is not supported by the Gemini Developer API.

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

    Usage:

    .. code-block:: python

      response = client.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    r  r  NrW   {model}:computeTokensr  r  r   r  r  r  )r   _ComputeTokensParametersr  r  r   r]   r  r  r	   r  r   r  r   r  r  r  r  r  r  rc   ComputeTokensResponser  r  r  r  r`   r  r  s                r!   compute_tokenszModels.compute_tokensK  s   < 44O $$OPP7


OT?l &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  8
m ..=='A'A'C > L &+%7%7  &L" 	%%l3r#   r   r  r  r  r   r  c                N   t        j                  ||||||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nBd}
n?t        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nd}
|j                  d      }|r|
 dt        |       }
|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|
||      }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }| j                  j1                  |       |S )
z%Private method for generating videos.rV   r   r  r  r  r   NrW   {model}:predictLongRunningr  r  r   r  r  )r   _GenerateVideosParametersr  r  r  r  r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  GenerateVideosOperationr  r  r  r  rV   r   r  r  r  r   r  r  r  r  r  r  r  r  r  s                   r!   _generate_videoszModels._generate_videos  s    55O   8


OT?l &))&1	+667GH+7


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L 	%%l3r#   c                   t        j                  |      }t        j                  |      }|r@|j                  r4t	        j
                  |j                        rt        j                  d      t        j                  |      r| j                  |||      S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj!                  t#        t$        |            }t&        j)                  d|       | j                  |||      S t        j*                  |      }	t&        j-                  d|	 d       g }
t        j.                         }d}|	dkD  r|d	z  }| j                  |||      }t        j0                  |      }|snR|snN|j2                  r<|j2                  d   j4                  r#|j2                  d   j4                  j6                  snt        j8                  ||      }|snt&        j-                  d
| d       |	d	z  }	|	dk(  rt&        j-                  d       |j2                  d   j4                  }t        j:                  d|      }t=        j>                  |      }|
s|
jA                  |       t        |tB              r"|jE                  |       |jE                  |       |
jE                  |       |
jE                  |       |	dkD  rt        jF                  |      r	||
|_$        |S )a  Makes an API request to generate content using a model.

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

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

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

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

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

      response = client.models.generate_content(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text(text='What is shown in this image?'),
          types.Part.from_uri(file_uri='gs://generativeai-downloads/images/scones.jpg',
          mime_type='image/jpeg')
        ]
      )
      print(response.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    6MCP sessions are not supported in synchronous methods.r  r   rx   , Tools at indices [%s] are not compatible with automatic function calling (AFC). AFC is disabled. If AFC is intended, please include python callables in the tool list, and do not include function declaration in the tool list.&AFC is enabled with max remote calls: .r
   AFC remote call 	 is done.8Reached max remote calls for automatic function calling.userrm   rl   )%r   "find_afc_incompatible_tool_indexesparse_config_for_mcp_usagerx   r   has_mcp_session_usager   UnsupportedFunctionErrorshould_disable_afcr  
isinstancer   GenerateContentConfiglendictr  joinmapstrloggerwarningget_max_remote_calls_afcinfor  get_function_maprQ  r:   rl   get_function_response_partsContentrY   r[   extendlistappendshould_append_afc_history"automatic_function_calling_history)r  rV   rX   r   incompatible_tools_indexesparsed_configoriginal_tools_lengthrx   indices_strremaining_remote_calls_afcrY  r  ifunction_mapfunc_response_partsfunc_call_contentfunc_response_contents                    r!   generate_contentzModels.generate_content  s/   D 	77?  !;;FCM,,]-@-@A++
B  &&}5## $   "	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DE5 	
 ## $   ".!F!F" KK
01K0LAN ?A&,,.H	A
$q
(1fa'' ( h "22=Al!!$$Q'//$$Q'//55(DD
L !kk$QCy12 A% 	#q	(NO"--a088#mm# h'h/*11(;	Hd	#)*-.(//0AB(//0EFO %q
(R 	..}=  - 1 Or#   c             #     K   t        j                  |      }t        j                  |      }|r@|j                  r4t	        j
                  |j                        rt        j                  d      t        j                  |      r| j                  |||      E d{    y|rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj!                  t#        t$        |            }t&        j)                  d|       | j                  |||      E d{    yt        j*                  |       t        j,                  |      }	t&        j/                  d|	 d	       g }
d}d}d}|	dkD  rw|d
z  }| j                  |||      }t        j0                  |      }|d
k(  r|D ]  }|st        j2                  ||      }|  |j4                  r<|j4                  d   j6                  r#|j4                  d   j6                  j8                  s nt        j:                  ||      }|rt        j2                  ||      }|  n|D ]8  }t        j<                  |      r|
|_        t        j2                  ||      }| : |H|j4                  r<|j4                  d   j6                  r#|j4                  d   j6                  j8                  syt        j:                  ||      }|sy|syt&        j/                  d| d       |	d
z  }	|	dk(  rt&        j/                  d       ||j4                  |j4                  d   j6                  }t        j@                  d|      }tC        jD                  |      }|
s|
jG                  |       t        |tH              r$|"|jK                  |       |jK                  |       ||
jK                  |       |
jK                  |       |	dkD  rvyy7 7 ҭw)a  Makes an API request to generate content using a model and yields the model's response in chunks.

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

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

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

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

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

      for chunk in client.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    r8  r  Nr   rx   r9  z_Tools at indices [%s] are not compatible with automatic function calling. AFC will be disabled.r;  r<  r
   r=  r>  r?  r@  rA  )&r   rB  rC  rx   r   rD  r   rE  rF  r  rG  r   rH  rI  rJ  r  rK  rL  rM  rN  rO  'raise_error_for_afc_incompatible_configrP  rQ  rR  append_chunk_contentsrQ  r:   rl   rS  rX  rY  rT  rY   r[   rU  rV  rW  )r  rV   rX   r   rZ  r[  r\  rx   r]  r^  rY  chunkra  r_  r  r`  rb  rc  s                     r!   generate_content_streamzModels.generate_content_stream  s2    D 	77?  !;;FCM,,]-@-@A++
B  &&}5.. /    !	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DE-	

 .. /     88G!-!F!F" KK
01K0LAN ?A&E	A
$q
(1fa.. / h "22=Al	
a  	E#99(EJHK $$''*22''*2288"."J"J|# '%;;HeLhk!	(  	E33MB2 4 "77%H(+	 M####A&..##A&..44
*FF<
  kk$QCy12 A% 	#q	(NO 
	u//;!,,Q/77 %%!
 <<)1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHU %q
(Q*s3   BP?P9CP?*P<+DP?9F<P?7P?<P?c                ,   | j                  |||      }d}g }|r|j                  s|S |j                  D ]E  }|j                  r&|j                  j                  dk(  r|j                  }5|j	                  |       G t        j                  ||      }|S )ap  Generates images based on a text description and configuration.

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

    Usage:

    .. code-block:: python

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

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

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

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

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = client.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  r  r  rV   r   r   r   s        r!   
edit_imagezModels.edit_image  s)    b )	   r#   c                h   t        j                  ||||       |xs i }t        |t         j                        r|j	                         }nt        |      }t        j                  |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  d	d      |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  r  r   
r  r   r   r   r   r   r   r  r  r   upscaler   r
   r   	r   UpscaleImageParametersrG  UpscaleImageConfigr  rJ  _UpscaleImageAPIConfigDictr  r   r  rV   r  r  r   
config_dct
api_configs          r!   upscale_imagezModels.upscale_image  s8   B 
  %	 \rF&%223$$&j<j11^^ND9!~~&6=&NN+@$G$..)<dC%>>*>E#(:DA#->>($$
 'NN+@$G",..'#
 ~~h-J$ #Jv%&J!"%	   r#   c          
      D   |s|s|r|rt        d      i }| j                  j                  s|rt        |t        j
                        r|j                         }nt        |      }|j                  d      r|j                  d      rt	        j
                  |j                  d      |j                  d            }nL| j                  j                  s5|r2t        |t        j                        r#|j                         }|j                  di       }nht        |      }t        |j                  d      t        j
                        r4|j                  dt	        j
                               }	|	j                         }|r|j                  d      rz|j                  d      rit	        j                  |j                  d      |j                  d      t	        j
                  |j                  d      |j                  d            	      }| j                  ||||||
      S )  Generates videos based on an input (text, image, or video) and configuration.

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

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

    Usage:

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

      operation.result.generated_videos[0].video.uri
      ```
    MSource and prompt/image/video are mutually exclusive. Please only use source.r  r  r1   r  r1   r  r   r  r   r  r  r1  r   r  r  rG  r   Videor  rJ  r  GenerateVideosSourcer6  
r  rV   r   r  r  r  r   	video_dct
source_dct	video_objs
             r!   generate_videoszModels.generate_videos  s   b 	%5f' 
 !#I$$	E5;;	'$$&	K		u	)--">e$	k0J
 &&6	FE66	7&&(
NN7B/	&\
jnnW-u{{;#->>'5;;=#I)**,)	y}}U+	m0L++>>(+..)++MM%(#--4
    !  r#   c                |   t        j                  |      j                  xs t        j                         }|j                  d|_        | j
                  j                  r6|j                         }|j                  s|j                  }|r|dz   nd|_        t        d| j                  | j                  |      |      S )a  Makes an API request to list the available models.

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

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

    Usage:

    .. code-block:: python

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

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



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

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

    Usage:

    .. code-block:: python

      embeddings = await client.aio.models.embed_content(
          model= 'text-embedding-004',
          contents=[
              'What is your name?',
              'What is your favorite color?',
          ],
          config={
              'output_dimensionality': 64
          },
      )
    r  NrW   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  s                r!   r  zAsyncModels.embed_contentJ  s5    < 33O   6


OT?l &))&1	 ++,<= 5


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m $$6
m --<<'A'A'C = L &+%7%7  &L" 	%%l3/   E(I*I+C)Ir   c                  K   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S 7 w)z4Private method for generating images asynchronously.r  NrW   r  r  r  r   r  r  r  )r   r  r  r  rm  r  r  rk  r	   r  r   r  r   r  r  r  r  r  r  rx  rt  r  r  r  r  r  r`   r  r  s                r!   r  zAsyncModels._generate_images  s5     55O   8


OT?l &))&1	 ++,<= 7


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  9
m $$8
m //>>'A'A'C ? L &+%7%7  &L" 	%%l3/r  r   c                   K   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
       d{   }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 ŭw)z3Private method for editing an image asynchronously.r  r  NrW   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  s                 r!   r  zAsyncModels._edit_image  s     00)	O $$OPP3


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  4
m **99'A'A'C : L &+%7%7  &L" 	%%l3%   D4G>6G<7CG>r  r  c                   K   t        j                  ||||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }	|	r| dt        |	       }|j                  dd       d}
|j                  ,|j                  j                  |j                  j                  }
t        j                  |      }t        j                  |      }| j                  j                  d	|||
       d{   }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }t        j.                  |j0                        |_        | j                  j5                  |       |S 7 ŭw)z5Private method for upscaling an image asynchronously.r  r  NrW   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  s                 r!   r   zAsyncModels._upscale_image9  s     66%	O $$OPP9


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m --<<'A'A'C = L &+%7%7  &L" 	%%l3%r  r  c                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }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  r  r  r  s                r!   r  zAsyncModels.recontext_image{  s    n 55O $$OPP8


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  9
m //>>'A'A'C ? L 	%%l3!   D3G5G6B!Gc                  K   t        j                  |||      }| j                  j                  st	        d      t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d	|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }t         j(                  j+                  ||j-                         
      }| j                  j/                  |       |S 7 w)a  Segments an image, creating a mask of a specified area.

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

    Usage:

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

      mask_image = response.generated_masks[0].mask
      ```
    r  r  NrW   r  r  r  r   r  r  )r   r	  r  r  r   rp  r  r  r	   r  r   r  r   r  r  r  r  r  r  rs  r
  r  r  r  r  s                r!   r  zAsyncModels.segment_image  s    F 33O $$OPP6


OT?l &))&1	 ++,<= ##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  7
m --<<'A'A'C = L 	%%l3!r  c                b  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }| j                  j1                  |       |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  r  r  r  r  s               r!   r  zAsyncModels.get?  s     //O   2


OT?l &))&1	""#341


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3#   E'H/)H-*CH/c                (  K   t        j                  |      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r=|j                  d      r,|j                  d      }| d| }|r$|dt        |       z  }n|r| dt        |       }|j                  d	d        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d
|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                        |_        | j                  j7                  |       |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  r  r  r  r  r`   r  r  s               r!   r  zAsyncModels._list~  s|     11O   4


OT?l &))&1	(()9:3


OT?l &))&1	(()9:##H-L((2'++H5vX012d	!Il+,--	vQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  5
m $$4
m ++::'A'A'C ; L &+%7%7  &L" 	%%l3/s   F%J'J(C)Jc                b  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                         	      }| j                  j1                  |       |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  r  r  r  r  s               r!   r  zAsyncModels.update  s     22O   5


OT?l &))&1	##$454


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33|\ H 'mmBHMM1JM  (oNm$$'t_Mm;;--'A'A'C . L 	%%l3#r  c                  K   t        j                  ||      }| j                  j                  r@t	        | j                  |d |      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd        d }|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d {   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
d |      }
| j                  j                  st)        |
d |      }
t         j*                  j-                  |
|j/                               }t        j0                  |	j2                  	      |_        | j                  j7                  |       |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$  r  r  r  r  r`   r  r  s               r!   r"  zAsyncModels.delete	  s2     22O   5


OT?l &))&1	""#344


OT?l &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33$l H 'mmBHMM1JM  6
m $$5
m ,,;;'A'A'C < L &+%7%7  &L" 	%%l3/s   E'I)I*C)Ic                  K   t        j                  |||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }|rdj                  |      }nBd}n?t        | j                  |d|      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}	|j                  ,|j                  j                  |j                  j                  }	t        j                  |      }t        j                  |      }| j                  j                  d|||	       d{   }
|
j                   si nt#        j$                  |
j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }t        j0                  |
j2                  
      |_        | j                  j7                  |       |S 7 w)aB  Counts the number of tokens in the given content.

    Multimodal input is supported for Gemini models.

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

    Usage:

    .. code-block:: python

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

    list of tokens and list of token ids.


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

    Usage:

    .. code-block:: python

      response = await client.aio.models.compute_tokens(
          model='gemini-2.0-flash',
          contents='What is your name?',
      )
      print(response)
      # tokens_info=[TokensInfo(role='user', token_ids=['1841', ...],
      # tokens=[b'What', b' is', b' your', b' name', b'?'])]
    r  r  NrW   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  rc   r-  r  r  r  r  r`   r  r  s                r!   r.  zAsyncModels.compute_tokens  s    : 44O $$OPP7


OT?l &))&1	&112BC&##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  8
m ..=='A'A'C > L &+%7%7  &L" 	%%l3%s   D3G=5G;6CG=r/  r  c                j  K   t        j                  ||||||      }| j                  j                  r@t	        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nBd}
n?t        | j                  |d|      }|j                  d      }	|	rdj                  |	      }
nd}
|j                  d      }|r|
 dt        |       }
|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|
||       d{   }|j                   si nt#        j$                  |j                         }| j                  j                  rt'        |d|      }| j                  j                  st)        |d|      }t         j*                  j-                  ||j/                         	      }| j                  j1                  |       |S 7 íw)
z4Private method for generating videos asynchronously.r1  NrW   r2  r  r  r   r  r  )r   r3  r  r  r  r  r  r  r	   r  r   r  r   r  r  r  r  r  r  r  r  r4  r  r  r  r5  s                   r!   r6  zAsyncModels._generate_videos  s!     55O   8


OT?l &))&1	+667GH+7


OT?l &))&1	+667GH+##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM  :
m $$9
m 00??'A'A'C @ L 	%%l3+s   E+H3-H1.CH3c                R  K   t        j                  |      }t        j                  |       d{   \  }}t        j                  |      r| j	                  |||       d{   S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj                  t        t        |            }	t        j!                  d|	       | j	                  |||       d{   S t        j"                  |      }
t        j%                  d|
 d       g }t        j&                         }|
dkD  rx| j	                  |||       d{   }|
d	z  }
|
dk(  rt        j%                  d
       t        j(                  ||d      }|sn!|sn|j*                  r<|j*                  d   j,                  r#|j*                  d   j,                  j.                  snt        j0                  ||       d{   }|sn|j*                  d   j,                  }t        j2                  d|      }t5        j6                  |      }|s|j9                  |       t        |t:              r"|j=                  |       |j=                  |       |j=                  |       |j=                  |       |
dkD  rxt        j>                  |      r	|||_         |S 7 7 7 7 7 w)ad  Makes an API request to generate content using a model.

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

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

      response = await client.aio.models.generate_content(
          model='gemini-2.0-flash',
          contents='User input: I like bagels. Answer:',
          config=types.GenerateContentConfig(
              system_instruction=
                [
                  'You are a helpful language translator.',
                  'Your mission is to translate text in English to French.'
                ]
          ),
      )
      print(response.text)
      # J'aime les bagels.
    Nr  r   rx   r9  r:  r;  r<  r
   r?  Tis_caller_method_asyncr@  rA  )!r   rB  parse_config_for_mcp_sessionsrF  r  rG  r   rH  rx   rI  rJ  r  rK  rL  rM  rN  rO  rP  rQ  r  rR  rQ  r:   rl   !get_function_response_parts_asyncrT  rY   r[   rU  rV  rW  rX  rY  )r  rV   rX   r   rZ  r[  mcp_to_genai_tool_adaptersr\  rx   r]  r^  rY  r  r`  ra  rb  rc  s                    r!   rd  zAsyncModels.generate_contentT  s#    P 	77?  88@@ .M- &&}5)) *    "	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DE5 	
 )) *    ".!F!F" KK
01K0LAN ?A&,,.H
$q
(-- .  h !A% 	#q	(NO!22
3Dl !!$$Q'//$$Q'//55>>  
 !"--a088#mm# h'h/*11(;	Hd	#)*-.(//0AB(//0EFQ %q
(V 	..}=  - 1 Oi 	A**sa   .L'L3L'$L%CL'2L3A%L'L"B%L'>L%?B8L'9!L'L'L'"L'%L'c                   K   t        j                  |      }t        j                  |       d{   \  }t        j                  |      r+ j	                  |||       d{   fd} ||||      S |rd}t        |t        j                        r"|j                  rEt        |j                        }n/t        |t              r|j                  dg       }|rt        |      }t        |      |k7  r5dj                  t        t        |            }	t        j!                  d|	        j	                  |||       d{   fd} ||||      S t        j"                  |        fd	}
 |
|||      S 7 J7 7 >w)
a2  Makes an API request to generate content using a model and yields the model's response in chunks.

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

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

    Some models support multimodal input and output.

    Built-in MCP support is an experimental feature.

    Usage:

    .. code-block:: python

      from google.genai import types
      from google import genai

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

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

      async for chunk in await client.aio.models.generate_content_stream(
        model='gemini-2.0-flash',
        contents=[
          types.Part.from_text('What is shown in this image?'),
          types.Part.from_uri('gs://generativeai-downloads/images/scones.jpg',
          'image/jpeg')
        ]
      ):
        print(chunk.text)
      # The image shows a flat lay arrangement of freshly baked blueberry
      # scones.
    Nr  c                6   K   2 3 d {   }| 7 
6 y wNr  rV   rX   r   rh  r  s       r!   base_async_generatorzAAsyncModels.generate_content_stream.<locals>.base_async_generator#  #     # 	 	%+	8   r   rx   r9  r:  c                6   K   2 3 d {   }| 7 
6 y wr  r  r  s       r!   r  zAAsyncModels.generate_content_stream.<locals>.base_async_generator?  r  r  c                  K   t        j                  |      }t        j                  d| d       g }d }d }d}|dkD  r5|dz  }j	                  | ||       d {   }|dkD  rt        j                  d| d       |dz  }|dkD  r|dk(  rt        j                  d       t        j
                  |d	
      }	|dk(  r|2 3 d {   }|	st        j                  ||      }| '|j                  r<|j                  d   j                  r#|j                  d   j                  j                  s nt        j                  ||	       d {   }|rt        j                  ||      }| |2 3 d {   }t        j                  |      r||_        t        j                  ||      }| A|	sy |sy ||j                  d   j                  }
t        j                  d|      }t        j                   |      }|s|j#                  |       t%        |t&              r$|
"|j)                  |
       |j)                  |       |
|j)                  |
       |j)                  |       |dkD  r4y y 7 7 7 06 7 6 |H|j                  r<|j                  d   j                  r#|j                  d   j                  j                  sy t        j                  ||	       d {  7  }>w)Nr;  r<  r   r
   r  r=  r>  r?  Tr  r@  rA  )r   rP  rN  rQ  r  rR  rg  rQ  r:   rl   r  rX  rY  r   rT  rY   r[   rU  rG  rV  rW  )rV   rX   r   r^  rY  ra  rh  r_  r  r`  rb  rc  r  r  s               r!   r  z<AsyncModels.generate_content_stream.<locals>.async_generatorI  s
    #/#H#H#P kk23M2Na
P AC( e
a&*	Q66(6 7 
 
 q5
++(95
6"a'"q5/14
++H $44.t
 6 &  E%;;HeLhk &&))!,44))!,44::$FF\  "
 )'==hN &  E55f=4 6 $99(EJHK 
"
=
!,,Q/77 %%!
 <<)1
,
3
3H
=h%*;*G
//+
,
///
0(
,
3
34E
F*112GHm '*
( &,X m%%%%a(00%%a(0066 BB   s   AK1I6A%K1I?I9I?
BK1I<K1K12J6J7J:C8K14K19I?<K1?K1JA%K1)K,*K1)r   rB  r  rF  r  rG  r   rH  rx   rI  rJ  r  rK  rL  rM  rN  rO  rf  )r  rV   rX   r   rZ  r[  r  r\  rx   r]  r  r  r  s   `          @@r!   ri  z#AsyncModels.generate_content_stream  s    F 	77? 
 88@@ .M- &&}544 5  h "%=AA!	FE77	8<<"%fll"3
fd#

7B'"%e*
	'	(,A	AiiC)C DE5 	
 44 5  h "%=AA 88G_IB 5(M::] 	A8s4   .FE=3F'F (CFF9F FFc                H   K   | j                  ||||       d{   S 7 w)aV  Edits an image based on a text description and configuration.

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

    Usage:

    .. code-block:: python

      from google.genai.types import RawReferenceImage, MaskReferenceImage

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

      mask_ref_image = MaskReferenceImage(
        reference_id=2,
        config=types.MaskReferenceConfig(
            mask_mode='MASK_MODE_FOREGROUND',
            mask_dilation=0.06,
        ),
      )
      response = await client.aio.models.edit_image(
        model='imagen-3.0-capability-001',
        prompt='man with dog',
        reference_images=[raw_ref_image, mask_ref_image],
        config=types.EditImageConfig(
            edit_mode= "EDIT_MODE_INPAINT_INSERTION",
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog instead of a cat.
    r  Nrs  rt  s        r!   ru  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  r  r  )r   r  r   r  r  r  r  r  r  r   r  r  s      r!   rV  zAsyncModels.list  s     < 	##6299 	$!!#   f  {{}f}}  77% 	
 

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

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

    Usage:

    .. code-block:: python

      response = await client.aio.models.generate_images(
        model='imagen-3.0-generate-002',
        prompt='Man with a dog',
        config=types.GenerateImagesConfig(
            number_of_images= 1,
            include_rai_reason= True,
        )
      )
      response.generated_images[0].image.show()
      # Shows a man with a dog.
    r  Nrk  rl  rm  rn  s	            r!   rq  zAsyncModels.generate_images  s     : .. /  L
 )-%|<<'88 1

+
+//<< -<,M,M)01 ++)*KH O1s   B"B BB"c                  K   t        j                  ||||       |xs i }t        |t         j                        r|j	                         }nt        |      }t        j                  |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  d	d      |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   r   r   r   r  r  r   rw  rx  r   r
   r   ry  r}  s          r!   r  zAsyncModels.upscale_imageO  sF    B 
  %	 \rF&%223$$&j<j11^^ND9!~~&6=&NN+@$G$..)<dC%>>*>E#(:DA#->>($$
 'NN+@$G",..'#
 ~~h-J$ #Jv%&J!"$$%	 %    s   D7E 9D>:E c          
      `  K   |s|s|r|rt        d      i }| j                  j                  s|rt        |t        j
                        r|j                         }nt        |      }|j                  d      r|j                  d      rt	        j
                  |j                  d      |j                  d            }nL| j                  j                  s5|r2t        |t        j                        r#|j                         }|j                  di       }nht        |      }t        |j                  d      t        j
                        r4|j                  dt	        j
                               }	|	j                         }|r|j                  d      rz|j                  d      rit	        j                  |j                  d      |j                  d      t	        j
                  |j                  d      |j                  d            	      }| j                  ||||||
       d{   S 7 w)r  r  r  r  r1   r  r  r   r  r  r1  Nr  r  s
             r!   r  zAsyncModels.generate_videos  s    b 	%5f' 
 !#I$$	E5;;	'$$&	K		u	)--">e$	k0J
 &&6	FE66	7&&(
NN7B/	&\
jnnW-u{{;#->>'5;;=#I)**,)	y}}U+	m0L++>>(+..)++MM%(#--4
 && '    s   H%H.'H,(H.)Dr  r  r  rM  r   r   r  r  r   r  r  r  r   r   r  r  r  r  r  r  r  rV  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  r4  r6  rd  ri  ru  r   rq  r  r  r  r  r#   r!   r  r    s    =AO O e,,e.H.HHI	O
 u889O $$Ol =AY Y e,,e.H.HHI	Y
 u889Y u<<=>Y@ :>_ _ e,,e.H.HHI	_
 u556_ !!_L <@J J 	J
 u778J ##Jd 7;@ @ 	@
 U;;<@ u223@ @P >B@ @ 	@
 @ u99:@ !!@N <@j j ..	j
 u778j ##jb :>V V ,,	V
 u556V !!Vr KO==#+E,F,F#G={{=@ AEG < <=GGZ 9=	@ @ u445	@
 {{@L 9=	F F u445	F
   FZ 9=] ] e,,e.H.HHI	]
 u445]   ]H ;?R R e,,e.H.HHI	R
 u667R ""Rp #+/+/;?;?N N sm	N
 e''(N e''(N u778N u778N $$Nj =A  e,,e.H.HHI	
 u889 $$L =AU; U; e,,e.H.HHI	U;
 u889U; U223U;z 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 :>H H 	H
 H u556H !!H\ #+/+/;?;?[ [ sm	[
 e''([ e''([ u778[ u778[ $$[r#   r  )NN)r  loggingtypingr   r   r   r   r   r   urllib.parser	    r   r   r  r   r   r   r   rY   r   r   r  r   r   r4   r   r5   pagersr   r   	getLoggerrN  r"   r&   r)   rJ  rM  objectr8   rO   rL   r]   rc   rf   rj   ro   ru   rz   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r
  rB  rJ  rM  rO  rZ  r^  re  rh  rk  rm  rt  rx  r  r  r  r  r  r  r  r  r  r  r  rr  r   r  r  r   r  r  r  r  rA  rI  r  r  r  r  r  r  r  r  r   r  r  r  r  rn   r8  r:  r>  r@  r=  r   rs  rw  r:  rd  rm  rp  rs  ro  r>  r<  r   r!  r  r  r  r  r  r  r  r  r  r  r  r  r  r  
BaseModuler  r  r  r#   r!   <module>r     s13  $   K K "  *        & . . % 
		0	1Q Q Q
Q# Q$ Q
QQ	Q /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6v /3;?tCH~v-.DcN+ %S#X 678 
#s(^	& /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	. /3;?tCH~v-.DcN+ %S#X 678 
#s(^	" /3;?tCH~v-.DcN+ %S#X 678 
#s(^	. /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!N /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^F /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^> /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	  /3;?tCH~v-.DcN+ %S#X 678 
#s(^	  /3;?vtCH~v-.vDcN+v %S#X 678v 
#s(^	vx /3;?	  tCH~v-.  DcN+  %S#X 678	 
 
#s(^ J /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?&tCH~v-.&DcN+& %S#X 678& 
#s(^	&X /3;?	$$tCH~v-.$ DcN+$ %S#X 678	$
 
#s(^$T /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^H /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?#tCH~v-.#DcN+# %S#X 678# 
#s(^	#R /3;?	vvtCH~v-.v DcN+v %S#X 678	v
 
#s(^vx /3;?	iitCH~v-.i DcN+i %S#X 678	i
 
#s(^i^ /3;?	!!tCH~v-.! DcN+! %S#X 678	!
 
#s(^!N /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^F /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!L /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!L /3;?ntCH~v-.nDcN+n %S#X 678n 
#s(^	nf /3;?vtCH~v-.vDcN+v %S#X 678v 
#s(^	vx /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^8 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^6 /3;? tCH~v-. DcN+  %S#X 678  
#s(^	 J /3;? tCH~v-. DcN+  %S#X 678  
#s(^	 J /3;?dtCH~v-.dDcN+d %S#X 678d 
#s(^	dR /3;?xtCH~v-.xDcN+x %S#X 678x 
#s(^	xz /3;?(tCH~v-.(DcN+( %S#X 678( 
#s(^	(Z /3;?$tCH~v-.$DcN+$ %S#X 678$ 
#s(^	$T /3;?	))tCH~v-.) DcN+) %S#X 678	)
 
#s(^)^ /3;?	))tCH~v-.) DcN+) %S#X 678	)
 
#s(^)\ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?tCH~v-.DcN+ %S#X 678 
#s(^	< /3;?tCH~v-.DcN+ %S#X 678 
#s(^	< /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	D /3;?"tCH~v-."DcN+" %S#X 678" 
#s(^	"N /3;?tCH~v-.DcN+ %S#X 678 
#s(^	$ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?otCH~v-.oDcN+o %S#X 678o 
#s(^	oj /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^( /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^& /3;?tCH~v-.DcN+ %S#X 678 
#s(^	" /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	@ /3;?!tCH~v-.!DcN+! %S#X 678! 
#s(^	!L /3;?tCH~v-.DcN+ %S#X 678 
#s(^	, /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^H /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^H /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^$ /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^" /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	, /3;?7tCH~v-.7DcN+7 %S#X 6787 
#s(^	7x /3;?6tCH~v-.6DcN+6 %S#X 6786 
#s(^	6v /3;?GtCH~v-.GDcN+G %S#X 678G 
#s(^	GX /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?LtCH~v-.LDcN+L %S#X 678L 
#s(^	Ld /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	F /3;?5tCH~v-.5DcN+5 %S#X 6785 
#s(^	5t /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	( /3;?tCH~v-.DcN+ %S#X 678 
#s(^	$ /3;?)tCH~v-.)DcN+) %S#X 678) 
#s(^	)^ /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^: /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	@ /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?:tCH~v-.:DcN+: %S#X 678: 
#s(^	:~ /3;?3tCH~v-.3DcN+3 %S#X 6783 
#s(^	3p /3;?tCH~v-.DcN+ %S#X 678 
#s(^	6 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	2 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^2 /3;?	tCH~v-. DcN+ %S#X 678	
 
#s(^0 /3;?LtCH~v-.LDcN+L %S#X 678L 
#s(^	Ld /3;?	!!tCH~v-.! DcN+! %S#X 678	!
 
#s(^!L /3;?tCH~v-.DcN+ %S#X 678 
#s(^	4 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	* /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	0 /3;?tCH~v-.DcN+ %S#X 678 
#s(^	,V[## Vr:X+(( Xr#   