
    Gj                        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	j                        ZD G d; d<e	j                        ZEy)>    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                 v   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      Y/var/www/python/quitsure-support/venv/lib/python3.12/site-packages/google/genai/caches.py_AuthConfig_to_mldevr$   #   s    !)	+	{#/XJ[9+ >?	+()*6
	< 
 
+}%1
	< 
 
+789E
	M 
 
+01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:	+'(4
	< 
 
+}%1ZL${[M"BC	r%   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      |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                    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H	+789E	&'[:;< 
+;<=I	)*[>?@ 
+234@
	M 
 
r%   c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w Npartsrole)r   r   _Part_to_mldevr   r   r"   items       r#   _Content_to_mldevrB      s     !)	+y!-		 [7)4	
 4+	
 
+x ,VHd;9:		
   A)c                     i }t        | dg      1t        |dgt        | dg      D cg c]  }t        ||       c}       t        | dg      t        |dgt        | dg             |S c c}w r<   )r   r   _Part_to_vertexr@   s       r#   _Content_to_vertexrF      s     !)	+y!-		 [7)4	
 D),	
 
+x ,VHd;9:		
rC   c                 6   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      Dt        |dgt        j                  t        | dg            D cg c]  }t	        ||       c}       t        | dg      6t        |dgt	        t        j
                  t        | dg            |             t        | d	g      1t        |d	gt        | d	g      D cg c]  }t        ||       c}       t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        d      |S c c}w c c}w )Nttlexpire_time
expireTimer(   displayNamecontentssystem_instructionsystemInstructiontools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_contentsrB   	t_content_Tool_to_mldev_ToolConfig_to_mldevr    r@   s       r#   #_CreateCachedContentConfig_to_mldevrX      s    !)	+w+kE7!;<	+'3[=/(JK	+'(4kN;K)LM	+
|$0	 T+
|%DE	
 dI.	
 
+,-.:	KK[+?*@ABI	
 
+y!-		 [7)4	
 4+	
 
+'3	T+?K 
+'(4
	< 
 
M	
&	
s   ,F-Fc                 T   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      Dt        |dgt        j                  t        | dg            D cg c]  }t	        ||       c}       t        | dg      6t        |dgt	        t        j
                  t        | dg            |             t        | d	g      1t        |d	gt        | d	g      D cg c]  }t        ||       c}       t        | d
g      #t        |dgt        t        | d
g      |             t        | dg      t        |ddgt        | dg             |S c c}w c c}w )NrH   rI   rJ   r(   rK   rL   rM   rN   rO   rP   rQ   rR   encryption_spec
kmsKeyName)r   r   rS   rT   rF   rU   _Tool_to_vertex_ToolConfig_to_vertexr@   s       r#   $_CreateCachedContentConfig_to_vertexr^      s    !)	+w+kE7!;<	+'3[=/(JK	+'(4kN;K)LM	+
|$0	 T+
|%DE	
 tY/	
 
+,-.:	KK[+?*@ABI	
 
+y!-		 [7)4	
 D),	
 
+'3	d;@)L 
+'(4	L)[>*+ 
O	
&	
s   ,F -F%
api_clientc                     i }t        |dg      -t        |dgt        j                  | t        |dg                   t        |dg      t	        t        |dg      |       |S Nmodelconfig)r   r   rS   t_caches_modelrX   r_   r   r   r"   s       r#   '_CreateCachedContentParameters_to_mldevrf   <  sp    
 !)	+y!-			T+y%AB 
+z".'[8*%y 
r%   c                     i }t        |dg      -t        |dgt        j                  | t        |dg                   t        |dg      t	        t        |dg      |       |S ra   )r   r   rS   rd   r^   re   s       r#   (_CreateCachedContentParameters_to_vertexrh   Q  sp    
 !)	+y!-			T+y%AB 
+z".([8*%y 
r%   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S Nname_urlr   r   rS   t_cached_content_namere   s       r#   '_DeleteCachedContentParameters_to_mldevro   f  L    
 !)	+x ,		
