
    hj                     b   d dl Z d dlZd dl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mZ  ej        d          Z	 d=deeeef         ef         deeeef                  deeef         fdZ	 d=deeeef         ef         deeeef                  deeef         fdZ	 d=deeeef         ef         deeeef                  deeef         fdZ	 d=deeeef         ef         deeeef                  deeef         fdZ	 d=deeeef         ef         deeeef                  deeef         fdZ 	 d=deeeef         ef         deeeef                  deeef         fdZ!	 d=deeeef         ef         deeeef                  deeef         fdZ"	 d=deeeef         ef         deeeef                  deeef         fdZ#	 d=dedeeeef         ef         deeeef                  deeef         fdZ$	 d=dedeeeef         ef         deeeef                  deeef         fdZ%	 d=dedeeeef         ef         deeeef                  deeef         fdZ&	 d=dedeeeef         ef         deeeef                  deeef         fdZ'	 d=deeeef         ef         deeeef                  deeef         fdZ(	 d=deeeef         ef         deeeef                  deeef         fdZ)	 d=deeeef         ef         deeeef                  deeef         fd Z*	 d=deeeef         ef         deeeef                  deeef         fd!Z+	 d=deeeef         ef         deeeef                  deeef         fd"Z,	 d=deeeef         ef         deeeef                  deeef         fd#Z-	 d=dedeeeef         ef         deeeef                  deeef         fd$Z.	 d=dedeeeef         ef         deeeef                  deeef         fd%Z/	 d=deeeef         ef         deeeef                  deeef         fd&Z0	 d=deeeef         ef         deeeef                  deeef         fd'Z1	 d=deeeef         ef         deeeef                  deeef         fd(Z2	 d=deeeef         ef         deeeef                  deeef         fd)Z3	 d=deeeef         ef         deeeef                  deeef         fd*Z4	 d=deeeef         ef         deeeef                  deeef         fd+Z5	 d=deeeef         ef         deeeef                  deeef         fd,Z6	 d=deeeef         ef         deeeef                  deeef         fd-Z7	 d=deeeef         ef         deeeef                  deeef         fd.Z8	 d=deeeef         ef         deeeef                  deeef         fd/Z9	 d=deeeef         ef         deeeef                  deeef         fd0Z:	 d=deeeef         ef         deeeef                  deeef         fd1Z;	 d=deeeef         ef         deeeef                  deeef         fd2Z<	 d=deeeef         ef         deeeef                  deeef         fd3Z=	 d=deeeef         ef         deeeef                  deeef         fd4Z>	 d=deeeef         ef         deeeef                  deeef         fd5Z?	 d=deeeef         ef         deeeef                  deeef         fd6Z@	 d=dedeeeef         ef         deeeef                  deeef         fd7ZA	 d=dedeeeef         ef         deeeef                  deeef         fd8ZB G d9 d:e	jC                  ZD G d; d<e	jC                  ZEdS )>    N)AnyOptionalUnion)	urlencode   )_api_module)_common)_transformers)types)BaseApiClient)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.cachesfrom_objectparent_objectreturnc                    i }t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | dg          t          d          t          | d	g          t          d
          t          | dg          t          d          t          | dg          t          d          |S )Napi_keyapiKeyapi_key_configzvapi_key_config parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.	auth_typezqauth_type parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.google_service_account_configzgoogle_service_account_config parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.http_basic_auth_configz~http_basic_auth_config parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.oauth_configztoauth_config parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.oidc_configzsoidc_config parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.getvsetv
ValueErrorr   r   	to_objects      W/var/www/app.qaans.com/backend/venv/lib/python3.11/site-packages/google/genai/caches.py_AuthConfig_to_mldevr$   #   sL    !)	+	{##/XJ[9+ > >???	+()**6
	<  
 
+}%%1
	<  
 
+7899E
	M  
 
+0122>
	M  
 
+'((4
	<  
 
+''3
	<  
 
    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datadisplay_nametdisplay_name parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.	mime_typemimeTyper   r!   s      r#   _Blob_to_mldevr,   R   s     !)	+x  ,VHd;99:::	+'((4
	<  
 
+}%%1ZL${[M"B"BCCC	r%   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          |S )Noutcomeoutputidjid parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r   r!   s      r#   _CodeExecutionResult_to_vertexr2   f   s     !)	+	{##/YKkI;!?!?@@@	+z"".XJ[8* = =>>>	+v*
	2  
 
r%   c                 v   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          |S )Nenvironmentexcluded_predefined_functionsexcludedPredefinedFunctions!enable_prompt_injection_detectionenablePromptInjectionDetectiondisabled_safety_policieszdisabled_safety_policies parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r   r!   s      r#   _ComputerUse_to_vertexr:   z   s     !)	+''3]OT+%G%GHHH	+7899E	&'[:;<<   
+;<==I	)*[>?@@   
+2344@
	M  
 
r%   c           	          i t          | dg          -t          dgfdt          | dg          D                        t          | dg          !t          dgt          | dg                     S )Npartsc                 0    g | ]}t          |          S  )_Part_to_mldev.0itemr"   s     r#   
<listcomp>z%_Content_to_mldev.<locals>.<listcomp>   3     	
 	
 	
 4++	
 	
 	
