o
    Thm                    @   s  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dZ	ddeeeef ef deeeef  deeef fddZ	ddeeeef ef deeeef  deeef fddZ	ddeeeef ef deeeef  deeef fddZ	ddeeeef ef deeeef  deeef fddZ	ddeeeef ef deeeef  deeef fddZ 	ddeeeef ef deeeef  deeef fddZ!	ddeeeef ef deeeef  deeef fddZ"	ddeeeef ef deeeef  deeef fdd Z#	ddeeeef ef deeeef  deeef fd!d"Z$	ddeeeef ef deeeef  deeef fd#d$Z%	ddeeeef ef deeeef  deeef fd%d&Z&	ddeeeef ef deeeef  deeef fd'd(Z'	ddeeeef ef deeeef  deeef fd)d*Z(	ddeeeef ef deeeef  deeef fd+d,Z)	ddeeeef ef deeeef  deeef fd-d.Z*	ddeeeef ef deeeef  deeef fd/d0Z+	ddeeeef ef deeeef  deeef fd1d2Z,	ddeeeef ef deeeef  deeef fd3d4Z-	ddeeeef ef deeeef  deeef fd5d6Z.	ddeeeef ef deeeef  deeef fd7d8Z/	ddeeeef ef deeeef  deeef fd9d:Z0	dd;edeeeef ef deeeef  deeef fd<d=Z1	dd;edeeeef ef deeeef  deeef fd>d?Z2	dd;edeeeef ef deeeef  deeef fd@dAZ3	ddeeeef ef deeeef  deeef fdBdCZ4	dd;edeeeef ef deeeef  deeef fdDdEZ5	ddeeeef ef deeeef  deeef fdFdGZ6	ddeeeef ef deeeef  deeef fdHdIZ7	ddeeeef ef deeeef  deeef fdJdKZ8	ddeeeef ef deeeef  deeef fdLdMZ9	ddeeeef ef deeeef  deeef fdNdOZ:	ddeeeef ef deeeef  deeef fdPdQZ;	ddeeeef ef deeeef  deeef fdRdSZ<	ddeeeef ef deeeef  deeef fdTdUZ=	ddeeeef ef deeeef  deeef fdVdWZ>	ddeeeef ef deeeef  deeef fdXdYZ?	ddeeeef ef deeeef  deeef fdZd[Z@	ddeeeef ef deeeef  deeef fd\d]ZA	ddeeeef ef deeeef  deeef fd^d_ZB	ddeeeef ef deeeef  deeef fd`daZC	ddeeeef ef deeeef  deeef fdbdcZD	ddeeeef ef deeeef  deeef fdddeZE	ddeeeef ef deeeef  deeef fdfdgZF	ddeeeef ef deeeef  deeef fdhdiZG	ddeeeef ef deeeef  deeef fdjdkZH	ddeeeef ef deeeef  deeef fdldmZI	ddeeeef ef deeeef  deeef fdndoZJ	ddeeeef ef deeeef  deeef fdpdqZK	ddeeeef ef deeeef  deeef fdrdsZL	dd;edeeeef ef deeeef  deeef fdtduZM	dd;edeeeef ef deeeef  deeef fdvdwZN	dd;edeeeef ef deeeef  deeef fdxdyZO	ddeeeef ef deeeef  deeef fdzd{ZP	dd;edeeeef ef deeeef  deeef fd|d}ZQ	ddeeeef ef deeeef  deeef fd~dZR	ddeeeef ef deeeef  deeef fddZSdeddfddZT	ddeeeef ef deeeef  deeef fddZU	ddeeeef ef deeeef  deeef fddZV	ddeeeef ef deeeef  deeef fddZW	ddeeeef ef deeeef  deeef fddZX	ddeeeef ef deeeef  deeef fddZY	ddeeeef ef deeeef  deeef fddZZG dd de	j[Z\G dd de	j[Z]d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                 C   z   i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg t | dgd ur;t|dgt | dg |S Nfps