Dvh,GH 
r%   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S rj   rm   re   s       r#   (_DeleteCachedContentParameters_to_vertexrr   v  rp   r%   c                 V    i }t        | dg      t        |dgt        | dg             |S NsdkHttpResponsesdk_http_responser   r   r!   s      r#   '_DeleteCachedContentResponse_from_mldevrx     @     !)	+)*+7'(${=N<O*P 
r%   c                 V    i }t        | dg      t        |dgt        | dg             |S rt   rw   r!   s      r#   (_DeleteCachedContentResponse_from_vertexr{     ry   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:	+
|$0ZL${ZL"A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	+}%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 )Nr0   argsrk   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6	+x ,VHd;9:	+x ,VHd;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>	 [345 
+x ,VHd;9:	+89:F
	M 
 
r%   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S rj   rm   re   s       r#   $_GetCachedContentParameters_to_mldevr     rp   r%   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   |S rj   rm   re   s       r#   %_GetCachedContentParameters_to_vertexr     rp   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     sl     !)	+'3	T+?K 
+()5^$d;8I&JK	r%   c                    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I	+-./;
	B 
 
+)*+7
	< 
 
++,-9%&[;N:O(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	pageTokenrw   r!   s      r#   "_ListCachedContentsConfig_to_mldevr   K  m     !)	+}%1*-tK+/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   rw   r!   s      r#   #_ListCachedContentsConfig_to_vertexr   `  r   r%   c                 R    i }t        | dg      t        t        | dg      |       |S Nrc   )r   r   r!   s      r#   &_ListCachedContentsParameters_to_mldevr   u  s1     !)	+z".&tK('DiP	r%   c                 R    i }t        | dg      t        t        | dg      |       |S r   )r   r   r!   s      r#   '_ListCachedContentsParameters_to_vertexr     s6     !)	+z".'[8*%y 
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      D cg c]  }| c}       |S c c}w Nru   rv   nextPageTokennext_page_tokencachedContentscached_contentsrw   r@   s       r#   &_ListCachedContentsResponse_from_mldevr          !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+()*6	{-=,>?@$@ 
 	A   3	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      D cg c]  }| c}       |S c c}w r   rw   r@   s       r#   '_ListCachedContentsResponse_from_vertexr     r   r   c                 j    i }t        | dg      t        d      t        | dg      t        d      |S )Nrk   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     sX     !)	+x ,
	2 
 
+345A
	M 
 
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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 
+/01=	[234 
+)*+7%&[;L:M(NO	+}%1	4k];YG 
+()5	tK/1BCYO 
++,-9	[./0 
+'3	tK-99E 
+x ,VHd;9:	+	{#/YKkI;!?@	++,-9	[./0 
+()*6_%tK:J9K'LM	+}%1ZL${[M"BC	+()5^$d;8I&JK	+()5^$d;8I&JK	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        t        | dg      |             t        | dg      t        |dgt        | dg             t        | d	g      t        |d
gt        | d	g             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | d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#   rE   rE     ss    !)	+*+,8%&[;M:N(O 
+/01=	&678)	
 
+)*+7	!012I	
 
+}%1ZL${[M"BC	+()5^$d;8I&JK	++,-9	[./0 
+'3\ND}o$FG	+x ,VHd;9:	+	{#/YKkI;!?@	++,-9	[./0 
+()*6_%tK:J9K'LM	+}%1
	9 
 
+()5
	? 
 
+()5
	? 
 
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             |S )Nretrieval_configretrievalConfigfunction_calling_configfunctionCallingConfig$include_server_side_tool_invocations includeServerSideToolInvocations)r   r   r   r!   s      r#   rW   rW   l  s     !)	+*+,8%&[;M:N(O 
+123?	 !'89:I	
 
+>?@L	+,[ABC 
r%   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             t        | dg      t        d      |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#   r]   r]     s     !)	+*+,8%&[;M:N(O 
+123?	 ![45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t        | dg      D cg c]  }| c}       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      D cg c]  }| c}       |S c c}w c c}w )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functionDeclarations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
mcpServers)r   r    r   r   r   r@   s       r#   rV   rV     s:    !)	+}%1
	< 
 
+'(4]OT+7G%HI	+'3\ND}o$FG	+()5	tK/1BCYO 
+'3	T+?K 
+()*6_%tK:J9K'LM	+/01=
	B 
 
+/01=	 {-D,EFG$G 
+123?	 ![456 
+,-.:
	B 
 
+'3\ND}o$FG	+'3	{]O<=$= 
5 	H. 	>s   )	G	G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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      1t        |dgt        | dg      D cg c]  }t	        ||       c}       |S c c}w c c}w )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   r   r   r   parallelAiSearchr   r   r   r   )r   r   r:   r    r   r@   s       r#   r\   r\     sU    !)	+}%1[M4k]#CD	+'(4	tK.1ABIN 
+'3
	9 
 
