
    cil8              	          d dl Z d dlZd dlZd dlmZmZmZmZ d dlm	Z	 d dl
mZ d dl
mZ d dlmZ d dlmZ d dlmZmZ d	d
lmZ  ej.                  d      Zej3                  ej4                         	 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  G d dejB                        Z" G d dejB                        Z#y)    N)AnyIteratorOptionalUnion)	urlencode)_api_module)_common)get_value_by_path)set_value_by_path)
AsyncPagerPager   )typeszvertexai_genai.memoryrevisionsfrom_objectparent_objectreturnc                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        |dgt        | dg             |S Nname_urlconfiggetvsetvr   r   	to_objects      G/tmp/pip-target-z3e9_cxr/lib/python/vertexai/_genai/memory_revisions.py8_GetAgentEngineMemoryRevisionRequestParameters_to_vertexr   &   s^     !#IK&".Y(${VH*EFK($0Y
Dxj$AB    c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             t        | dg      t        |ddgt        | dg             |S )N	page_size_querypageSize
page_token	pageTokenfilterr   r   s      r   /_ListAgentEngineMemoryRevisionsConfig_to_vertexr'   4   s     !#IK+'3]Xz2D{m4TUK,(4]X{3T+~5VWK($0]Xx0${XJ2OPr   c           
          i }t        | dg      t        |ddgt        | dg             t        | dg      #t        |dgt        t        | dg      |             |S r   )r   r   r'   r   s      r   :_ListAgentEngineMemoryRevisionsRequestParameters_to_vertexr)   F   so     !#IK&".Y(${VH*EFK($0J;[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ej                     fdZy)	MemoryRevisionsNr   r   r   r   c                6   t        j                  ||      }| j                  j                  st	        d      t        |      }|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)                  |
|j+                         
      }| j                  j-                  |       |S a-  
        Gets an agent engine memory revision.

        Args:
            name (str): Required. The name of the Agent Engine memory revision to get. Format:
                `projects/{project}/locations/{location}/reasoningEngines/{resource_id}/memories/{memory_id}/revisions/{revision_id}`.
            config (GetAgentEngineMemoryRevisionConfig):
                Optional. Additional configurations for getting the Agent Engine memory revision.

        Returns:
            AgentEngineMemoryRevision: The requested Agent Engine memory revision.

        r   r   6This method is only supported in the Vertex AI client.r   z{name}r"   ?r   Ngetresponsekwargs)r   ._GetAgentEngineMemoryRevisionRequestParameters_api_clientvertexai
ValueErrorr   r2   
format_mapr   popr   http_optionsr	   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsMemoryRevision_from_response
model_dump_verify_responseselfr   r   parameter_modelrequest_dictrequest_url_dictpathquery_paramsr<   r4   response_dictreturn_values               r   r2   zMemoryRevisions.get\   sx   (  NN
 ((UVVSL  ,//7**+;<#''1V1Y|456D4(48"".&&33?*11>>L..|<::<H##++E4|T"*--TZZ5N++::"?+E+E+G ; 
 	)),7r   c                6   t        j                  ||      }| j                  j                  st	        d      t        |      }|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)                  |
|j+                         
      }| j                  j-                  |       |S a+  
        Lists Agent Engine memory revisions.

        Args:
            name (str): Required. The name of the Agent Engine memory to list revisions for. Format:
                `projects/{project}/locations/{location}/reasoningEngines/{resource_id}/memories/{memory_id}`.
            config (ListAgentEngineMemoryRevisionsConfig):
                Optional. Additional configurations for listing the Agent Engine memory revisions.

        Returns:
            ListAgentEngineMemoryRevisionsResponse: The requested Agent Engine memory revisions.

        r/   r0   r   z{name}/revisionsr"   r1   r   Nr2   r3   )r   0_ListAgentEngineMemoryRevisionsRequestParametersr7   r8   r9   r)   r2   r:   r   r;   r   r<   r	   r=   r>   r?   r@   rA   rB   &ListAgentEngineMemoryRevisionsResponserD   rE   rF   rG   s               r   _listzMemoryRevisions._list   sy   (  PP
 ((UVVUL  ,//7)445EF)#''1V1Y|456D4(48"".&&33?*11>>L..|<::<H##++E4|T"*--TZZ5NCCRR"?+E+E+G S 
 	)),7r   c                ~    t        dt        j                  | j                  |      | j                  ||      |      S )a  Lists Agent Engine memory revisions.

        Args:
            name (str):
                Required. The name of the Memory to list revisions for.
            config (ListAgentEngineMemoryRevisionsConfigOrDict):
                Optional. The configuration for the memories to list revisions.

        Returns:
            Iterable[MemoryRevision]: An iterable of memory revisions.
        memory_revisionsr   r/   )r   	functoolspartialrT   rH   r   r   s      r   listzMemoryRevisions.list   s;    $ djjt4JJDJ0	
 	