end_offset	endOffsetstart_offsetstartOffsetgetvsetvr   r   	to_object r   V/home/air/segue/gemini/backup/venv/lib/python3.10/site-packages/google/genai/caches.py_VideoMetadata_to_mldev#      r!   c                 C   sl   i }t | dgd urtdt | dgd ur!t|dgt | dg t | dgd ur4t|dgt | dg |S )Ndisplay_name6display_name parameter is not supported in Gemini API.data	mime_typemimeTyper   
ValueErrorr   r   r   r   r    _Blob_to_mldev4      r*   c                 C   sl   i }t | dgd urtdt | dgd ur!t|dgt | dg t | dgd ur4t|dgt | dg |S )Nr#   r$   file_urifileUrir&   r'   r(   r   r   r   r    _FileData_to_mldevE   r+   r.   c                 C     i }t | dgd urt|dgtt | dg| t | dgd ur+t|dgt | dg t | dgd urAt|dgtt | dg| t | dgd urWt|dgtt | dg| t | dgd urjt|d	gt | dg t | d
gd ur}t|dgt | d
g t | dgd urt|dgt | dg t | dgd urt|dgt | dg t | dgd urt|dgt | dg t | dgd urt|dgt | dg |S Nvideo_metadatavideoMetadatathoughtinline_data
inlineData	file_datafileDatathought_signaturethoughtSignaturecode_execution_resultcodeExecutionResultexecutable_codeexecutableCodefunction_callfunctionCallfunction_responsefunctionResponsetext)r   r   r!   r*   r.   r   r   r   r    _Part_to_mldevV   `   


rC   c                    b   i  t | dgd urt dg fddt | dgD  t | dgd ur/t dgt | dg  S )Npartsc                       g | ]}t | qS r   )rC   .0itemr   r   r    
<listcomp>       z%_Content_to_mldev.<locals>.<listcomp>roler   r   r   r   rK   r    _Content_to_mldev      

	rP   c                 C   s  i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg t | dgd ur;t|dgt | dg t | dgd urNt|dgt | dg t | dgd urat|dgt | dg t | dgd urtt|dgt | dg t | dgd urt|d	gt | dg |S )
Nbehaviordescriptionname
parametersparameters_json_schemaparametersJsonSchemaresponseresponse_json_schemaresponseJsonSchemar   r   r   r   r    _FunctionDeclaration_to_mldev   s0   

r[   c                 C   T   i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg |S N
start_time	startTimeend_timeendTimer   r   r   r   r    _Interval_to_mldev      rb   c                 C   4   i }t | dgd urt|dgtt | dg| |S Ntime_range_filtertimeRangeFilter)r   r   rb   r   r   r   r    _GoogleSearch_to_mldev      rh   c                 C   T   i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg |S Nmodedynamic_thresholddynamicThresholdr   r   r   r   r     _DynamicRetrievalConfig_to_mldev      
ro   c                 C   rd   Ndynamic_retrieval_configdynamicRetrievalConfig)r   r   ro   r   r   r   r    _GoogleSearchRetrieval_to_mldev      rt   c                 C      i }|S Nr   r   r   r   r    _EnterpriseWebSearch_to_mldev     rx   c                 C       i }t | dgd urtd|S )Napi_key_stringz8api_key_string parameter is not supported in Gemini API.r   r)   r   r   r   r    _ApiKeyConfig_to_mldev     r}   c                 C   s   i }t | dgd urtdt | dgd ur!t|dgt | dg t | dgd ur4t|dgt | dg t | dgd urGt|dgt | dg t | d	gd urZt|d
gt | d	g t | dgd urmt|dgt | dg |S )Napi_key_configz8api_key_config parameter is not supported in Gemini API.	auth_typeauthTypegoogle_service_account_configgoogleServiceAccountConfighttp_basic_auth_confighttpBasicAuthConfigoauth_configoauthConfigoidc_config
oidcConfigr(   r   r   r   r    _AuthConfig_to_mldev$  s,   

r   c                 C   rz   )Nauth_configz5auth_config parameter is not supported in Gemini API.r|   r   r   r   r    _GoogleMaps_to_mldevF  r~   r   c                 C   rv   rw   r   r   r   r   r    _UrlContext_to_mldevQ  ry   r   c                    s.  i  t | dgd urt dg fddt | dgD  t | dgd ur(tdt | dgd ur>t dgtt | dg  t | d	gd urTt d
gtt | d	g  t | dgd ur`tdt | dgd urltdt | dgd urt dgtt | dg  t | dgd urt dgt | dg  S )Nfunction_declarationsfunctionDeclarationsc                    rG   r   )r[   rH   rK   r   r    rL   c  rM   z"_Tool_to_mldev.<locals>.<listcomp>	retrievalz3retrieval parameter is not supported in Gemini API.google_searchgoogleSearchgoogle_search_retrievalgoogleSearchRetrievalenterprise_web_searchz?enterprise_web_search parameter is not supported in Gemini API.google_mapsz5google_maps parameter is not supported in Gemini API.url_context
urlContextcode_executioncodeExecution)r   r   r)   rh   rt   r   rO   r   rK   r    _Tool_to_mldevZ  sP   

	r   c                 C   rj   Nrl   allowed_function_namesallowedFunctionNamesr   r   r   r   r    _FunctionCallingConfig_to_mldev  rp   r   c                 C   T   i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg |S Nlatitude	longituder   r   r   r   r    _LatLng_to_mldev  rc   r   c                 C   Z   i }t | dgd urt|dgtt | dg| t | dgd ur+t|dgt | dg |S Nlat_lnglatLnglanguage_codelanguageCode)r   r   r   r   r   r   r    _RetrievalConfig_to_mldev     r   c                 C   `   i }t | dgd urt|dgtt | dg| t | dgd ur.t|dgtt | dg| |S Nfunction_calling_configfunctionCallingConfigretrieval_configretrievalConfig)r   r   r   r   r   r   r   r    _ToolConfig_to_mldev  $   r   c              	      s^  i  t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg t | dgd ur;t|dgt | dg t | dgd urXt|dg fddtt | dgD  t | d	gd urqt|d
gttt | d	g  t | dgd urt|dg fddt | dgD  t | dgd urt|dgtt | dg  t | dgd urtd S )Nttlexpire_time
expireTimer#   displayNamecontentsc                    rG   r   )rP   rH   rK   r   r    rL     rM   z7_CreateCachedContentConfig_to_mldev.<locals>.<listcomp>system_instructionsystemInstructiontoolsc                    rG   r   )r   rH   rK   r   r    rL     rM   tool_config
toolConfigkms_key_namez6kms_key_name parameter is not supported in Gemini API.)r   r   t
t_contentsrP   	t_contentr   r)   rO   r   rK   r    #_CreateCachedContentConfig_to_mldev  sP   
	

	r   
api_clientc              	   C   b   i }t |dgd urt|dgt| t |dg t |dgd ur/t|dgtt |dg| |S Nmodelconfig)r   r   r   t_caches_modelr   r   r   r   r   r   r   r    '_CreateCachedContentParameters_to_mldev      r   c              	   C   ^   i }t |dgd urt|ddgt| t |dg t |dgd ur-t|dgt |dg |S NrT   _urlr   r   r   r   t_cached_content_namer   r   r   r    $_GetCachedContentParameters_to_mldev/     r   c              	   C   r   r   r   r   r   r   r    '_DeleteCachedContentParameters_to_mldevB  r   r   c                 C   T   i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg |S Nr   r   r   r   r   r   r   r    #_UpdateCachedContentConfig_to_mldevU     r   c              	   C   d   i }t |dgd urt|ddgt| t |dg t |dgd ur0t|dgtt |dg| |S r   )r   r   r   r   r   r   r   r   r    '_UpdateCachedContentParameters_to_mldevd      r   c                 C   X   i }t | dgd urt|ddgt | dg t | dgd ur*t|ddgt | dg |S N	page_size_querypageSize
page_token	pageTokenr   r   r   r   r    "_ListCachedContentsConfig_to_mldev}     
r   c                 C   4   i }t | dgd urt|dgtt | dg| |S Nr   )r   r   r   r   r   r   r    &_ListCachedContentsParameters_to_mldev  ru   r   c                 C   r   r   r   r   r   r   r    _VideoMetadata_to_vertex  r"   r   c                 C   sz   i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg t | dgd ur;t|dgt | dg |S )Nr#   r   r%   r&   r'   r   r   r   r   r    _Blob_to_vertex  r"   r   c                 C   sz   i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg t | dgd ur;t|dgt | dg |S )Nr#   r   r,   r-   r&   r'   r   r   r   r   r    _FileData_to_vertex  r"   r   c                 C   r/   r0   )r   r   r   r   r   r   r   r   r    _Part_to_vertex  rD   r   c                    rE   )NrF   c                    rG   r   )r   rH   rK   r   r    rL     rM   z&_Content_to_vertex.<locals>.<listcomp>rN   r   rO   r   rK   r    _Content_to_vertex  rQ   r   c                 C   s  i }t | dgd urtdt | dgd ur!t|dgt | dg t | dgd ur4t|dgt | dg t | dgd urGt|dgt | dg t | dgd urZt|dgt | dg t | dgd urmt|dgt | dg t | d	gd urt|d
gt | d	g |S )NrR   z1behavior parameter is not supported in Vertex AI.rS   rT   rU   rV   rW   rX   rY   rZ   r(   r   r   r   r    _FunctionDeclaration_to_vertex+  s0   

r   c                 C   r\   r]   r   r   r   r   r    _Interval_to_vertexP  rc   r   c                 C   rd   re   )r   r   r   r   r   r   r    _GoogleSearch_to_vertex^  ru   r   c                 C   rj   rk   r   r   r   r   r    !_DynamicRetrievalConfig_to_vertexo  rp   r   c                 C   rd   rq   )r   r   r   r   r   r   r     _GoogleSearchRetrieval_to_vertex  ru   r   c                 C   rv   rw   r   r   r   r   r    _EnterpriseWebSearch_to_vertex  ry   r   c                 C   s.   i }t | dgd urt|dgt | dg |S )Nr{   apiKeyStringr   r   r   r   r    _ApiKeyConfig_to_vertex  s   r   c                 C   s   i }t | dgd urt|dgtt | dg| t | dgd ur+t|dgt | dg t | dgd ur>t|dgt | dg t | dgd urQt|dgt | dg t | d	gd urdt|d
gt | d	g t | dgd urwt|dgt | dg |S )Nr   apiKeyConfigr   r   r   r   r   r   r   r   r   r   )r   r   r   r   r   r   r    _AuthConfig_to_vertex  s8   

r   c                 C   rd   )Nr   
authConfig)r   r   r   r   r   r   r    _GoogleMaps_to_vertex  ri   r   c                 C   rv   rw   r   r   r   r   r    _UrlContext_to_vertex  ry   r   c                    sd  i  t | dgd urt dg fddt | dgD  t | dgd ur/t dgt | dg t | dgd urEt dgtt | dg  t | dgd ur[t d	gtt | dg  t | d
gd urqt dgtt | d
g  t | dgd urt dgtt | dg  t | dgd urt dgtt | dg  t | dgd urt dgt | dg  S )Nr   r   c                    rG   r   )r   rH   rK   r   r    rL     rM   z#_Tool_to_vertex.<locals>.<listcomp>r   r   r   r   r   r   enterpriseWebSearchr   
googleMapsr   r   r   r   )r   r   r   r   r   r   r   rO   r   rK   r    _Tool_to_vertex  sd   

	r   c                 C   rj   r   r   r   r   r   r     _FunctionCallingConfig_to_vertex'  rp   r   c                 C   r   r   r   r   r   r   r    _LatLng_to_vertex9  rc   r   c                 C   r   r   )r   r   r   r   r   r   r    _RetrievalConfig_to_vertexG  r   r   c                 C   r   r   )r   r   r   r   r   r   r   r    _ToolConfig_to_vertexY  r   r   c              	      sn  i  t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg t | dgd ur;t|dgt | dg t | dgd urXt|dg fddtt | dgD  t | d	gd urqt|d
gttt | d	g  t | dgd urt|dg fddt | dgD  t | dgd urt|dgtt | dg  t | dgd urt|ddgt | dg  S )Nr   r   r   r#   r   r   c                    rG   r   )r   rH   rK   r   r    rL     rM   z8_CreateCachedContentConfig_to_vertex.<locals>.<listcomp>r   r   r   c                    rG   r   )r   rH   rK   r   r    rL     rM   r   r   r   encryption_spec
kmsKeyName)r   r   r   r   r   r   r   rO   r   rK   r    $_CreateCachedContentConfig_to_vertexs  sX   
	

	
r  c              	   C   r   r   )r   r   r   r   r  r   r   r   r    (_CreateCachedContentParameters_to_vertex  r   r  c              	   C   r   r   r   r   r   r   r    %_GetCachedContentParameters_to_vertex  r   r  c              	   C   r   r   r   r   r   r   r    (_DeleteCachedContentParameters_to_vertex  r   r  c                 C   r   r   r   r   r   r   r    $_UpdateCachedContentConfig_to_vertex  r   r  c              	   C   r   r   )r   r   r   r   r  r   r   r   r    (_UpdateCachedContentParameters_to_vertex  r   r  c                 C   r   r   r   r   r   r   r    #_ListCachedContentsConfig_to_vertex  r   r	  c                 C   r   r   )r   r   r	  r   r   r   r    '_ListCachedContentsParameters_to_vertex,  ru   r
  
enum_valuec                 C   s"   | t g dv rt|  dd S )N)UNSPECIFIEDBLOCKINGNON_BLOCKINGz* enum value is not supported in Vertex AI.)setr)   )r  r   r   r    !_Behavior_to_vertex_enum_validate=  s   r  c                 C     i }t | dgd urt|dgt | dg t | dgd ur(t|dgt | dg t | dgd ur;t|dgt | dg t | dgd urNt|dgt | dg t | dgd urat|dgt | dg t | d	gd urtt|d
gt | d	g t | dgd urt|dgt | dg |S NrT   r   r#   r   
createTimecreate_time
updateTimeupdate_timer   r   usageMetadatausage_metadatar   r   r   r   r    _CachedContent_from_mldevB      r  c                 C   rv   rw   r   r   r   r   r    '_DeleteCachedContentResponse_from_mldev_  ry   r  c                    b   i  t | dgd urt dgt | dg t | dgd ur/t dg fddt | dgD   S )NnextPageTokennext_page_tokencachedContentscached_contentsc                    rG   r   )r  rH   rK   r   r    rL   t  rM   z:_ListCachedContentsResponse_from_mldev.<locals>.<listcomp>r   rO   r   rK   r    &_ListCachedContentsResponse_from_mldevh     

	r!  c                 C   r  r  r   r   r   r   r    _CachedContent_from_vertex}  r  r#  c                 C   rv   rw   r   r   r   r   r    (_DeleteCachedContentResponse_from_vertex  ry   r$  c                    r  )Nr  r  r  r   c                    rG   r   )r#  rH   rK   r   r    rL     rM   z;_ListCachedContentsResponse_from_vertex.<locals>.<listcomp>r   rO   r   rK   r    '_ListCachedContentsResponse_from_vertex  r"  r%  c                   @      e Zd Zdddedeej dejfddZdddedeej	 dejfd	d
Z
dddedeej dejfddZdddedeej dejfddZdddeej dejfddZdddeej deej fddZdS )CachesNr   r   r   r   c                C   4  t j||d}| jjr!t| j|}|d}|rd|}nd}nt| j|}|d}|r4d|}nd}|d}|rF| dt| }|	dd d}|j
dur]|j
jdur]|j
j}t|}t|}| jd|||}	|	jsud	nt|	j}
| jjrt|
}
nt|
}
t jj|
| d
}| 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',
          },
      )
    r   r   r   r  r   ?r   Npost rX   kwargs)r
   _CreateCachedContentParameters_api_clientvertexair  get
format_mapr   r   popr   http_optionsr   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsr#  r  CachedContent_from_response
model_dump_verify_responseselfr   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsr6  rX   response_dictreturn_valuer   r   r    create  sR   






zCaches.createrT   c                C   r)  )zGets cached content configurations.

    .. code-block:: python

      client.caches.get(name= ... ) // The server-generated resource name.
    rT   r   r   {name}r   r+  r   Nr3  r-  r.  )r
   _GetCachedContentParametersr1  r2  r  r3  r4  r   r   r5  r   r6  r   r7  r8  r9  r:  r;  r<  r#  r  r=  r>  r?  r@  rB  rT   r   rC  rD  rE  rF  rG  r6  rX   rH  rI  r   r   r    r3    sN   






z
Caches.getc                C   r)  )zDeletes cached content.

    Usage:

    .. code-block:: python

      client.caches.delete(name= ... ) // The server-generated resource name.
    rK  r   rL  r   r+  r   Ndeleter-  r.  )r
   _DeleteCachedContentParametersr1  r2  r  r3  r4  r   r   r5  r   r6  r   r7  r8  r9  r:  r;  r<  r$  r  DeleteCachedContentResponser>  r?  r@  rN  r   r   r    rO  S  sR   






zCaches.deletec                C   r)  )zUpdates cached content configurations.

    .. code-block:: python

      response = client.caches.update(
          name= ... // The server-generated resource name.
          config={
              'ttl': '7600s',
          },
      )
    rK  r   rL  r   r+  r   Npatchr-  r.  )r
   _UpdateCachedContentParametersr1  r2  r  r3  r4  r   r   r5  r   r6  r   r7  r8  r9  r:  r;  r<  r#  r  r=  r>  r?  r@  rN  r   r   r    update  sR   






zCaches.updatec                C   s*  t j|d}| jjrt|}|d}|rd|}nd}nt|}|d}|r/d|}nd}|d}|rA| dt| }|	dd d}|j
durX|j
jdurX|j
j}t|}t|}| jd|||}|jspd	nt|j}	| jjrt|	}	nt|	}	t jj|	| d
}
| j|
 |
S )zLists cached content configurations.

    .. code-block:: python

      cached_contents = client.caches.list(config={'page_size': 2})
      for cached_content in cached_contents:
        print(cached_content)
    r(  r   r  r   r+  r   Nr3  r-  r.  )r
   _ListCachedContentsParametersr1  r2  r
  r3  r4  r   r   r5  r   r6  r   r7  r8  r9  r:  r;  r<  r%  r!  ListCachedContentsResponser>  r?  r@  rB  r   rC  rD  rE  rF  rG  r6  rX   rH  rI  r   r   r    _list  sD   






zCaches._listc                C   s   t d| j| j|d|S Nr   r(  )r   rX  rB  r   r   r   r    list*  s   
zCaches.list)__name__
__module____qualname__strr   r
   CreateCachedContentConfigOrDictr=  rJ  GetCachedContentConfigOrDictr3  DeleteCachedContentConfigOrDictrQ  rO  UpdateCachedContentConfigOrDictrT  ListCachedContentsConfigOrDictrV  rX  r   r[  r   r   r   r    r'    sZ    
W
J
N
N
Ar'  c                   @   r&  )AsyncCachesNr(  r   r   r   c                   <  t j||d}| jjr"t| j|}|d}|rd|}nd}nt| j|}|d}|r5d|}nd}|d}|rG| dt| }|	dd d}|j
dur^|j
jdur^|j
j}t|}t|}| jd|||I dH }	|	jsyd	nt|	j}
| jjrt|
}
nt|
}
t jj|
| d
}| 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*  r   r  r   r+  r   Nr,  r-  r.  )r
   r0  r1  r2  r  r3  r4  r   r   r5  r   r6  r   r7  r8  async_requestr:  r;  r<  r#  r  r=  r>  r?  r@  rA  r   r   r    rJ  7  sT   







zAsyncCaches.createrT   c                   rf  )zGets cached content configurations.

    .. code-block:: python

      await client.aio.caches.get(name= ... ) // The server-generated resource
      name.
    rK  r   rL  r   r+  r   Nr3  r-  r.  )r
   rM  r1  r2  r  r3  r4  r   r   r5  r   r6  r   r7  r8  rg  r:  r;  r<  r#  r  r=  r>  r?  r@  rN  r   r   r    r3    sT   







zAsyncCaches.getc                   rf  )zDeletes cached content.

    Usage:

    .. code-block:: python

      await client.aio.caches.delete(name= ... ) // The server-generated
      resource name.
    rK  r   rL  r   r+  r   NrO  r-  r.  )r
   rP  r1  r2  r  r3  r4  r   r   r5  r   r6  r   r7  r8  rg  r:  r;  r<  r$  r  rQ  r>  r?  r@  rN  r   r   r    rO    sT   







zAsyncCaches.deletec                   rf  )zUpdates cached content configurations.

    .. code-block:: python

      response = await client.aio.caches.update(
          name= ... // The server-generated resource name.
          config={
              'ttl': '7600s',
          },
      )
    rK  r   rL  r   r+  r   NrR  r-  r.  )r
   rS  r1  r2  r  r3  r4  r   r   r5  r   r6  r   r7  r8  rg  r:  r;  r<  r#  r  r=  r>  r?  r@  rN  r   r   r    rT    sT   







zAsyncCaches.updatec                   s2  t j|d}| jjrt|}|d}|rd|}nd}nt|}|d}|r0d|}nd}|d}|rB| dt| }|	dd d}|j
durY|j
jdurY|j
j}t|}t|}| jd|||I dH }|jstd	nt|j}	| jjrt|	}	nt|	}	t jj|	| d
}
| j|
 |
S )zLists cached content configurations.

    .. code-block:: python

      cached_contents = await client.aio.caches.list(config={'page_size': 2})
      async for cached_content in cached_contents:
        print(cached_content)
    r(  r   r  r   r+  r   Nr3  r-  r.  )r
   rU  r1  r2  r
  r3  r4  r   r   r5  r   r6  r   r7  r8  rg  r:  r;  r<  r%  r!  rV  r>  r?  r@  rW  r   r   r    rX  k  sJ   







zAsyncCaches._listc                   s    t d| j| j|dI d H |S rY  )r   rX  rZ  r   r   r    r[    s   zAsyncCaches.list)r\  r]  r^  r_  r   r
   r`  r=  rJ  ra  r3  rb  rQ  rO  rc  rT  rd  rV  rX  r   r[  r   r   r   r    re  5  sZ    
W
M
O
N
Cre  rw   )^r;  loggingtypingr   r   r   urllib.parser   r-  r   r   r	   r   r
   r1  r   r   r   r   r   pagersr   r   	getLoggerloggerdictr_  objectr!   r*   r.   rC   rP   r[   rb   rh   ro   rt   rx   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r	  r
  r  r  r  r!  r#  r$  r%  
BaseModuler'  re  r   r   r   r    <module>   s$  








B



'













$





9









<





















B



'













*





C









@

























  