o
    gZhW                     @   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          	      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 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   Z/var/www/html/lang_env/lib/python3.10/site-packages/elasticsearch/_sync/client/logstash.pydelete_pipeline   s    zLogstashClient.delete_pipelinec          	      C   s   |t v rtd|t vrdt| }nd}i }|dur ||d< |dur(||d< |dur0||d< |dur8||d< d	d
i}| jd|||d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                C   s   |t v rtd|du rtddt| }i }|dur!||d< |dur)||d< |dur1||d< |dur9||d< |}	d	d	d
}
| jd|||
|	d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
   