
    GjwH              	          d dl mZ 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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 G d dej@                        Z! G d dej@                        Z"y)    )partialN)AnyOptionalUnion)	urlencode   )_api_module)_common)types)get_value_by_path)set_value_by_path)
AsyncPagerPagerzgoogle_genai.documentsfrom_objectparent_objectreturnc                 X    i }t        | dg      t        |ddgt        | dg             |S )Nforce_querygetvsetvr   r   	to_objects      \/var/www/python/quitsure-support/venv/lib/python3.12/site-packages/google/genai/documents.py_DeleteDocumentConfig_to_mldevr   "   s8     !)	+y!-7+T+y-IJ	    c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        t        | dg      |       |S )Nname_urlconfig)r   r   r   r   s      r   "_DeleteDocumentParameters_to_mldevr"   .   sZ     !)	+x ,VV$d;&AB	+z"."4hZ#@)L	r   c                 X    i }t        | dg      t        |ddgt        | dg             |S )Nr   r    r   r   s      r   _GetDocumentParameters_to_mldevr$   <   s8     !)	+x ,VV$d;&AB	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_sizer   pageSize
page_token	pageTokenr   r   s      r   _ListDocumentsConfig_to_mldevr*   G   sm     !)	+}%1*-tK+/O 
+~&2	;[<.) 
r   c                     i }t        | dg      t        |ddgt        | dg             t        | dg      t        t        | dg      |       |S )Nparentr    r!   )r   r   r*   r   s      r   !_ListDocumentsParameters_to_mldevr-   \   sZ     !)	+z".VX&[8*(EF	+z".!${XJ"?K	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 )NsdkHttpResponsesdk_http_responsenextPageTokennext_page_token	documentsr   )r   r   r   items       r   !_ListDocumentsResponse_from_mldevr5   j   s     !)	+)*+7'(${=N<O*P 
+()5&'kO;L)MN	+}%1	{[M:;$; 
 	<s   3	B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d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)	DocumentsNr!   r   r!   r   c                   t        j                  ||      }| j                  j                  r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)                  |
t+        |dd      rGdt+        |j                  d
d      t+        |j                  dd      t+        |j                  dd      dini       }| j                  j-                  |       |S a  Gets metadata about a Document.

    Args:
      name (str): The resource name of the Document.
        Example: ragStores/rag-store-foo/documents/documents-bar
      config (GetDocumentConfig | None): Optional parameters for the request.

    Returns:
      The Document.
    r   r!   iThis method is only supported in Gemini Developer API mode, not in Gemini Enterprise Agent Platform mode.r    {name}r   ?r!   Ngetresponse_schemaresponse_json_schemainclude_all_fieldsr@   rA   rB   responsekwargs)r   _GetDocumentParameters_api_clientvertexai
ValueErrorr$   r?   
format_mapr   popr!   http_optionsr
   convert_to_dictencode_unserializable_typesrequestbodyjsonloadsDocument_from_responsegetattr_verify_responseselfr   r!   parameter_modelrequest_dictrequest_url_dictpathquery_paramsrM   rE   response_dictreturn_values               r   r?   zDocuments.get   s    22O   4 
 5_El%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM>>00 ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! 1 L& 	%%l3r   c                F   t        j                  ||      }| j                  j                  r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	|||       y
a  Deletes a Document.

    Args:
      name (str): The resource name of the Document.
        Example: ragStores/rag-store-foo/documents/documents-bar
      config (DeleteDocumentConfig | None): Optional parameters for the request.

    Returns:
      None
    r;   r<   r    r=   r   r>   r!   Ndelete)r   _DeleteDocumentParametersrH   rI   rJ   r"   r?   rK   r   rL   r!   rM   r
   rN   rO   rP   	rY   r   r!   rZ   r[   r\   r]   r^   rM   s	            r   rc   zDocuments.delete   s   " 55O   4 
 8Hl%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DLXt\<Hr   r,   c                   t        j                  ||      }| j                  j                  r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                         }