r%   roler   r   r!   s     @r#   _Content_to_mldevrG           !)	+y!!-			
 	
 	
 	
[7)44	
 	
 	
   
+x  ,VHd;99:::	r%   c           	          i t          | dg          -t          dgfdt          | dg          D                        t          | dg          !t          dgt          | dg                     S )Nr<   c                 0    g | ]}t          |          S r>   )_Part_to_vertexr@   s     r#   rC   z&_Content_to_vertex.<locals>.<listcomp>   3     	
 	
 	
 D),,	
 	
 	
r%   rE   rF   r!   s     @r#   _Content_to_vertexrM      rH   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fdt          j        t          | dg                    D                        t          | dg          At          |d	gt	          t          j        t          | dg                                         t          | d
g          -t          |d
gfdt          | d
g          D                        t          | dg          /t          |dgt          t          | dg                               t          | dg          t          d          S )Nttlexpire_time
expireTimer(   displayNamecontentsc                 0    g | ]}t          |          S r>   )rG   r@   s     r#   rC   z7_CreateCachedContentConfig_to_mldev.<locals>.<listcomp>   s3     	
 	
 	
 dI..	
 	
 	
r%   system_instructionsystemInstructiontoolsc                 0    g | ]}t          |          S r>   )_Tool_to_mldevr@   s     r#   rC   z7_CreateCachedContentConfig_to_mldev.<locals>.<listcomp>   rD   r%   tool_config
toolConfigkms_key_nameztkms_key_name parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.)r   r   t
t_contentsrG   	t_content_ToolConfig_to_mldevr    r!   s     @r#   #_CreateCachedContentConfig_to_mldevra      s@    !)	+w+kE7!;!;<<<	+''3[=/(J(JKKK	+'((4kN;K)L)LMMM	+
|$$0		
 	
 	
 	
T+
|%D%DEE	
 	
 	
   
+,-..:	K[+?*@AABBI	
 	
   
+y!!-			
 	
 	
 	
[7)44	
 	
 	
   
+''3	T+??KK   
+'((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                     t          | dg          ?t          |dgfdt          j        t          | dg                    D                        t          | dg          At          |d	gt	          t          j        t          | dg                                         t          | d
g          -t          |d
gfdt          | d
g          D                        t          | dg          /t          |dgt          t          | dg                               t          | dg          "t          |ddgt          | dg                     S )NrO   rP   rQ   r(   rR   rS   c                 0    g | ]}t          |          S r>   )rM   r@   s     r#   rC   z8_CreateCachedContentConfig_to_vertex.<locals>.<listcomp>  s3     	
 	
 	
 tY//	
 	
 	
r%   rU   rV   rW   c                 0    g | ]}t          |          S r>   )_Tool_to_vertexr@   s     r#   rC   z8_CreateCachedContentConfig_to_vertex.<locals>.<listcomp>%  rL   r%   rZ   r[   r\   encryption_spec
kmsKeyName)r   r   r]   r^   rM   r_   _ToolConfig_to_vertexr!   s     @r#   $_CreateCachedContentConfig_to_vertexri      sV    !)	+w+kE7!;!;<<<	+''3[=/(J(JKKK	+'((4kN;K)L)LMMM	+
|$$0		
 	
 	
 	
T+
|%D%DEE	
 	
 	
   
+,-..:	K[+?*@AABBI	
 	
   
+y!!-			
 	
 	
 	
[7)44	
 	
 	
   
+''3	d;@@)LL   
+'((4	L)[>*++   
r%   
api_clientc                     i }t          |dg          4t          |dgt          j        | t          |dg                               t          |dg          t	          t          |dg          |           |S Nmodelconfig)r   r   r]   t_caches_modelra   rj   r   r   r"   s       r#   '_CreateCachedContentParameters_to_mldevrq   <  s    
 !)	+y!!-			T+y%A%ABB   
+z"".'[8*%%y   
r%   c                     i }t          |dg          4t          |dgt          j        | t          |dg                               t          |dg          t	          t          |dg          |           |S rl   )r   r   r]   ro   ri   rp   s       r#   (_CreateCachedContentParameters_to_vertexrs   Q  s    
 !)	+y!!-			T+y%A%ABB   
