
    sOiG3                     f   d dl mZmZ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 d dlmZ  ej                   d      Z edd	      Zeeeef      Zeeeef   ef   Zd
ZdedededefdZ	 	 	 	 	 	 ddedeeef   dedededefdZerd dlmZ  G d d      Z G d de      Z G d de      Zy
)    )TYPE_CHECKINGAnyDictSetTypeVarUnion)	BaseModel)VERSION)*)modelsz2.Modelr	   )boundNmodelargskwargsreturnc                 V    t         r | j                  |i |S  | j                  |i |S N)PYDANTIC_V2model_dump_jsonjson)r   r   r   s      m/volume1/homes/robertsu/coba/app/.venv/lib/python3.12/site-packages/qdrant_client/http/api/distributed_api.pyto_jsonr      s3    $u$$d5f55uzz4*6**    objincludeby_aliasskip_defaultsexclude_unsetexclude_nonec           
      r    t        | d      st        | d      rt        | |||t        |xs |      |      S | S )Nr   r   )r   excluder   r   r    )hasattrr   bool)r   r   r"   r   r   r   r    s          r   jsonable_encoderr%      sH     sFws,=>}=>%
 	
 Jr   )	ApiClientc                       e Zd ZddZd Z	 	 ddedefdZdefdZ	 	 ddeded	e	j                  fd
Z	 	 ddedede	j                  fdZdefdZd Z	 	 ddededefdZ	 	 ddedede	j$                  fdZy)_DistributedApic                     || _         y r   )
api_client)selfr*   s     r   __init__z_DistributedApi.__init__4   s	    $r   c                 r    i }| j                   j                  t        j                  dd|r|      S d      S )X
        Get information about the current state and composition of the cluster
        GETz/clusterNtype_methodurlheaders)r*   requestmInlineResponse2003r+   r4   s     r   _build_for_cluster_statusz)_DistributedApi._build_for_cluster_status7   sM     &&&&&G	 ' 
 	
 -1	 ' 
 	
r   Ndetails_leveltimeoutc                     i }|t        |      |d<   |t        |      |d<   i }| j                  j                  t        j                  dd|r||      S d|      S )
        Get telemetry data, from the point of view of the cluster. This includes peers info, collections info, shard transfers, and resharding status
        Nr:   r;   r/   z/cluster/telemetry)r1   r2   r3   r4   params)strr*   r5   r6   InlineResponse2004)r+   r:   r;   query_paramsr4   s        r   _build_for_cluster_telemetryz,_DistributedApi._build_for_cluster_telemetryE   s     $,/,>L)&)'lL#&&&&$&G ' 
 	
 -1 ' 
 	
r   collection_namec                     dt        |      i}i }| j                  j                  t        j                  dd|r||      S d|      S ):
        Get cluster information for a collection
        rC   r/   &/collections/{collection_name}/clusterNr1   r2   r3   r4   path_params)r?   r*   r5   r6   InlineResponse2009r+   rC   rH   r4   s       r   "_build_for_collection_cluster_infoz2_DistributedApi._build_for_collection_cluster_info\   sf     s?3
 &&&&8&G# ' 
 	
 -1# ' 
 	
r   create_sharding_keyc           	          dt        |      i}i }|t        |      |d<   i }t        |      }d|vrd|d<   | j                  j                  t        j
                  dd|r|nd |||      S )NrC   r;   Content-Typeapplication/jsonPUT%/collections/{collection_name}/shardsr1   r2   r3   r4   rH   r>   contentr?   r%   r*   r5   r6   InlineResponse2001)r+   rC   r;   rL   rH   rA   r4   bodys           r   _build_for_create_shard_keyz+_DistributedApi._build_for_create_shard_keyp   s     s?3
 &)'lL# 34(&8GN#&&&&7&GD# ' 
 	
r   drop_sharding_keyc           	          dt        |      i}i }|t        |      |d<   i }t        |      }d|vrd|d<   | j                  j                  t        j
                  dd|r|nd |||      S )NrC   r;   rN   rO   POSTz,/collections/{collection_name}/shards/deleterR   rT   )r+   rC   r;   rX   rH   rA   r4   rV   s           r   _build_for_delete_shard_keyz+_DistributedApi._build_for_delete_shard_key   s     s?3
 &)'lL# 12(&8GN#&&&&>&GD# ' 
 	