+()5^$d;8I&JK	+'3\ND}o$FG	+()*6_%tK:J9K'LM	+/01=	[234 
+/01=	 {-D,EFG$G 
+123?	 ![456 
+,-.:	[/01 
+'3\ND}o$FG	+'3	 [=/:	
 !y1	
 
= 	H0	
s   -	G/G4c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S NrH   rI   rJ   rw   r!   s      r#   #_UpdateCachedContentConfig_to_mldevr   7  [     !)	+w+kE7!;<	+'3[=/(JK	r%   c                     i }t        | dg      t        |dgt        | dg             t        | dg      t        |dgt        | dg             |S r   rw   r!   s      r#   $_UpdateCachedContentConfig_to_vertexr  F  r   r%   c                     i }t        |dg      .t        |ddgt        j                  | t        |dg                   t        |dg      t	        t        |dg      |       |S Nrk   rl   rc   )r   r   rS   rn   r   re   s       r#   '_UpdateCachedContentParameters_to_mldevr  U  ss    
 !)	+x ,		
Dvh,GH 
+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 r  )r   r   rS   rn   r  re   s       r#   (_UpdateCachedContentParameters_to_vertexr  j  ss    
 !)	+x ,		
Dvh,GH 
+z".([8*%y 
r%   c                      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y)CachesNrc   rb   rc   r   c                >   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
t         j&                  j)                  |
t+        |dd      rGdt+        |j                  d	d      t+        |j                  d
d      t+        |j                  dd      dini       }| j                  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',
          },
      )
    rb   rc   rl   r   r   ?rc   Npostresponse_schemaresponse_json_schemainclude_all_fieldsr  r  r  responsekwargs)r   _CreateCachedContentParameters_api_clientvertexairh   get
format_maprf   r   poprc   http_optionsr	   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsCachedContent_from_responsegetattr_verify_responseselfrb   rc   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	**+;<<


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''lLH 'mmBHMM1JM&&55 ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! 6 L& 	%%l3r%   rk   c                >   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
t         j&                  j)                  |
t+        |dd      rGdt+        |j                  d	d      t+        |j                  d
d      t+        |j                  dd      dini       }| j                  j-                  |       |S )zGets cached content configurations.

    .. code-block:: python

      client.caches.get(name= ... ) // The server-generated resource name.
    rk   rc   rl   {name}r   r  rc   Nr  r  r  r  r  r  )r   _GetCachedContentParametersr  r  r   r  r  r   r   r  rc   r  r	   r  r  r  r  r   r!  r"  r#  r$  r%  r'  rk   rc   r(  r)  r*  r+  r,  r  r  r-  r.  s               r#   r  z
Caches.get  s    77O   :


Ol &))&1	""#349


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM&&55 ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! 6 L& 	%%l3r%   c                   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
| j                  j                  st)        |
      }
t         j*                  j-                  |
t/        |dd      rGdt/        |j                  d	d      t/        |j                  d
d      t/        |j                  dd      dini       }t        j0                  |	j2                        |_        | j                  j7                  |       |S )zDeletes cached content.

    Usage:

    .. code-block:: python

      client.caches.delete(name= ... ) // The server-generated resource name.
    r1  rl   r2  r   r  rc   Ndeleter  r  r  r  r  headers)r   _DeleteCachedContentParametersr  r  rr   r  r  ro   r   r  rc   r  r	   r  r  r  r  r   r!  r{   rx   DeleteCachedContentResponser#  r$  HttpResponser8  rv   r%  r4  s               r#   r6  zCaches.delete.  sh    ::O   =


Ol &))&1	""#34<


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''$lH 'mmBHMM1JM  >}Mm$$=mLm44CC ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! D L$ &+%7%7  &L" 	%%l3r%   c                >   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||      }	|	j                   si nt#        j$                  |	j                         }
t         j&                  j)                  |
t+        |dd      rGdt+        |j                  d	d      t+        |j                  d
d      t+        |j                  dd      dini       }| j                  j-                  |       |S )zUpdates cached content configurations.

    .. code-block:: python

      response = client.caches.update(
          name= ... // The server-generated resource name.
          config={
              'ttl': '7600s',
          },
      )
    r1  rl   r2  r   r  rc   Npatchr  r  r  r  r  )r   _UpdateCachedContentParametersr  r  r  r  r  r  r   r  rc   r  r	   r  r  r  r  r   r!  r"  r#  r$  r%  r4  s               r#   updatezCaches.update  s   $ ::O   =


