[[indices-simulate-index]] === Simulate index API ++++ Simulate index ++++ experimental[] Returns the index configuration that would be applied to the specified index from an existing <>. //// [source,console] -------------------------------------------------- PUT _index_template/template_1 { "index_patterns": ["myindex*"], "template": { "settings": { "number_of_shards": 1 } } } -------------------------------------------------- // TESTSETUP [source,console] -------------------------------------------------- DELETE _index_template/* -------------------------------------------------- // TEARDOWN //// [source,console] -------------------------------------------------- POST /_index_template/_simulate_index/myindex-1 -------------------------------------------------- [[simulate-index-api-request]] ==== {api-request-title} `POST /_index_template/_simulate_index/` [[simulate-index-api-path-params]] ==== {api-path-parms-title} ``:: (Required, string) Name of the index to simulate. [[simulate-index-api-query-params]] ==== {api-query-parms-title} //// `cause`:: (Optional, string) The reason for running the simulation. //// include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=master-timeout] [role="child_attributes"] [[simulate-index-api-response-body]] ==== {api-response-body-title} `overlapping`:: (array) Any templates that also matched the index but were superseded by a higher-priority template. Response includes an empty array if there are no overlapping templates. + .Properties of `overlapping` [%collapsible%open] ==== `name`:: (string) Name of the superseded template. `index_patterns`:: (array) Index patterns that the superseded template applies to. ==== `template`:: (object) The settings, mappings, and aliases that would be applied to the index. + .Properties of `template` [%collapsible%open] ==== include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=aliases] + Response includes an empty object if no aliases would be applied. include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=mappings] + Omitted from the response if no mappings would be applied. include::{es-ref-dir}/rest-api/common-parms.asciidoc[tag=settings] + Response includes an empty object if no settings would be applied. ==== [[simulate-index-api-example]] ==== {api-examples-title} The following example shows the configuration that would be applied to `myindex-1` by an existing 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": ["myindex*"], "composed_of": ["ct1", "ct2"], "priority": 5 } POST /_index_template/_simulate_index/myindex-1 <4> -------------------------------------------------- <1> Create a component template (`ct1`) that sets the number of shards to 2 <2> Create a second 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 that would be applied to `myindex-1` The response shows the index settings, mappings, and aliases applied by the `final-template`: [source,console-result] --------------------------------------------------------- { "template" : { "settings" : { "index" : { "number_of_shards" : "2", "number_of_replicas" : "0" } }, "mappings" : { "properties" : { "@timestamp" : { "type" : "date" } } }, "aliases" : { } }, "overlapping" : [ { "name" : "template_1", "index_patterns" : [ "myindex*" ] } ] } ---------------------------------------------------------