r   c                     dt        |      i}i }| j                  j                  t        j                  dd|r||      S d |      S )NrC   r/   rQ   rG   )r?   r*   r5   r6   InlineResponse200rJ   s       r   _build_for_list_shard_keysz*_DistributedApi._build_for_list_shard_keys   sf    
 s?3
 &&%%7&G# ' 
 	
 -1# ' 
 	
r   c                 r    i }| j                   j                  t        j                  dd|r|      S d       S )NrZ   z/cluster/recoverr0   )r*   r5   r6   rU   r8   s     r   _build_for_recover_current_peerz/_DistributedApi._build_for_recover_current_peer   sM     &&&&"&G	 ' 
 	
 -1	 ' 
 	
r   peer_idforcec                     dt        |      i}i }|t        |      |d<   |t        |      j                         |d<   i }| j                  j                  t        j
                  dd|r|nd||      S )g
        Tries to remove peer from the cluster. Will return an error if peer has shards on it.
        ra   Nr;   rb   DELETEz/cluster/peer/{peer_id})r1   r2   r3   r4   rH   r>   )r?   lowerr*   r5   r6   rU   )r+   ra   r;   rb   rH   rA   r4   s          r   _build_for_remove_peerz&_DistributedApi._build_for_remove_peer   s     s7|
 &)'lL#$'J$4$4$6L!&&&&)&GD# ' 
 	
r   cluster_operationsc           	          dt        |      i}i }|t        |      |d<   i }t        |      }d|vrd|d<   | j                  j                  t        j
                  dd|r|nd |||      S )NrC   r;   rN   rO   rZ   rF   rR   rT   )r+   rC   r;   rh   rH   rA   r4   rV   s           r   $_build_for_update_collection_clusterz4_DistributedApi._build_for_update_collection_cluster   s     s?3
 &)'lL# 23(&8GN#&&&&8&GD# ' 
 	