Ol &))&1	""#34<


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''|\H 'mmBHMM1JM&&55 ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! 6 L& 	%%l3r%   c                   t        j                  |      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|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'        |	      }	| j                  j                  st)        |	      }	t         j*                  j-                  |	t/        |dd       rGdt/        |j                  dd       t/        |j                  d	d       t/        |j                  d
d       dini       }
t        j0                  |j2                        |
_        | j                  j7                  |
       |
S Nr	  rl   r   r   r  rc   r  r  r  r  r  r  r7  )r   _ListCachedContentsParametersr  r  r   r  r  r   r   r  rc   r  r	   r  r  r  r  r   r!  r   r   ListCachedContentsResponser#  r$  r;  r8  rv   r%  r'  rc   r(  r)  r*  r+  r,  r  r  r-  r.  s              r#   _listzCaches._list  sF    99O   <_Ml%))&1	**+;<;OLl%))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM  =mLm$$<]Km33BB ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! C L$ &+%7%7  &L" 	%%l3r%   c                V    | j                   }t        d|| j                  |      |      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	  )rE  r   r'  rc   list_requests      r#   listzCaches.list*  s1    * ::L

&
!	 r%   )__name__
__module____qualname__strr   r   CreateCachedContentConfigOrDictr"  r/  GetCachedContentConfigOrDictr  DeleteCachedContentConfigOrDictr:  r6  UpdateCachedContentConfigOrDictr?  ListCachedContentsConfigOrDictrC  rE  r   rI   r%   r#   r  r    sd    AE	[ [ u<<=	[
 [B >B	N N u99:	N
 Nh AE	Z Z u<<=	Z
 ((Z@ AE	U U u<<=	U
 Up IMG D DEG''GT IM D DEU  !r%   r  c                      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y)AsyncCachesNr	  rb   rc   r   c                Z  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d{   }	|	j                   si nt#        j$                  |	j                         }
t         j&                  j)                  |
t+        |dd      rGdt+        |j                  d	d      t+        |j                  d
d      t+        |j                  dd      dini       }| j                  j-                  |       |S 7 íw)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  rl   r   r   r  rc   Nr  r  r  r  r  r  )r   r  r  r  rh   r  r  rf   r   r  rc   r  r	   r  r  async_requestr  r   r!  r"  r#  r$  r%  r&  s               r#   r/  zAsyncCaches.createJ  s%    0 ::O   =


Ol &))&1	**+;<<


Ol &))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33lL H 'mmBHMM1JM&&55 ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! 6 L& 	%%l35   E#H+%H)&CH+rk   c                Z  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d{   }	|	j                   si nt#        j$                  |	j                         }
t         j&                  j)                  |
t+        |dd      rGdt+        |j                  d	d      t+        |j                  d
d      t+        |j                  dd      dini       }| j                  j-                  |       |S 7 íw)zGets cached content configurations.

    .. code-block:: python

      await client.aio.caches.get(name= ... ) // The server-generated resource
      name.
    r1  rl   r2  r   r  rc   Nr  r  r  r  r  r  )r   r3  r  r  r   r  r  r   r   r  rc   r  r	   r  r  rW  r  r   r!  r"  r#  r$  r%  r4  s               r#   r  zAsyncCaches.get  s%     77O   :


Ol &))&1	""#349


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM&&55 ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! 6 L& 	%%l35rX  c                *  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d{   }	|	j                   si nt#        j$                  |	j                         }
| j                  j                  rt'        |
      }
| j                  j                  st)        |
      }
