123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300 |
- [[indices-simulate-template]]
- === Simulate index template API
- ++++
- <titleabbrev>Simulate template</titleabbrev>
- ++++
- experimental[]
- Returns the index configuration that would be applied by a particular
- <<indices-templates, index template>>.
- ////
- [source,console]
- --------------------------------------------------
- PUT _index_template/template_1
- {
- "index_patterns": ["te*", "bar*"],
- "template": {
- "settings": {
- "number_of_shards": 1
- },
- "mappings": {
- "_source": {
- "enabled": false
- },
- "properties": {
- "host_name": {
- "type": "keyword"
- },
- "created_at": {
- "type": "date",
- "format": "EEE MMM dd HH:mm:ss Z yyyy"
- }
- }
- },
- "aliases": {
- "mydata": { }
- }
- },
- "priority": 10,
- "version": 3,
- "_meta": {
- "description": "my custom"
- }
- }
- --------------------------------------------------
- // TESTSETUP
- [source,console]
- --------------------------------------------------
- DELETE _index_template/*
- DELETE _component_template/*
- --------------------------------------------------
- // TEARDOWN
- ////
- [source,console]
- --------------------------------------------------
- POST /_index_template/_simulate/template_1
- --------------------------------------------------
- [[simulate-template-api-request]]
- ==== {api-request-title}
- `POST /_index_template/_simulate/<index-template>`
- [[simulate-template-api-path-params]]
- ==== {api-path-parms-title}
- `<index-template>`::
- (Optional, string)
- Name of the index template to simulate.
- To test a template configuration before you add it to the cluster,
- omit this parameter and specify the template configuration in the request body.
- [[simulate-template-api-query-params]]
- ==== {api-query-parms-title}
- ////
- `cause`::
- (Optional, string) The reason for using the specified template for the simulation.
- ////
- `create`::
- (Optional, boolean) If `true`, the template passed in the body is
- only used if no existing templates match the same index patterns.
- If `false`, the simulation uses the template with the highest priority.
- Note that the template is not permanently added or updated in either case;
- it is only used for the simulation.
- Defaults to `false`.
- include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=master-timeout]
- [[simulate-template-api-request-body]]
- ==== {api-request-body-title}
- `composed_of`::
- (Optional, array of strings)
- Ordered list of component template names. Component templates are merged in the order
- specified, meaning that the last component template specified has the highest precedence.
- For an example, see
- <<multiple-component-templates,Composing multiple component templates>>.
- `index_patterns`::
- (Required, array of strings)
- Array of wildcard (`*`) expressions
- used to match the names of indices during creation.
- `priority`::
- (Optional, integer)
- Priority that determines what template is applied if there are multiple templates
- that match the name of a new index.
- The highest priority template takes precedence. Defaults to `0` (lowest priority).
- `template`::
- (Optional, object)
- Template to apply.
- +
- .Properties of `template`
- [%collapsible%open]
- ====
- include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=aliases]
- include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=mappings]
- include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=settings]
- ====
- `version`::
- (Optional, integer)
- Version number used to manage index templates externally.
- This version is not automatically generated by {es}.
- `_meta`::
- (Optional, object)
- User-specified metadata for the index template.
- This information is not generated or used by {es}.
- [role="child_attributes"]
- [[simulate-template-api-response-body]]
- ==== {api-response-body-title}
- `overlapping`::
- (array) Any templates that were superseded by the specified template.
- +
- .Properties of `overlapping`
- [%collapsible%open]
- ====
- `index_patterns`::
- (array) Index patterns that the superseded template applies to.
- `name`::
- (string) Name of the superseded template.
- ====
- `template`::
- (object)
- The settings, mappings, and aliases that would be applied to matching indices.
- +
- .Properties of `template`
- [%collapsible%open]
- ====
- include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=aliases]
- include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=mappings]
- include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=settings]
- ====
- [[simulate-template-api-example]]
- ==== {api-examples-title}
- [[simulate-existing-template-ex]]
- ===== Simulating an existing template
- The following example creates and simulates a composed template:
- [source,console]
- --------------------------------------------------
- PUT /_component_template/ct1 <1>
- {
- "template": {
- "settings": {
- "index.number_of_shards": 2
- }
- }
- }
- PUT /_component_template/ct2 <2>
- {
- "template": {
- "settings": {
- "index.number_of_replicas": 0
- },
- "mappings": {
- "properties": {
- "@timestamp": {
- "type": "date"
- }
- }
- }
- }
- }
- PUT /_index_template/final-template <3>
- {
- "index_patterns": ["my-index-*"],
- "composed_of": ["ct1", "ct2"],
- "priority": 5
- }
- POST /_index_template/_simulate/final-template <4>
- --------------------------------------------------
- <1> Create a component template (`ct1`) that sets the number of shards to 2
- <2> Create a component template (`ct2`) that sets the number of replicas to 0 and defines a mapping
- <3> Create an index template (`final-template`) that uses the component templates
- <4> Show the configuration applied by the `final-template`
- The response shows the index settings, mappings, and aliases applied by the `final-template`:
- [source,console-result]
- ---------------------------------------------------------
- {
- "template" : {
- "settings" : {
- "index" : {
- "number_of_shards" : "2", <1>
- "number_of_replicas" : "0" <2>
- }
- },
- "mappings" : { <3>
- "properties" : {
- "@timestamp" : {
- "type" : "date"
- }
- }
- },
- "aliases" : { }
- },
- "overlapping" : [ ]
- }
- ---------------------------------------------------------
- <1> Number of shards from `ct1`
- <2> Number of replicas from `ct2`
- <3> Mappings from `ct1`
- [[simulate-template-config-ex]]
- ===== Simulating an arbitrary template configuration
- To see what settings will be applied by a template before you add it to the cluster,
- you can pass a template configuration in the request body.
- The specified template is used for the simulation if it has a higher priority than existing templates.
- [source,console]
- --------------------------------------------------
- POST /_index_template/_simulate
- {
- "index_patterns": ["my-index-*"],
- "composed_of": ["ct2"],
- "priority": 10,
- "template": {
- "settings": {
- "index.number_of_replicas": 1
- }
- }
- }
- --------------------------------------------------
- // TEST[continued]
- The response shows any overlapping templates with a lower priority.
- [source,console-result]
- ---------------------------------------------------------
- {
- "template" : {
- "settings" : {
- "index" : {
- "number_of_replicas" : "1"
- }
- },
- "mappings" : {
- "properties" : {
- "@timestamp" : {
- "type" : "date"
- }
- }
- },
- "aliases" : { }
- },
- "overlapping" : [
- {
- "name" : "final-template",
- "index_patterns" : [
- "my-index-*"
- ]
- }
- ]
- }
- ---------------------------------------------------------
|