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

# stack es ml put-trained-model cli command
<cli-modifiers>
</cli-modifiers>

```bash
elastic stack es ml put-trained-model --model-id <model-id> [options]
```

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

## Options

<definitions>
  <definition term="--model-id string required">
    The unique identifier of the trained model.
  </definition>
  <definition term="--defer-definition-decompression">
    If set to `true` and a `compressed_definition` is provided,
    the request defers definition decompression and skips relevant
    validations.
  </definition>
  <definition term="--wait-for-completion">
    Whether to wait for all child operations (e.g. model download)
    to complete.
  </definition>
  <definition term="--compressed-definition string">
    The compressed (GZipped and Base64 encoded) inference definition of the
    model. If compressed_definition is specified, then definition cannot be
    specified.
  </definition>
  <definition term="--definition string">
    The inference definition for the model. If definition is specified, then
    compressed_definition cannot be specified.
  </definition>
  <definition term="--description string">
    A human-readable description of the inference trained model.
  </definition>
  <definition term="--inference-config string">
    The default configuration for inference. This can be either a regression
    or classification configuration. It must match the underlying
    definition.trained_model's target_type. For pre-packaged models such as
    ELSER the config is not required.
  </definition>
  <definition term="--input string">
    The input field names for the model definition.
  </definition>
  <definition term="--metadata string">
    An object map that contains metadata about the model.
  </definition>
  <definition term="--model-type enum">
    The model type.
    **Values:** tree_ensemble, lang_ident, pytorch
  </definition>
  <definition term="--model-size-bytes number">
    The estimated memory usage in bytes to keep the trained model in memory.
    This property is supported only if defer_definition_decompression is true
    or the model definition is not supplied.
  </definition>
  <definition term="--platform-architecture string">
    The platform architecture (if applicable) of the trained mode. If the model
    only works on one platform, because it is heavily optimized for a particular
    processor architecture and OS combination, then this field specifies which.
    The format of the string must match the platform identifiers used by Elasticsearch,
    so one of, `linux-x86_64`, `linux-aarch64`, `darwin-aarch64`,
    or `windows-x86_64`. For portable models (those that work independent of processor
    architecture or OS features), leave this field unset.
  </definition>
  <definition term="--tags string[]">
    An array of tags to organize the model.
    **Repeatable:** pass `--tags` multiple times to supply more than one value
  </definition>
  <definition term="--prefix-strings string">
    Optional prefix strings applied at inference
  </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>