t         j*                  j-                  |
t/        |dd      rGdt/        |j                  d	d      t/        |j                  d
d      t/        |j                  dd      dini       }t        j0                  |	j2                        |_        | j                  j7                  |       |S 7 +w)zDeletes cached content.

    Usage:

    .. code-block:: python

      await client.aio.caches.delete(name= ... ) // The server-generated
      resource name.
    r1  rl   r2  r   r  rc   Nr6  r  r  r  r  r  r7  )r   r9  r  r  rr   r  r  ro   r   r  rc   r  r	   r  r  rW  r  r   r!  r{   rx   r:  r#  r$  r;  r8  rv   r%  r4  s               r#   r6  zAsyncCaches.delete  sw      ::O   =


Ol &))&1	""#34<


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33$l H 'mmBHMM1JM  >}Mm$$=mLm44CC ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! D L$ &+%7%7  &L" 	%%l3Es   E#J%J&D+Jc                Z  K   t        j                  ||      }| j                  j                  r>t	        | j                  |      }|j                  d      }|rdj                  |      }n@d}n=t        | j                  |      }|j                  d      }|rdj                  |      }nd}|j                  d      }|r| dt        |       }|j                  dd       d}|j                  ,|j                  j                  |j                  j                  }t        j                  |      }t        j                  |      }| j                  j                  d|||       d{   }	|	j                   si nt#        j$                  |	j                         }
t         j&                  j)                  |
t+        |dd      rGdt+        |j                  d	d      t+        |j                  d
d      t+        |j                  dd      dini       }| j                  j-                  |       |S 7 íw)zUpdates cached content configurations.

    .. code-block:: python

      response = await client.aio.caches.update(
          name= ... // The server-generated resource name.
          config={
              'ttl': '7600s',
          },
      )
    r1  rl   r2  r   r  rc   Nr=  r  r  r  r  r  )r   r>  r  r  r  r  r  r  r   r  rc   r  r	   r  r  rW  r  r   r!  r"  r#  r$  r%  r4  s               r#   r?  zAsyncCaches.updateW  s%    $ ::O   =


Ol &))&1	""#34<


Ol &))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33|\ H 'mmBHMM1JM&&55 ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! 6 L& 	%%l35rX  c                  K   t        j                  |      }| j                  j                  r3t	        |      }|j                  d      }|rdj                  |      }n5d}n2t        |      }|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'        |	      }	| j                  j                  st)        |	      }	t         j*                  j-                  |	t/        |dd       rGdt/        |j                  dd       t/        |j                  d	d       t/        |j                  d
d       dini       }
t        j0                  |j2                        |
_        | j                  j7                  |
       |
S 7 +wrA  )r   rB  r  r  r   r  r  r   r   r  rc   r  r	   r  r  rW  r  r   r!  r   r   rC  r#  r$  r;  r8  rv   r%  rD  s              r#   rE  zAsyncCaches._list  sZ     99O   <_Ml%))&1	**+;<;OLl%))&1	**+;<##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM  =mLm$$<]Km33BB ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! C L$ &+%7%7  &L" 	%%l3Es   EI<I9D+I<c                r   K   | j                   }t        d|| j                  |       d{   |      S 7 	w)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)rE  r   rG  s      r#   rI  zAsyncCaches.list  s=     * ::Ljjj''	  	(s   )75
7)rJ  rK  rL  rM  r   r   rN  r"  r/  rO  r  rP  r:  r6  rQ  r?  rR  rC  rE  r   rI  rS  r%   r#   rU  rU  H  sd    AE	[ [ u<<=	[
 [B >B	Q Q u99:	Q
 Qn AE	[ [ u<<=	[
 (([B AE	U U u<<=	U
 Up IMI D DEI''IX IM D DE%%%&r%   rU  )N)Fr   loggingtypingr   r   r   urllib.parser    r   r	   r
   rS   r   r  r   r   r   r   r   pagersr   r   	getLoggerloggerdictrM  objectr$   r,   r2   r:   rB   rF   rX   r^   rf   rh   ro   rr   rx   r{   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r?   rE   rW   r]   rV   r\   r   r  r  r  
BaseModuler  rU  rS  r%   r#   <module>rh     s?  $   ' ' "      & . . %			0	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tCH~v-.9DcN+9 
#s(^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tCH~v-.IDcN+I 
#s(^I\ /3NtCH~v-.NDcN+N 
#s(^Nf /3tCH~v-.DcN+ 
#s(^> /3tCH~v-.DcN+ 
#s(^: /3FtCH~v-.FDcN+F 
#s(^FV /3GtCH~v-.GDcN+G 
#s(^GX /3tCH~v-.DcN+ 
#s(^" /3tCH~v-.DcN+ 
#s(^$ /3tCH~v-. DcN+ 
#s(^	0 /3tCH~v-. DcN+ 
#s(^	*F[## FRL+(( Lr%   