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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dS )QueryRulesetClientN)error_tracefilter_pathhumanpretty
ruleset_idr	   r
   r   r   returnc          	      C   |   |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 query ruleset.

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

        :param ruleset_id: The unique identifier of the query ruleset to delete
        -Empty value passed for parameter 'ruleset_id'/_query_rules/Nr	   r
   r   r   acceptapplication/jsonDELETEparamsheadersr   
ValueErrorr   perform_request	selfr   r	   r
   r   r   _QueryRulesetClient__path_QueryRulesetClient__query_QueryRulesetClient__headers r    _/var/www/html/lang_env/lib/python3.10/site-packages/elasticsearch/_sync/client/query_ruleset.pydelete       zQueryRulesetClient.deletec          	      C   r   )z
        Returns the details about a query ruleset.

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

        :param ruleset_id: The unique identifier of the query ruleset
        r   r   Nr	   r
   r   r   r   r   GETr   r   r   r    r    r!   get=   r#   zQueryRulesetClient.getfromfrom_)Zparameter_aliases)r	   r
   r'   r   r   sizer(   c          
      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 )z
        Lists query rulesets.

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

        :param from_: Starting offset (default: 0)
        :param size: specifies a max number of results to get
        z/_query_rulesNr	   r
   r&   r   r   r(   r   r   r$   r   )r   )
r   r	   r
   r'   r   r   r(   r   r   r   r    r    r!   list_   s$   zQueryRulesetClient.listT)Zbody_fieldsrulesc                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 query ruleset.

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

        :param ruleset_id: The unique identifier of the query ruleset to be created or
            updated
        :param rules:
        r   Nz(Empty value passed for parameter 'rules'r   r*   r	   r
   r   r   r   )r   zcontent-typePUT)r   r   bodyr   )r   r   r*   r	   r
   r   r   r   Z_QueryRulesetClient__bodyr   r   r    r    r!   put   s*   

zQueryRulesetClient.put)__name__
__module____qualname__r   strtOptionalboolUnionSequencer   Anyr"   r%   intr)   Mappingr-   r    r    r    r!   r      s    !!	%	r   )typingr2   Zelastic_transportr   _baser   utilsr   r   r   r   r    r    r    r!   <module>   s
   