+z"".([8*%%y   
r%   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               |S Nname_urlr   r   r]   t_cached_content_namerp   s       r#   '_DeleteCachedContentParameters_to_mldevrz   f  \    
 !)	+x  ,		
Dvh,G,GHH   
r%   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               |S ru   rx   rp   s       r#   (_DeleteCachedContentParameters_to_vertexr}   v  r{   r%   c                 n    i }t          | dg          !t          |dgt          | dg                     |S NsdkHttpResponsesdk_http_responserF   r!   s      r#   '_DeleteCachedContentResponse_from_mldevr     P     !)	+)*++7'(${=N<O*P*P   
r%   c                 n    i }t          | dg          !t          |dgt          | dg                     |S r   rF   r!   s      r#   (_DeleteCachedContentResponse_from_vertexr     r   r%   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          |S )Ncodelanguager0   r1   r   r!   s      r#   _ExecutableCode_to_vertexr     s     !)	+x  ,VHd;99:::	+
|$$0ZL${ZL"A"ABBB	+v*
	2  
 
r%   c                    i }t          | dg          t          d          t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S )Nr(   r)   file_urifileUrir*   r+   )r   r    r   r!   s      r#   _FileData_to_mldevr     s     !)	+'((4
	<  
 
+
|$$0YKkJ<!@!@AAA	+}%%1ZL${[M"B"BCCC	r%   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          |S )Nr0   argsrv   partial_argsztpartial_args parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.will_continuezuwill_continue parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.r   r!   s      r#   _FunctionCall_to_mldevr     s     !)	+v*TFDtf55666	+x  ,VHd;99:::	+x  ,VHd;99:::	+'((4
	<  
 
+())5
	<  
 
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_argumentszstream_function_call_arguments parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.r   r!   s      r#   _FunctionCallingConfig_to_mldevr     s     !)	+0122>	 [3455   
+x  ,VHd;99:::	+89::F
	M  
 
r%   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               |S ru   rx   rp   s       r#   $_GetCachedContentParameters_to_mldevr     r{   r%   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               |S ru   rx   rp   s       r#   %_GetCachedContentParameters_to_vertexr     r{   r%   c           
          i }t          | dg          /t          |dgt          t          | dg          |                     t          | dg          !t          |dgt          | dg                     |S )Nauth_config
authConfigenable_widgetenableWidget)r   r   r$   r!   s      r#   _GoogleMaps_to_mldevr     s     !)	+''3	T+??KK   
+())5^$d;8I&J&JKKK	r%   c                 R   i }t          | dg          !t          |dgt          | dg                     t          | dg          t          d          t          | dg          t          d          t          | dg          !t          |dgt          | dg                     |S )	Nsearch_typessearchTypesblocking_confidencez{blocking_confidence parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.exclude_domainszwexclude_domains parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.time_range_filtertimeRangeFilterr   r!   s      r#   _GoogleSearch_to_mldevr   /  s     !)	+'((4]OT+7G%H%HIII	+-.//;
	B  
 
+)*++7
	<  
 
++,--9%&[;N:O(P(P   
r%   c                     i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     |S N	page_size_querypageSize
page_token	pageTokenrF   r!   s      r#   "_ListCachedContentsConfig_to_mldevr   K       !)	+}%%1*-tK+/O/O   
+~&&2	;[<.))   
r%   c                     i }t          | dg          "t          |ddgt          | dg                     t          | dg          "t          |ddgt          | dg                     |S r   rF   r!   s      r#   #_ListCachedContentsConfig_to_vertexr   `  r   r%   c                 j    i }t          | dg          t          t          | dg          |           |S Nrn   )r   r   r!   s      r#   &_ListCachedContentsParameters_to_mldevr   u  s=     !)	+z"".&tK('D'DiPPP	r%   c                 j    i }t          | dg          t          t          | dg          |           |S r   )r   r   r!   s      r#   '_ListCachedContentsParameters_to_vertexr     sF     !)	+z"".'[8*%%y   
r%   c           	      J   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          +t          |dgd t          | dg          D                        |S )Nr   r   nextPageTokennext_page_tokencachedContentscached_contentsc                     g | ]}|S r>   r>   rA   rB   s     r#   rC   z:_ListCachedContentsResponse_from_mldev.<locals>.<listcomp>      @@@$@@@r%   rF   r!   s      r#   &_ListCachedContentsResponse_from_mldevr          !)	+)*++7'(${=N<O*P*P   
+())5&'kO;L)M)MNNN	+()**6	@@${-=,>??@@@   
r%   c           	      J   i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          +t          |dgd t          | dg          D                        |S )Nr   r   r   r   r   r   c                     g | ]}|S r>   r>   r   s     r#   rC   z;_ListCachedContentsResponse_from_vertex.<locals>.<listcomp>  r   r%   rF   r!   s      r#   '_ListCachedContentsResponse_from_vertexr     r   r%   c                     i }t          | dg          t          d          t          | dg          t          d          |S )Nrv   zlname parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.streamable_http_transportzstreamable_http_transport parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.)r   r    r!   s      r#   _McpServer_to_vertexr     sh     !)	+x  ,
	2  
 
