o
    gZh .                     @   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          	      C   s|   |t v rtddt| }i }|dur||d< |dur!||d< |dur)||d< |dur1||d< dd	i}| jd
|||d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   Z/var/www/html/lang_env/lib/python3.10/site-packages/elasticsearch/_sync/client/synonyms.pydelete_synonym   s    zSynonymsClient.delete_synonymset_idrule_idc          
      C      |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r6||d< |dur>||d	< d
di}	| jd|||	d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                C   s   |t v rtddt| }i }	|dur||	d< |dur!||	d< |dur)||	d< |dur1||	d< |dur9||	d< |durA||	d	< d
di}
| jd||	|
d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          
      C   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          
      C   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r4||d< d	d
i}	| j d|||	d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                C   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r3||	d< |dur;||	d< |durC||	d	< d
d
d}
| jd||	|
|d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                C   s   |t v rtd|t v rtd|du rtddt| dt| }i }	i }
|dur0||	d< |dur8||
d< |dur@||
d	< |durH||
d
< |durP||
d< ddd}| jd||
||	d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  s.   

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
   