| 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       }| j                  j/                  |       |S Nr,   r!   r<   r    z{parent}/documentsr   r>   r!   r?   r@   rA   rB   rC   rD   )r   _ListDocumentsParametersrH   rI   rJ   r-   r?   rK   r   rL   r!   rM   r
   rN   rO   rP   rQ   rR   rS   r5   ListDocumentsResponserU   rV   rW   rY   r,   r!   rZ   r[   r\   r]   r^   rM   rE   r_   r`   s               r   _listzDocuments._list  s    44O   4 
 7Gl%))&1	#../?@###H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL''t\<PH&mmBHMM1JM$$7Fm..== ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! > L& 	%%l3r   c                n    t        | j                  |      }t        d|| j                  ||      |      S )a  Lists documents.

    Args:
      parent (str): The name of the RagStore containing the Documents.
      config (ListDocumentsConfig): Optional configuration for the list request.

    Returns:
      A Pager object that contains one page of documents. When iterating over
      the pager, it automatically fetches the next page if there are more.
    Usage:
    .. code-block:: python
      for document in client.documents.list(parent='rag_store_name'):
        print(f"document: {document.name} - {document.display_name}")
    r,   r3   rh   )r   rl   r   rY   r,   r!   list_requests       r   listzDocuments.listJ  s:    * 4::f5L

&
0	 r   )__name__
__module____qualname__strr   r   GetDocumentConfigOrDictrT   r?   DeleteDocumentConfigOrDictrc   ListDocumentsConfigOrDictrj   rl   r   rq    r   r   r7   r7      s     MQII"*5+H+H"II~~I^ <@	4I 4I u778	4I
 4It ;?	D D u667	D
 ""DT ;?	  u667	
 U^^r   r7   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d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)AsyncDocumentsNr8   r   r!   r   c                  K   t        j                  ||      }| j                  j                  r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)                  |
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r:   )r   rG   rH   rI   rJ   r$   r?   rK   r   rL   r!   rM   r
   rN   rO   async_requestrQ   rR   rS   rT   rU   rV   rW   rX   s               r   r?   zAsyncDocuments.getj  s     22O   4 
 5_El%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM>>00 ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! 1 L& 	%%l35s   D%G-'G+(CG-c                b  K   t        j                  ||      }| j                  j                  r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{    y7 wrb   )r   rd   rH   rI   rJ   r"   r?   rK   r   rL   r!   rM   r
   rN   rO   r}   re   s	            r   rc   zAsyncDocuments.delete  s+    " 55O   4 
 8Hl%))&1	""#34##H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL



(
($l  s   D%D/'D-(D/r,   c                   K   t        j                  ||      }| j                  j                  r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                         }
| 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       }| j                  j/                  |       |S 7 wrg   )r   ri   rH   rI   rJ   r-   r?   rK   r   rL   r!   rM   r
   rN   rO   r}   rQ   rR   rS   r5   rj   rU   rV   rW   rk   s               r   rl   zAsyncDocuments._list  s     44O   4 
 7Gl%))&1	#../?@###H-LvQy./0dXt$04L*""//;$++88l**<8L66|DL%%33t\< H 'mmBHMM1JM$$7Fm..== ?Hd3 #*#**,=t$ )0#**,BD) '.#**,@$'

 ! > L& 	%%l3;s   D%H'H(C%Hc                   K   t        | j                  |      }t        d|| j                  ||       d{   |      S 7 	w)a6  Lists documents asynchronously.

    Args:
      parent (str): The name of the RagStore containing the Documents.
      config (ListDocumentsConfig): Optional configuration for the list request.

    Returns:
      A Pager object that contains one page of documents. When iterating over
      the pager, it automatically fetches the next page if there are more.
    Usage:
    .. code-block:: python
      async for document in await
      client.aio.documents.list(parent='rag_store_name'):
        print(f"document: {document.name} - {document.display_name}")
    rn   r3   rh   N)r   rl   r   ro   s       r   rq   zAsyncDocuments.list7  sF     , 4::f5Ljjvj66	  	7s   5AA
A)rr   rs   rt   ru   r   r   rv   rT   r?   rw   rc   rx   rj   rl   r   rq   ry   r   r   r{   r{   h  s     MQKK"*5+H+H"IK~~Kb <@	6 6 u778	6
 6x ;?	F F u667	F
 ""FX ;?	  u667	
 %..!r   r{   )N)#	functoolsr   rR   loggingtypingr   r   r   urllib.parser    r	   r
   r   r   r   r   r   pagersr   r   	getLoggerloggerdictru   objectr   r"   r$   r*   r-   r5   
BaseModuler7   r{   ry   r   r   <module>r      s)  $    ' ' "    . . %			3	4
 /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(^.d&& dNk[++ kr   