+3455A
	M  
 
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          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                     t          | dg          !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media_resolutionmediaResolution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	tool_calltoolCalltool_responsetoolResponsepart_metadatapartMetadata)r   r   r   r   r,   r!   s      r#   r?   r?     s]    !)	+*+,,8%&[;M:N(O(O   
+/011=	[2344   
+)*++7%&[;L:M(N(NOOO	+}%%1	4k];;YGG   
+())5	tK/1BCCYOO   
++,--9	[./00   
+''3	tK-999EE   
+x  ,VHd;99:::	+	{##/YKkI;!?!?@@@	++,--9	[./00   
+()**6_%tK:J9K'L'LMMM	+}%%1ZL${[M"B"BCCC	+())5^$d;8I&J&JKKK	+())5^$d;8I&J&JKKK	r%   c           
      N   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          t          | dg          |                     t          | dg          !t          |dgt          | dg                     t          | d	g          !t          |d
gt          | d	g                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | d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          t          | dg          t	          d          |S )Nr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   zqtool_call parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r   zutool_response parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r   zupart_metadata parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.)r   r   r2   r   r    r!   s      r#   rK   rK     s-    !)	+*+,,8%&[;M:N(O(O   
+/011=	&6788)	
 	
   
+)*++7	!0122I	
 	
   
+}%%1ZL${[M"B"BCCC	+())5^$d;8I&J&JKKK	++,--9	[./00   
+''3\ND}o$F$FGGG	+x  ,VHd;99:::	+	{##/YKkI;!?!?@@@	++,--9	[./00   
+()**6_%tK:J9K'L'LMMM	+}%%1
	9  
 
+())5
	?  
 
+())5
	?  
 
r%   c           
      R   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                     |S )Nretrieval_configretrievalConfigfunction_calling_configfunctionCallingConfig$include_server_side_tool_invocations includeServerSideToolInvocations)r   r   r   r!   s      r#   r`   r`   l  s     !)	+*+,,8%&[;M:N(O(O   
+1233?	 !'89::I	
 	
   
+>?@@L	+,[ABCC   
r%   c                    i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     t          | dg          t          d          |S )Nr   r   r   r   r   zinclude_server_side_tool_invocations parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r   r!   s      r#   rh   rh     s     !)	+*+,,8%&[;M:N(O(O   
+1233?	 ![4566   
+>?@@L
	   
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          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          t          | dg          +t          |dgd t          | dg          D                        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d t          | dg          D                        |S )N	retrievalzqretrieval parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.computer_usecomputerUsefile_search
fileSearchgoogle_searchgoogleSearchgoogle_maps
googleMapscode_executioncodeExecutionenterprise_web_searchz}enterprise_web_search parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.function_declarationsfunctionDeclarationsc                     g | ]}|S r>   r>   r   s     r#   rC   z"_Tool_to_mldev.<locals>.<listcomp>      GGG$GGGr%   google_search_retrievalgoogleSearchRetrievalparallel_ai_searchzzparallel_ai_search parameter is only supported in Gemini Enterprise Agent Platform mode, not in Gemini Developer API mode.url_context
urlContextmcp_servers
mcpServersc                     g | ]}|S r>   r>   r   s     r#   rC   z"_Tool_to_mldev.<locals>.<listcomp>  s    ===$===r%   )r   r    r   r   r   r!   s      r#   rY   rY     s    !)	+}%%1
	<  
 
+'((4]OT+7G%H%HIII	+''3\ND}o$F$FGGG	+())5	tK/1BCCYOO   
+''3	T+??KK   
+()**6_%tK:J9K'L'LMMM	+/011=
	B  
 
+/011=	 GG${-D,EFFGGG   
+1233?	 ![4566   
+,-..:
	B  
 
+''3\ND}o$F$FGGG	+''3	==${]O<<===   
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          t          | dg          !t          dgt          | dg                     t          | dg          !t          d	gt          | dg                     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 t          | dg          D                        t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          !t          dgt          | dg                     t          | dg          -t          dgfdt          | dg          D                        S )Nr   r   r   r   zsfile_search parameter is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r   r   r   r   r   r   r   enterpriseWebSearchr   r   c                     g | ]}|S r>   r>   r   s     r#   rC   z#_Tool_to_vertex.<locals>.<listcomp>  r   r%   r   r  r  parallelAiSearchr  r  r  r  c                 0    g | ]}t          |          S r>   )r   r@   s     r#   rC   z#_Tool_to_vertex.<locals>.<listcomp>.  s3     	
 	
 	
 !y11	
 	
 	