r   )r*   z Union[ApiClient, AsyncApiClient]NN)__name__
__module____qualname__r,   r9   intrB   r?   rK   r6   CreateShardingKeyrW   DropShardingKeyr[   r^   r`   r$   rg   ClusterOperationsrj    r   r   r(   r(   3   s   %
  "

 
.

. 37	

 
 00	
> /3	

 
 ,,	
8

"	
 	

 
 	
@ 26	

 
 //	
r   r(   c            	          e Zd Zdej                  fdZ	 	 ddededej                  fdZde	dej                  fdZ	 	 dde	ded	ej                  dej                  fd
Z	 	 dde	dedej                  dej                  fdZde	dej"                  fdZdej                  fdZ	 	 ddedededej                  fdZ	 	 dde	dedej,                  dej                  fdZy)AsyncDistributedApir   c                 >   K   | j                          d{   S 7 w)r.   Nr9   r+   s    r   cluster_statusz"AsyncDistributedApi.cluster_status   s      335555   Nr:   r;   c                 D   K   | j                  ||       d{   S 7 w)r=   r:   r;   NrB   r+   r:   r;   s      r   cluster_telemetryz%AsyncDistributedApi.cluster_telemetry  s0      66' 7 
 
 	
 
s     rC   c                 B   K   | j                  |       d{   S 7 w)rE   rC   NrK   r+   rC   s     r   collection_cluster_infoz+AsyncDistributedApi.collection_cluster_info  s-      <<+ = 
 
 	
 
   rL   c                 F   K   | j                  |||       d {   S 7 wN)rC   r;   rL   rW   r+   rC   r;   rL   s       r   create_shard_keyz$AsyncDistributedApi.create_shard_key  s3      55+ 3 6 
 
 	
 
   !!rX   c                 F   K   | j                  |||       d {   S 7 wN)rC   r;   rX   r[   r+   rC   r;   rX   s       r   delete_shard_keyz$AsyncDistributedApi.delete_shard_key+  s3      55+/ 6 
 
 	
 
r   c                 B   K   | j                  |       d {   S 7 wNr   r^   r   s     r   list_shard_keysz#AsyncDistributedApi.list_shard_keys7  s-      44+ 5 
 
 	
 
r   c                 >   K   | j                          d {   S 7 wr   r`   rx   s    r   recover_current_peerz(AsyncDistributedApi.recover_current_peer?  s      99;;;;rz   ra   rb   c                 F   K   | j                  |||       d{   S 7 w)rd   ra   r;   rb   Nrg   r+   ra   r;   rb   s       r   remove_peerzAsyncDistributedApi.remove_peerD  s3      00 1 
 
 	
 
r   rh   c                 F   K   | j                  |||       d {   S 7 wN)rC   r;   rh   rj   r+   rC   r;   rh   s       r   update_collection_clusterz-AsyncDistributedApi.update_collection_clusterS  s3      >>+1 ? 
 
 	
 
r   rk   rl   rm   rn   r6   r7   ry   ro   r@   r   r?   rI   r   rp   rU   r   rq   r   r]   r   r   r$   r   rr   r   rs   r   r   ru   ru      s   6	
		6 "

 
 
			
	
	
 
			
 37	



 

 00	


 
		

 /3	



 

 ,,	


 
		



 
		
<	
		< 	

 
 	

 
		
$ 26	



 

 //	


 
		

r   ru   c            	          e Zd Zdej                  fdZ	 	 ddededej                  fdZde	dej                  fdZ	 	 dde	ded	ej                  dej                  fd
Z	 	 dde	dedej                  dej                  fdZde	dej"                  fdZdej                  fdZ	 	 ddedededej                  fdZ	 	 dde	dedej,                  dej                  fdZy)SyncDistributedApir   c                 "    | j                         S )r.   rw   rx   s    r   ry   z!SyncDistributedApi.cluster_statusa  s     --//r   Nr:   r;   c                 (    | j                  ||      S )r=   r|   r}   r~   s      r   r   z$SyncDistributedApi.cluster_telemetryi  s"     00' 1 
 	
r   rC   c                 &    | j                  |      S )rE   r   r   r   s     r   r   z*SyncDistributedApi.collection_cluster_infov  s     66+ 7 
 	
r   rL   c                 *    | j                  |||      S r   r   r   s       r   r   z#SyncDistributedApi.create_shard_key  s%     //+ 3 0 
 	
r   rX   c                 *    | j                  |||      S r   r   r   s       r   r   z#SyncDistributedApi.delete_shard_key  s%     //+/ 0 
 	
r   c                 &    | j                  |      S r   r   r   s     r   r   z"SyncDistributedApi.list_shard_keys  s     ..+ / 
 	
r   c                 "    | j                         S r   r   rx   s    r   r   z'SyncDistributedApi.recover_current_peer  s     3355r   ra   rb   c                 *    | j                  |||      S )rd   r   r   r   s       r   r   zSyncDistributedApi.remove_peer  s%     ** + 
 	
r   rh   c                 *    | j                  |||      S r   r   r   s       r   r   z,SyncDistributedApi.update_collection_cluster  s%     88+1 9 
 	
r   rk   r   rs   r   r   r   r   `  s   0	
		0 "

 
 
			
	
	
 
			
 37	



 

 00	


 
		

 /3	



 

 ,,	


 
		



 
		
6	
		6 	

 
 	

 
		
$ 26	



 

 //	


 
		

r   r   )NNTNTT) typingr   r   r   r   r   r   pydanticr	   pydantic.mainpydantic.versionr
   PYDANTIC_VERSIONqdrant_client.http.modelsr   r6   
startswithr   r   ro   r?   	SetIntStrDictIntStrAnyfiler   r$   r%   qdrant_client.http.api_clientr&   r(   ru   r   rs   r   r   <module>r      s   @ @  # 8 ' 1)))$/{+c3h 	U38_c)*+9 +S +C +C + 04	9m+, 	
   , 7H
 H
V_
/ _
D_
 _
r   