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                   @   sV  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jeej	e 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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 )LogstashClientN)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 Logstash Pipelines used by Central Management

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/logstash-api-delete-pipeline.html>`_

        :param id: Identifier for the pipeline.
        %Empty value passed for parameter 'id'/_logstash/pipeline/Nr	   r
   r   r   acceptapplication/jsonDELETEparamsheadersr   
ValueErrorr   Zperform_request	selfr   r	   r
   r   r   _LogstashClient__path_LogstashClient__query_LogstashClient__headers r   [/var/www/html/lang_env/lib/python3.10/site-packages/elasticsearch/_async/client/logstash.pydelete_pipeline   s"   zLogstashClient.delete_pipelinec          	         s   |t v r	td|t vrdt| }nd}i }|dur!||d< |dur)||d< |dur1||d< |dur9||d< d	d
i}| jd|||dI dH S )z
        Retrieves Logstash Pipelines used by Central Management

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/logstash-api-get-pipeline.html>`_

        :param id: Comma-separated list of pipeline identifiers.
        r   r   z/_logstash/pipelineNr	   r
   r   r   r   r   GETr   r   r   r   r   r   get_pipeline=   s&   zLogstashClient.get_pipelinepipeline)Z	body_namec                   s   |t v r	td|du rtddt| }i }|dur"||d< |dur*||d< |dur2||d< |dur:||d< |}	d	d	d
}
| jd|||
|	dI dH S )a  
        Adds and updates Logstash Pipelines used for Central Management

        `<https://www.elastic.co/guide/en/elasticsearch/reference/8.11/logstash-api-put-pipeline.html>`_

        :param id: Identifier for the pipeline.
        :param pipeline:
        r   Nz+Empty value passed for parameter 'pipeline'r   r	   r
   r   r   r   )r   zcontent-typePUT)r   r   bodyr   )r   r   r#   r	   r
   r   r   r   r   Z_LogstashClient__bodyr   r   r   r   put_pipelineb   s(   

zLogstashClient.put_pipeline)__name__
__module____qualname__r   strtOptionalboolUnionSequencer   Anyr    r"   Mappingr&   r   r   r   r   r      sv    !$	r   )typingr+   Zelastic_transportr   _baser   utilsr   r   r   r   r   r   r   r   <module>   s
   