r%   )r   r   r:   r    r!   s     @r#   re   re     s    !)	+}%%1[M4k]#C#CDDD	+'((4	tK.1ABBINN   
+''3
	9  
 
+())5^$d;8I&J&JKKK	+''3\ND}o$F$FGGG	+()**6_%tK:J9K'L'LMMM	+/011=	[2344   
+/011=	 GG${-D,EFFGGG   
+1233?	 ![4566   
+,-..:	[/011   
+''3\ND}o$F$FGGG	+''3		
 	
 	
 	
[=/::	
 	
 	
   
r%   c                     i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S NrO   rP   rQ   rF   r!   s      r#   #_UpdateCachedContentConfig_to_mldevr  7  s     !)	+w+kE7!;!;<<<	+''3[=/(J(JKKK	r%   c                     i }t          | dg          !t          |dgt          | dg                     t          | dg          !t          |dgt          | dg                     |S r  rF   r!   s      r#   $_UpdateCachedContentConfig_to_vertexr  F  r  r%   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          t	          t          |dg          |           |S Nrv   rw   rn   )r   r   r]   ry   r  rp   s       r#   '_UpdateCachedContentParameters_to_mldevr  U  s    
 !)	+x  ,		
Dvh,G,GHH   
+z"".'[8*%%y   
r%   c                     i }t          |dg          5t          |ddgt          j        | t          |dg                               t          |dg          t	          t          |dg          |           |S r  )r   r   r]   ry   r  rp   s       r#   (_UpdateCachedContentParameters_to_vertexr  j  s    
 !)	+x  ,		
Dvh,G,GHH   
+z"".([8*%%y   
r%   c                   n   e Zd Zdddedeej                 dej        fdZdddedeej	                 dej        fdZ
dddedeej                 dej        fd	Zdddedeej                 dej        fd
Zdddeej                 dej        fdZdddeej                 deej                 fdZdS )CachesNrn   rm   rn   r   c                   t          j        ||          }| j        j        rEt	          | j        |          }|                    d          }|rd                    |          }nGd}nDt          | j        |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
t           j                            |
t+          |dd          rDdt+          |j
        d	d          t+          |j
        d
d          t+          |j
        dd          dini           }| j                            |           |S )a  Creates a cached contents resource.

    Usage:

    .. code-block:: python

      contents = ... // Initialize the content to cache.
      response = client.caches.create(
          model= ... // The publisher model id
          contents=contents,
          config={
              'display_name': 'test cache',
              'system_instruction': 'What is the sum of the two pdfs?',
              'ttl': '86400s',
          },
      )
    rm   rn   rw   r   r   ?rn   Npostresponse_schemaresponse_json_schemainclude_all_fieldsr  r   r!  responsekwargs)r   _CreateCachedContentParameters_api_clientvertexairs   get
format_maprq   r   poprn   http_optionsr	   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsCachedContent_from_responsegetattr_verify_responseselfrm   rn   parameter_modelrequest_dictrequest_url_dictpathquery_paramsr,  r$  response_dictreturn_values               r#   createzCaches.create  s`   0 :  O    =

O l &))&11	  **+;<<<

O l &))&11	  **+;<<##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''lL H 'mJBBHM1J1JM&55 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 6  L& 	%%l333r%   rv   c                   t          j        ||          }| j        j        rEt	          | j        |          }|                    d          }|rd                    |          }nGd}nDt          | j        |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
t           j                            |
t+          |dd          rDdt+          |j
        d	d          t+          |j
        d
d          t+          |j
        dd          dini           }| j                            |           |S )zGets cached content configurations.

    .. code-block:: python

      client.caches.get(name= ... ) // The server-generated resource name.
    rv   rn   rw   {name}r   r  rn   Nr)  r  r   r!  r"  r#  )r   _GetCachedContentParametersr'  r(  r   r)  r*  r   r   r+  rn   r,  r	   r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  r8  rv   rn   r9  r:  r;  r<  r=  r,  r$  r>  r?  s               r#   r)  z
Caches.get  sY    7  O   :

O l &))&11	 ""#3449

O l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''t\<PPH&mJBBHM1J1JM&55 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 6  L& 	%%l333r%   c                   t          j        ||          }| j        j        rEt	          | j        |          }|                    d          }|rd                    |          }nGd}nDt          | j        |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
          }
| j        j        st)          |
          }