r   )__name__
__module____qualname__strr   r   (GetAgentEngineMemoryRevisionConfigOrDictrC   r2   *ListAgentEngineMemoryRevisionsConfigOrDictrS   rT   r   r[    r   r   r+   r+   Z   s     LP	? ? GGH	?
 
		?J NR	? ? IIJ	?
 
	5	5?J NR	
 
 IIJ	

 
%&&	'
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ej                     fdZy)	AsyncMemoryRevisionsNr,   r   r   r   c                R  K   t        j                  ||      }| j                  j                  st	        d      t        |      }|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)                  |
|j+                         
      }| j                  j-                  |       |S 7 }wr.   )r   r6   r7   r8   r9   r   r2   r:   r   r;   r   r<   r	   r=   r>   async_requestr@   rA   rB   rC   rD   rE   rF   rG   s               r   r2   zAsyncMemoryRevisions.get   s    (  NN
 ((UVVSL  ,//7**+;<#''1V1Y|456D4(48"".&&33?*11>>L..|<::<H))774|
 
 #+--TZZ5N++::"?+E+E+G ; 
 	)),7
   D%F''F%(A>F'c                R  K   t        j                  ||      }| j                  j                  st	        d      t        |      }|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)                  |
|j+                         
      }| j                  j-                  |       |S 7 }wrQ   )r   rR   r7   r8   r9   r)   r2   r:   r   r;   r   r<   r	   r=   r>   rf   r@   rA   rB   rS   rD   rE   rF   rG   s               r   rT   zAsyncMemoryRevisions._list=  s    (  PP
 ((UVVUL  ,//7)445EF)#''1V1Y|456D4(48"".&&33?*11>>L..|<::<H))774|
 
 #+--TZZ5NCCRR"?+E+E+G S 
 	)),7
rg   c                   K   t        dt        j                  | j                  |      | j                  ||       d{   |      S 7 	w)a  Lists Agent Engine memory revisions.

        Args:
            name (str):
                Required. The name of the Memory to list revisions for.
            config (ListAgentEngineMemoryRevisionsConfigOrDict):
                Optional. The configuration for the memories to list revisions.

        Returns:
            AsyncPager[MemoryRevision]: An async pager of memory revisions.
        rV   rW   r/   N)r   rX   rY   rT   rZ   s      r   r[   zAsyncMemoryRevisions.list  sG     $ djjt4**$v*66	
 	
 7s   =AA	 
A)r\   r]   r^   r_   r   r   r`   rC   r2   ra   rS   rT   r   r[   rb   r   r   rd   rd      s     LP	A A GGH	A
 
		AN NR	A A IIJ	A
 
	5	5AN NR	
 
 IIJ	

 
E((	)
r   rd   )N)$rX   rA   loggingtypingr   r   r   r   urllib.parser   google.genair   r	   google.genai._commonr
   r   r   r   google.genai.pagersr   r    r   	getLoggerloggersetLevelINFOdictr_   objectr   r'   r)   
BaseModuler+   rd   rb   r   r   <module>rx      sZ  $    1 1 " $   : : 1  
		;	<  
 /3tCH~v-.DcN+ 
#s(^  /3tCH~v-.DcN+ 
#s(^( /3tCH~v-.DcN+ 
#s(^([
k,, [
|_
;11 _
r   