[[put-pipeline-api]] === Put pipeline API ++++ Put pipeline ++++ Creates or updates an ingest pipeline. Changes made using this API take effect immediately. [source,console] ---- PUT _ingest/pipeline/my-pipeline-id { "description" : "describe pipeline", "processors" : [ { "set" : { "field": "foo", "value": "bar" } } ] } ---- [[put-pipeline-api-request]] ==== {api-request-title} `PUT /_ingest/pipeline/` [[put-pipeline-api-path-params]] ==== {api-path-parms-title} ``:: (Required, string) ID of the ingest pipeline to create or update. [[put-pipeline-api-query-params]] ==== {api-query-parms-title} include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=master-timeout] [[put-pipeline-api-response-body]] ==== {api-response-body-title} `description`:: (Required, string) Description of the ingest pipeline. `processors`:: + -- (Required, array of <>) Array of processors used to pre-process documents before indexing. Processors are executed in the order provided. See <> for processor object definitions and a list of built-in processors. -- `version`:: + -- (Optional, integer) Optional version number used by external systems to manage ingest pipelines. Versions are not used or validated by {es}; they are intended for external management only. -- [[put-pipeline-api-example]] ==== {api-examples-title} [[versioning-pipelines]] ===== Pipeline versioning When creating or updating an ingest pipeline, you can specify an optional `version` parameter. The version is useful for managing changes to pipeline and viewing the current pipeline for an ingest node. The following request sets a version number of `123` for `my-pipeline-id`. [source,console] -------------------------------------------------- PUT /_ingest/pipeline/my-pipeline-id { "description" : "describe pipeline", "version" : 123, "processors" : [ { "set" : { "field": "foo", "value": "bar" } } ] } -------------------------------------------------- To unset the version number, replace the pipeline without specifying a `version` parameter. [source,console] -------------------------------------------------- PUT /_ingest/pipeline/my-pipeline-id { "description" : "describe pipeline", "processors" : [ { "set" : { "field": "foo", "value": "bar" } } ] } -------------------------------------------------- //// [source,console] -------------------------------------------------- DELETE /_ingest/pipeline/my-pipeline-id -------------------------------------------------- // TEST[continued] [source,console-result] -------------------------------------------------- { "acknowledged": true } -------------------------------------------------- ////