t           j                            |
t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |	j                  |_        | j                            |           |S )zDeletes cached content.

    Usage:

    .. code-block:: python

      client.caches.delete(name= ... ) // The server-generated resource name.
    rB  rw   rC  r   r  rn   Ndeleter  r   r!  r"  r#  headers)r   _DeleteCachedContentParametersr'  r(  r}   r)  r*  rz   r   r+  rn   r,  r	   r-  r.  r/  r0  r1  r2  r   r   DeleteCachedContentResponser4  r5  HttpResponserI  r   r6  rE  s               r#   rG  zCaches.delete.  s    :  O   =

O l &))&11	 ""#344<

O l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''$l H 'mJBBHM1J1JM  N>}MMm$ M=mLLm4CC ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! D  L$ &+%7 & & &L" 	%%l333r%   c                   t          j        ||          }| j        j        rEt	          | j        |          }|                    d          }|rd                    |          }nGd}nDt          | j        |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }	|	j        si nt#          j        |	j                  }
t           j                            |
t+          |dd          rDdt+          |j
        d	d          t+          |j
        d
d          t+          |j
        dd          dini           }| j                            |           |S )zUpdates cached content configurations.

    .. code-block:: python

      response = client.caches.update(
          name= ... // The server-generated resource name.
          config={
              'ttl': '7600s',
          },
      )
    rB  rw   rC  r   r  rn   Npatchr  r   r!  r"  r#  )r   _UpdateCachedContentParametersr'  r(  r  r)  r*  r  r   r+  rn   r,  r	   r-  r.  r/  r0  r1  r2  r3  r4  r5  r6  rE  s               r#   updatezCaches.update  s`   $ :  O   =

O l &))&11	 ""#344<

O l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''|\ H 'mJBBHM1J1JM&55 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 6  L& 	%%l333r%   c                   t          j        |          }| j        j        r?t	          |          }|                    d          }|rd                    |          }nAd}n>t          |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||          }|j        si nt#          j        |j                  }	| j        j        rt'          |	          }	| j        j        st)          |	          }	t           j                            |	t/          |dd           rDdt/          |j
        dd           t/          |j
        d	d           t/          |j
        d
d           dini           }
t          j        |j                  |
_        | j                            |
           |
S Nr  rw   r   r   r  rn   r)  r  r   r!  r"  r#  rH  )r   _ListCachedContentsParametersr'  r(  r   r)  r*  r   r   r+  rn   r,  r	   r-  r.  r/  r0  r1  r2  r   r   ListCachedContentsResponser4  r5  rL  rI  r   r6  r8  rn   r9  r:  r;  r<  r=  r,  r$  r>  r?  s              r#   _listzCaches._list  s    9  O    <_MMl%))&11	  **+;<<;OLLl%))&11	  **+;<<##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL''t\<PPH&mJBBHM1J1JM  M=mLLm$ L<]KKm3BB ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! C  L$ &+%7 & & &L" 	%%l333r%   c                \    | j         }t          d||                      |          |          S )a  Lists cached contents.

    Args:
      config (ListCachedContentsConfig): Optional configuration for the list
        request.

    Returns:
      A Pager object that contains one page of cached contents. When iterating
      over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python
      for cached_content in client.caches.list():
        print(cached_content.name)
    r   r  )rV  r   r8  rn   list_requests      r#   listzCaches.list*  s7    * :L

&
!!	  r%   )__name__
__module____qualname__strr   r   CreateCachedContentConfigOrDictr3  r@  GetCachedContentConfigOrDictr)  DeleteCachedContentConfigOrDictrK  rG  UpdateCachedContentConfigOrDictrP  ListCachedContentsConfigOrDictrT  rV  r   rZ  r>   r%   r#   r  r    s        AE	[ [ [ [ u<=	[
 [ [ [ [B >B	N N N N u9:	N
 N N N Nh AE	Z Z Z Z u<=	Z
 (Z Z Z Z@ AE	U U U U u<=	U
 U U U Up IMG G G DEG'G G G GT IM   DEU !     r%   r  c                   n   e Zd Zdddedeej                 dej        fdZdddedeej	                 dej        fdZ
dddedeej                 dej        fd	Zdddedeej                 dej        fd
Zdddeej                 dej        fdZdddeej                 deej                 fdZdS )AsyncCachesNr  rm   rn   r   c                  K   t          j        ||          }| j        j        rEt	          | j        |          }|                    d          }|rd                    |          }nGd}nDt          | j        |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d{V }	|	j        si nt#          j        |	j                  }
t           j                            |
t+          |dd          rDdt+          |j
        d	d          t+          |j
        d
