o
    gZht.                     @   sH   d dl Zd dlmZ ddlmZ ddlmZmZm	Z	 G dd deZ
dS )    N)ObjectApiResponse   )NamespacedClient)SKIP_IN_PATH_quote_rewrite_parametersc                   @   s*  e Zd Ze ddddddedeje dejejeej	e f  deje deje de
ej fd	d
Ze ddddddededeje dejejeej	e f  deje deje de
ej fddZeddidddddddddedeje dejejeej	e f  deje deje deje deje de
ej fddZe ddddddededeje dejejeej	e f  deje deje de
ej fddZeddidddddddddeje dejejeej	e f  deje deje deje deje de
ej fddZeddddddddedej	ejeejf  deje dejejeej	e f  deje deje de
ej fddZeddddddddededej	e deje dejejeej	e f  deje deje de
ej fd d!ZdS )"SynonymsClientN)error_tracefilter_pathhumanprettyidr	   r
   r   r   returnc          	         s   |t v r	tddt| }i }|dur||d< |dur"||d< |dur*||d< |dur2||d< dd	i}| jd
|||dI dH S )z
        Deletes a synonym set

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/delete-synonyms-set.html>`_

        :param id: The id of the synonyms set to be deleted
        %Empty value passed for parameter 'id'/_synonyms/Nr	   r
   r   r   acceptapplication/jsonDELETEparamsheadersr   
ValueErrorr   perform_request)	selfr   r	   r
   r   r   _SynonymsClient__path_SynonymsClient__query_SynonymsClient__headers r   [/var/www/html/lang_env/lib/python3.10/site-packages/elasticsearch/_async/client/synonyms.pydelete_synonym   s"   zSynonymsClient.delete_synonymset_idrule_idc          
            |t v r	td|t v rtddt| dt| }i }|dur'||d< |dur/||d< |dur7||d< |dur?||d	< d
di}	| jd|||	dI dH S )a  
        Deletes a synonym rule in a synonym set

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/delete-synonym-rule.html>`_

        :param set_id: The id of the synonym set to be updated
        :param rule_id: The id of the synonym rule to be deleted
        )Empty value passed for parameter 'set_id'*Empty value passed for parameter 'rule_id'r   /Nr	   r
   r   r   r   r   r   r   r   
r   r!   r"   r	   r
   r   r   r   r   r   r   r   r   delete_synonym_rule=   &   z"SynonymsClient.delete_synonym_rulefromfrom_)Zparameter_aliases)r	   r
   r+   r   r   sizer,   c                   s   |t v r	tddt| }i }	|dur||	d< |dur"||	d< |dur*||	d< |dur2||	d< |dur:||	d< |durB||	d	< d
di}
| jd||	|
dI dH S )aW  
        Retrieves a synonym set

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/get-synonyms-set.html>`_

        :param id: "The id of the synonyms set to be retrieved
        :param from_: Starting offset for query rules to be retrieved
        :param size: specifies a max number of query rules to retrieve
        r   r   Nr	   r
   r*   r   r   r,   r   r   GETr   r   )r   r   r	   r
   r+   r   r   r,   r   r   r   r   r   r   get_synonymc   s*   zSynonymsClient.get_synonymc          
         r#   )a1  
        Retrieves a synonym rule from a synonym set

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/get-synonym-rule.html>`_

        :param set_id: The id of the synonym set to retrieve the synonym rule from
        :param rule_id: The id of the synonym rule to retrieve
        r$   r%   r   r&   Nr	   r
   r   r   r   r   r-   r   r   r'   r   r   r   get_synonym_rule   r)   zSynonymsClient.get_synonym_rulec          
         s   d}i }|dur||d< |dur||d< |dur||d< |dur%||d< |dur-||d< |dur5||d< d	d
i}	| j d|||	dI dH S )a	  
        Retrieves a summary of all defined synonym sets

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/list-synonyms-sets.html>`_

        :param from_: Starting offset
        :param size: specifies a max number of results to get
        z
/_synonymsNr	   r
   r*   r   r   r,   r   r   r-   r   )r   )
r   r	   r
   r+   r   r   r,   r   r   r   r   r   r   get_synonyms_sets   s&   z SynonymsClient.get_synonyms_setsT)Zbody_fieldssynonyms_setc                   s   |t v r	td|du rtddt| }i }i }	|dur$||d< |dur,||	d< |dur4||	d< |dur<||	d< |durD||	d	< d
d
d}
| jd||	|
|dI dH S )a  
        Creates or updates a synonyms set

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/put-synonyms-set.html>`_

        :param id: The id of the synonyms set to be created or updated
        :param synonyms_set: The synonym set information to update
        r   Nz/Empty value passed for parameter 'synonyms_set'r   r1   r	   r
   r   r   r   r   zcontent-typePUTr   r   bodyr   )r   r   r1   r	   r
   r   r   r   _SynonymsClient__bodyr   r   r   r   r   put_synonym   s,   

zSynonymsClient.put_synonymsynonymsc                   s   |t v r	td|t v rtd|du rtddt| dt| }i }	i }
|dur1||	d< |dur9||
d< |durA||
d	< |durI||
d
< |durQ||
d< ddd}| jd||
||	dI dH S )a`  
        Creates or updates a synonym rule in a synonym set

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/put-synonym-rule.html>`_

        :param set_id: The id of the synonym set to be updated with the synonym rule
        :param rule_id: The id of the synonym rule to be updated or created
        :param synonyms:
        r$   r%   Nz+Empty value passed for parameter 'synonyms'r   r&   r8   r	   r
   r   r   r   r2   r3   r4   r   )r   r!   r"   r8   r	   r
   r   r   r   r6   r   r   r   r   r   put_synonym_rule  s0   

zSynonymsClient.put_synonym_rule)__name__
__module____qualname__r   strtOptionalboolUnionSequencer   Anyr    r(   intr.   r/   r0   Mappingr7   r9   r   r   r   r   r      s6   !	%	
)	%	%	(		
r   )typingr>   Zelastic_transportr   _baser   utilsr   r   r   r   r   r   r   r   <module>   s
   