﻿---
title: stack es ingest put-pipeline cli command
description: Create or update a pipeline. Behaviour flags: --dry-run — validate all inputs and exit without performing any action 
url: https://www.elastic.co/elastic/docs-builder/docs/4089/reference/elastic-cli/cli/stack/es/ingest/put-pipeline
applies_to:
  - Elastic Cloud Serverless: Preview
  - Elastic Stack: Preview
---

# stack es ingest put-pipeline cli command
<cli-modifiers>
</cli-modifiers>

```bash
elastic stack es ingest put-pipeline --id <id> [options]
```

Create or update a pipeline.
**Behaviour flags:**
`--dry-run` — validate all inputs and exit without performing any action

## Options

<definitions>
  <definition term="--id string required">
    ID of the ingest pipeline to create or update.
  </definition>
  <definition term="--master-timeout string">
    Period to wait for a connection to the master node. If no response is received before the timeout expires, the request fails and returns an error.
  </definition>
  <definition term="--timeout string">
    Period to wait for a response. If no response is received before the timeout expires, the request fails and returns an error.
  </definition>
  <definition term="--if-version number">
    Required version for optimistic concurrency control for pipeline updates
  </definition>
  <definition term="--meta string">
    Optional metadata about the ingest pipeline. May have any contents. This map is not automatically generated by Elasticsearch.
  </definition>
  <definition term="--description string">
    Description of the ingest pipeline.
  </definition>
  <definition term="--on-failure string[]">
    Processors to run immediately after a processor failure. Each processor supports a processor-level `on_failure` value. If a processor without an `on_failure` value fails, Elasticsearch uses this pipeline-level parameter as a fallback. The processors in this parameter run sequentially in the order specified. Elasticsearch will not attempt to run the pipeline's remaining processors.
    **Repeatable:** pass `--on-failure` multiple times to supply more than one value
  </definition>
  <definition term="--processors string[]">
    Processors used to perform transformations on documents before indexing. Processors run sequentially in the order specified.
    **Repeatable:** pass `--processors` multiple times to supply more than one value
  </definition>
  <definition term="--version number">
    Version number used by external systems to track ingest pipelines. This parameter is intended for external systems only. Elasticsearch does not use or validate pipeline version numbers.
  </definition>
  <definition term="--deprecated">
    Marks this ingest pipeline as deprecated.
    When a deprecated ingest pipeline is referenced as the default or final pipeline when creating or updating a non-deprecated index template, Elasticsearch will emit a deprecation warning.
  </definition>
  <definition term="--field-access-pattern enum">
    Controls how processors in this pipeline should read and write data on a document's source.
    **Values:** classic, flexible
  </definition>
  <definition term="--error-trace">
    When set to `true` Elasticsearch will include the full stack trace of errors
    when they occur.
  </definition>
  <definition term="--filter-path string">
    Comma-separated list of filters in dot notation which reduce the response
    returned by Elasticsearch.
    **Repeatable:** pass `--filter-path` multiple times to supply more than one value
  </definition>
  <definition term="--human">
    When set to `true` will return statistics in a format suitable for humans.
    For example `"exists_time": "1h"` for humans and
    `"exists_time_in_millis": 3600000` for computers. When disabled the human
    readable values will be omitted. This makes sense for responses being consumed
    only by machines.
  </definition>
  <definition term="--pretty">
    If set to `true` the returned JSON will be "pretty-formatted". Only use
    this option for debugging only.
  </definition>
  <definition term="--input-file string">
    path to a JSON file to use as command input
  </definition>
  <definition term="--dry-run">
    validate all inputs and exit without performing any action (preview changes without applying them)
  </definition>
</definitions>


## Global Options

<definitions>
  <definition term="--json">
    output as JSON
  </definition>
</definitions>