d          t+          |j
        dd          dini           }| j                            |           |S )a  Creates a cached contents resource.

    Usage:

    .. code-block:: python

      contents = ... // Initialize the content to cache.
      response = await client.aio.caches.create(
          model= ... // The publisher model id
          contents=contents,
          config={
              'display_name': 'test cache',
              'system_instruction': 'What is the sum of the two pdfs?',
              'ttl': '86400s',
          },
      )
    r  rw   r   r   r  rn   Nr  r  r   r!  r"  r#  )r   r&  r'  r(  rs   r)  r*  rq   r   r+  rn   r,  r	   r-  r.  async_requestr0  r1  r2  r3  r4  r5  r6  r7  s               r#   r@  zAsyncCaches.createJ  s     0 :  O    =

O l &))&11	  **+;<<<

O l &))&11	  **+;<<##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33lL       H 'mJBBHM1J1JM&55 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 6  L& 	%%l333r%   rv   c                  K   t          j        ||          }| j        j        rEt	          | j        |          }|                    d          }|rd                    |          }nGd}nDt          | j        |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d{V }	|	j        si nt#          j        |	j                  }
t           j                            |
t+          |dd          rDdt+          |j
        d	d          t+          |j
        d
d          t+          |j
        dd          dini           }| j                            |           |S )zGets cached content configurations.

    .. code-block:: python

      await client.aio.caches.get(name= ... ) // The server-generated resource
      name.
    rB  rw   rC  r   r  rn   Nr)  r  r   r!  r"  r#  )r   rD  r'  r(  r   r)  r*  r   r   r+  rn   r,  r	   r-  r.  rg  r0  r1  r2  r3  r4  r5  r6  rE  s               r#   r)  zAsyncCaches.get  s      7  O   :

O l &))&11	 ""#3449

O l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33t\<       H 'mJBBHM1J1JM&55 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 6  L& 	%%l333r%   c                  K   t          j        ||          }| j        j        rEt	          | j        |          }|                    d          }|rd                    |          }nGd}nDt          | j        |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d{V }	|	j        si nt#          j        |	j                  }
| j        j        rt'          |
          }
| j        j        st)          |
          }
t           j                            |
t/          |dd          rDdt/          |j
        d	d          t/          |j
        d
d          t/          |j
        dd          dini           }t          j        |	j                  |_        | j                            |           |S )zDeletes cached content.

    Usage:

    .. code-block:: python

      await client.aio.caches.delete(name= ... ) // The server-generated
      resource name.
    rB  rw   rC  r   r  rn   NrG  r  r   r!  r"  r#  rH  )r   rJ  r'  r(  r}   r)  r*  rz   r   r+  rn   r,  r	   r-  r.  rg  r0  r1  r2  r   r   rK  r4  r5  rL  rI  r   r6  rE  s               r#   rG  zAsyncCaches.delete  s       :  O   =

O l &))&11	 ""#344<

O l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33$l       H 'mJBBHM1J1JM  N>}MMm$ M=mLLm4CC ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! D  L$ &+%7 & & &L" 	%%l333r%   c                  K   t          j        ||          }| j        j        rEt	          | j        |          }|                    d          }|rd                    |          }nGd}nDt          | j        |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd           d}|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d{V }	|	j        si nt#          j        |	j                  }
t           j                            |
t+          |dd          rDdt+          |j
        d	d          t+          |j
        d
d          t+          |j
        dd          dini           }| j                            |           |S )zUpdates cached content configurations.

    .. code-block:: python

      response = await client.aio.caches.update(
          name= ... // The server-generated resource name.
          config={
              'ttl': '7600s',
          },
      )
    rB  rw   rC  r   r  rn   NrN  r  r   r!  r"  r#  )r   rO  r'  r(  r  r)  r*  r  r   r+  rn   r,  r	   r-  r.  rg  r0  r1  r2  r3  r4  r5  r6  rE  s               r#   rP  zAsyncCaches.updateW  s     $ :  O   =

O l &))&11	 ""#344<

O l &))&11	 ""#344##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33|\       H 'mJBBHM1J1JM&55 ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! 6  L& 	%%l333r%   c                  K   t          j        |          }| j        j        r?t	          |          }|                    d          }|rd                    |          }nAd}n>t          |          }|                    d          }|rd                    |          }nd}|                    d          }|r| dt          |           }|	                    dd            d }|j
        |j
        j        |j
        j        }t          j        |          }t          j        |          }| j                            d|||           d {V }|j        si nt#          j        |j                  }	| j        j        rt'          |	          }	| j        j        st)          |	          }	t           j                            |	t/          |dd           rDdt/          |j
        dd           t/          |j
        d	d           t/          |j
        d
d           dini           }
t          j        |j                  |
_        | j                            |
           |
S rR  )r   rS  r'  r(  r   r)  r*  r   r   r+  rn   r,  r	   r-  r.  rg  r0  r1  r2  r   r   rT  r4  r5  rL  rI  r   r6  rU  s              r#   rV  zAsyncCaches._list  s      9  O    <_MMl%))&11	  **+;<<;OLLl%))&11	  **+;<<##H--L 100y..00dXt$$$04L*"/;$+8l*<88L6|DDL%33t\<       H 'mJBBHM1J1JM  M=mLLm$ L<]KKm3BB ?Hd33#*#*,=t$ $ )0#*,BD) ) '.#*,@$' '
 

 
 ! C  L$ &+%7 & & &L" 	%%l333r%   c                l   K   | j         }t          d||                      |           d{V |          S )a  Lists cached contents asynchronously.

    Args:
      config (ListCachedContentsConfig): Optional configuration for the list
        request.

    Returns:
      A Pager object that contains one page of cached contents. When iterating
      over
      the pager, it automatically fetches the next page if there are more.

    Usage:

    .. code-block:: python
      async for cached_content in await client.aio.caches.list():
        print(cached_content.name)
    r   r  N)rV  r   rX  s      r#   rZ  zAsyncCaches.list  sM      * :Ljjj''''''''	  r%   )r[  r\  r]  r^  r   r   r_  r3  r@  r`  r)  ra  rK  rG  rb  rP  rc  rT  rV  r   rZ  r>   r%   r#   re  re  H  s        AE	[ [ [ [ u<=	[
 [ [ [ [B >B	Q Q Q Q u9:	Q
 Q Q Q Qn AE	[ [ [ [ u<=	[
 ([ [ [ [B AE	U U U U u<=	U
 U U U Up IMI I I DEI'I I I IX IM   DE%%&     r%   re  )N)Fr1  loggingtypingr   r   r   urllib.parser    r   r	   r
   r]   r   r'  r   r   r   r   r   pagersr   r   	getLoggerloggerdictr^  objectr$   r,   r2   r:   rG   rM   ra   ri   rq   rs   rz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   rK   r`   rh   rY   re   r  r  r  r  
BaseModuler  re  r>   r%   r#   <module>rw     sZ  $   ' ' ' ' ' ' ' ' ' ' " " " " " "                               & & & & & & . . . . . . . . . . . . % % % % % % % %		0	1	1
 /3, ,tCH~v-.,DcN+, 
#s(^, , , ,b /3 tCH~v-.DcN+ 
#s(^   , /3 tCH~v-.DcN+ 
#s(^   , /3 tCH~v-.DcN+ 
#s(^   B /3 tCH~v-.DcN+ 
#s(^   . /3 tCH~v-.DcN+ 
#s(^   . /39 9tCH~v-.9DcN+9 
#s(^9 9 9 9| /3: :tCH~v-.:DcN+: 
#s(^: : : :@ /3 tCH~v-. DcN+ 
#s(^	   0 /3 tCH~v-. DcN+ 
#s(^	   0 /3 tCH~v-. DcN+ 
#s(^	   & /3 tCH~v-. DcN+ 
#s(^	   $ /3
 
tCH~v-.
DcN+
 
#s(^
 
 
 
 /3
 
tCH~v-.
DcN+
 
#s(^
 
 
 
 /3 tCH~v-.DcN+ 
#s(^   , /3 tCH~v-.DcN+ 
#s(^   , /3 tCH~v-.DcN+ 
#s(^   > /3 tCH~v-.DcN+ 
#s(^   6 /3 tCH~v-. DcN+ 
#s(^	   & /3 tCH~v-. DcN+ 
#s(^	   $ /3 tCH~v-.DcN+ 
#s(^   ( /3 tCH~v-.DcN+ 
#s(^   < /3 tCH~v-.DcN+ 
#s(^   . /3 tCH~v-.DcN+ 
#s(^   . /3 tCH~v-.DcN+ 
#s(^    /3
 
tCH~v-.
DcN+
 
#s(^
 
 
 
 /3 tCH~v-.DcN+ 
#s(^   2 /3 tCH~v-.DcN+ 
#s(^   2 /3 tCH~v-.DcN+ 
#s(^   , /3I ItCH~v-.IDcN+I 
#s(^I I I I\ /3N NtCH~v-.NDcN+N 
#s(^N N N Nf /3 tCH~v-.DcN+ 
#s(^   > /3 tCH~v-.DcN+ 
#s(^   : /3F FtCH~v-.FDcN+F 
#s(^F F F FV /3G GtCH~v-.GDcN+G 
#s(^G G G GX /3 tCH~v-.DcN+ 
#s(^   " /3 tCH~v-.DcN+ 
#s(^   $ /3 tCH~v-. DcN+ 
#s(^	   0 /3 tCH~v-. DcN+ 
#s(^	   *F F F F F[# F F FRL L L L L+( L L L L Lr%   