diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/search/InnerHits.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/search/InnerHits.java index a8f93a699d..a4540c150a 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/core/search/InnerHits.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/core/search/InnerHits.java @@ -95,7 +95,9 @@ public class InnerHits implements JsonpSerializable { @Nullable private final Boolean seqNoPrimaryTerm; - private final List fields; + private final List field; + + private final List fields; private final List sort; @@ -124,6 +126,7 @@ private InnerHits(Builder builder) { this.ignoreUnmapped = builder.ignoreUnmapped; this.scriptFields = ApiTypeHelper.unmodifiable(builder.scriptFields); this.seqNoPrimaryTerm = builder.seqNoPrimaryTerm; + this.field = ApiTypeHelper.unmodifiable(builder.field); this.fields = ApiTypeHelper.unmodifiable(builder.fields); this.sort = ApiTypeHelper.unmodifiable(builder.sort); this.source = builder.source; @@ -222,10 +225,17 @@ public final Boolean seqNoPrimaryTerm() { return this.seqNoPrimaryTerm; } + /** + * API name: {@code field} + */ + public final List field() { + return this.field; + } + /** * API name: {@code fields} */ - public final List fields() { + public final List fields() { return this.fields; } @@ -341,12 +351,22 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { generator.writeKey("seq_no_primary_term"); generator.write(this.seqNoPrimaryTerm); + } + if (ApiTypeHelper.isDefined(this.field)) { + generator.writeKey("field"); + generator.writeStartArray(); + for (String item0 : this.field) { + generator.write(item0); + + } + generator.writeEnd(); + } if (ApiTypeHelper.isDefined(this.fields)) { generator.writeKey("fields"); generator.writeStartArray(); - for (String item0 : this.fields) { - generator.write(item0); + for (FieldAndFormat item0 : this.fields) { + item0.serialize(generator, mapper); } generator.writeEnd(); @@ -433,7 +453,10 @@ public static class Builder extends WithJsonObjectBuilderBase implement private Boolean seqNoPrimaryTerm; @Nullable - private List fields; + private List field; + + @Nullable + private List fields; @Nullable private List sort; @@ -463,6 +486,7 @@ private Builder(InnerHits instance) { this.ignoreUnmapped = instance.ignoreUnmapped; this.scriptFields = instance.scriptFields; this.seqNoPrimaryTerm = instance.seqNoPrimaryTerm; + this.field = instance.field; this.fields = instance.fields; this.sort = instance.sort; this.source = instance.source; @@ -614,12 +638,32 @@ public final Builder seqNoPrimaryTerm(@Nullable Boolean value) { return this; } + /** + * API name: {@code field} + *

+ * Adds all elements of list to field. + */ + public final Builder field(List list) { + this.field = _listAddAll(this.field, list); + return this; + } + + /** + * API name: {@code field} + *

+ * Adds one or more values to field. + */ + public final Builder field(String value, String... values) { + this.field = _listAdd(this.field, value, values); + return this; + } + /** * API name: {@code fields} *

* Adds all elements of list to fields. */ - public final Builder fields(List list) { + public final Builder fields(List list) { this.fields = _listAddAll(this.fields, list); return this; } @@ -629,11 +673,20 @@ public final Builder fields(List list) { *

* Adds one or more values to fields. */ - public final Builder fields(String value, String... values) { + public final Builder fields(FieldAndFormat value, FieldAndFormat... values) { this.fields = _listAdd(this.fields, value, values); return this; } + /** + * API name: {@code fields} + *

+ * Adds a value to fields using a builder lambda. + */ + public final Builder fields(Function> fn) { + return fields(fn.apply(new FieldAndFormat.Builder()).build()); + } + /** * How the inner hits should be sorted per inner_hits. By default, * inner hits are sorted by score. @@ -769,7 +822,8 @@ protected static void setupInnerHitsDeserializer(ObjectDeserializer 1) { hash = hash.substring(1); } - window.location = "https://github.com/elastic/elasticsearch-specification/tree/928c63cb55207b6063e98c17f7f98de72ddda161/specification/" + (paths[hash] || ""); + window.location = "https://github.com/elastic/elasticsearch-specification/tree/5ee1f7c137b141a3057b1800333cd6d4b1fc9dce/specification/" + (paths[hash] || ""); - Please see the Elasticsearch API specification. + Please see the Elasticsearch API specification. diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/DataStreamLifecycle.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/DataStreamLifecycle.java index efb74137d5..f44e0ae699 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/DataStreamLifecycle.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/DataStreamLifecycle.java @@ -67,6 +67,12 @@ public class DataStreamLifecycle implements JsonpSerializable { @Nullable private final Time dataRetention; + @Nullable + private final Time effectiveRetention; + + @Nullable + private final RetentionSource retentionDeterminedBy; + private final List downsampling; @Nullable @@ -80,6 +86,8 @@ public class DataStreamLifecycle implements JsonpSerializable { protected DataStreamLifecycle(AbstractBuilder builder) { this.dataRetention = builder.dataRetention; + this.effectiveRetention = builder.effectiveRetention; + this.retentionDeterminedBy = builder.retentionDeterminedBy; this.downsampling = ApiTypeHelper.unmodifiable(builder.downsampling); this.downsamplingMethod = builder.downsamplingMethod; this.enabled = builder.enabled; @@ -103,6 +111,26 @@ public final Time dataRetention() { return this.dataRetention; } + /** + * The least amount of time data should be kept by elasticsearch. + *

+ * API name: {@code effective_retention} + */ + @Nullable + public final Time effectiveRetention() { + return this.effectiveRetention; + } + + /** + * Configuration source that can influence the retention of a data stream. + *

+ * API name: {@code retention_determined_by} + */ + @Nullable + public final RetentionSource retentionDeterminedBy() { + return this.retentionDeterminedBy; + } + /** * The list of downsampling rounds to execute as part of this downsampling * configuration @@ -154,6 +182,15 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { this.dataRetention.serialize(generator, mapper); } + if (this.effectiveRetention != null) { + generator.writeKey("effective_retention"); + this.effectiveRetention.serialize(generator, mapper); + + } + if (this.retentionDeterminedBy != null) { + generator.writeKey("retention_determined_by"); + this.retentionDeterminedBy.serialize(generator, mapper); + } if (ApiTypeHelper.isDefined(this.downsampling)) { generator.writeKey("downsampling"); generator.writeStartArray(); @@ -214,6 +251,12 @@ public abstract static class AbstractBuilder downsampling; @@ -248,6 +291,35 @@ public final BuilderT dataRetention(Function> return this.dataRetention(fn.apply(new Time.Builder()).build()); } + /** + * The least amount of time data should be kept by elasticsearch. + *

+ * API name: {@code effective_retention} + */ + public final BuilderT effectiveRetention(@Nullable Time value) { + this.effectiveRetention = value; + return self(); + } + + /** + * The least amount of time data should be kept by elasticsearch. + *

+ * API name: {@code effective_retention} + */ + public final BuilderT effectiveRetention(Function> fn) { + return this.effectiveRetention(fn.apply(new Time.Builder()).build()); + } + + /** + * Configuration source that can influence the retention of a data stream. + *

+ * API name: {@code retention_determined_by} + */ + public final BuilderT retentionDeterminedBy(@Nullable RetentionSource value) { + this.retentionDeterminedBy = value; + return self(); + } + /** * The list of downsampling rounds to execute as part of this downsampling * configuration @@ -327,6 +399,8 @@ protected static > void setupDataStre ObjectDeserializer op) { op.add(AbstractBuilder::dataRetention, Time._DESERIALIZER, "data_retention"); + op.add(AbstractBuilder::effectiveRetention, Time._DESERIALIZER, "effective_retention"); + op.add(AbstractBuilder::retentionDeterminedBy, RetentionSource._DESERIALIZER, "retention_determined_by"); op.add(AbstractBuilder::downsampling, JsonpDeserializer.arrayDeserializer(DownsamplingRound._DESERIALIZER), "downsampling"); op.add(AbstractBuilder::downsamplingMethod, SamplingMethod._DESERIALIZER, "downsampling_method"); diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ElasticsearchIndicesAsyncClient.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ElasticsearchIndicesAsyncClient.java index c3f9a9f47f..8b52d97e4a 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ElasticsearchIndicesAsyncClient.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ElasticsearchIndicesAsyncClient.java @@ -5051,6 +5051,8 @@ public CompletableFuture simulateTemplate() { * index. *

  • The number of primary shards in the target index must be a multiple of * the number of primary shards in the source index.
  • + *
  • The number of primary shards in the target index must be a divisor of the + * source index's index.number_of_routing_shards.
  • *
  • The node handling the split process must have sufficient free disk space * to accommodate a second copy of the existing index.
  • * @@ -5130,6 +5132,8 @@ public CompletableFuture split(SplitRequest request) { * index. *
  • The number of primary shards in the target index must be a multiple of * the number of primary shards in the source index.
  • + *
  • The number of primary shards in the target index must be a divisor of the + * source index's index.number_of_routing_shards.
  • *
  • The node handling the split process must have sufficient free disk space * to accommodate a second copy of the existing index.
  • * diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ElasticsearchIndicesClient.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ElasticsearchIndicesClient.java index 01a0f921fc..be97bb81ac 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ElasticsearchIndicesClient.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/ElasticsearchIndicesClient.java @@ -5123,6 +5123,8 @@ public SimulateTemplateResponse simulateTemplate() throws IOException, Elasticse * index. *
  • The number of primary shards in the target index must be a multiple of * the number of primary shards in the source index.
  • + *
  • The number of primary shards in the target index must be a divisor of the + * source index's index.number_of_routing_shards.
  • *
  • The node handling the split process must have sufficient free disk space * to accommodate a second copy of the existing index.
  • * @@ -5202,6 +5204,8 @@ public SplitResponse split(SplitRequest request) throws IOException, Elasticsear * index. *
  • The number of primary shards in the target index must be a multiple of * the number of primary shards in the source index.
  • + *
  • The number of primary shards in the target index must be a divisor of the + * source index's index.number_of_routing_shards.
  • *
  • The node handling the split process must have sufficient free disk space * to accommodate a second copy of the existing index.
  • * diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetDataLifecycleResponse.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetDataLifecycleResponse.java index b770acbe51..d3d9e46b55 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetDataLifecycleResponse.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/GetDataLifecycleResponse.java @@ -20,6 +20,7 @@ package co.elastic.clients.elasticsearch.indices; import co.elastic.clients.elasticsearch.indices.get_data_lifecycle.DataStreamWithLifecycle; +import co.elastic.clients.elasticsearch.indices.get_data_lifecycle.GlobalRetention; import co.elastic.clients.json.JsonpDeserializable; import co.elastic.clients.json.JsonpDeserializer; import co.elastic.clients.json.JsonpMapper; @@ -63,11 +64,14 @@ public class GetDataLifecycleResponse implements JsonpSerializable { private final List dataStreams; + private final GlobalRetention globalRetention; + // --------------------------------------------------------------------------------------------- private GetDataLifecycleResponse(Builder builder) { this.dataStreams = ApiTypeHelper.unmodifiableRequired(builder.dataStreams, this, "dataStreams"); + this.globalRetention = ApiTypeHelper.requireNonNull(builder.globalRetention, this, "globalRetention"); } @@ -82,6 +86,13 @@ public final List dataStreams() { return this.dataStreams; } + /** + * Required - API name: {@code global_retention} + */ + public final GlobalRetention globalRetention() { + return this.globalRetention; + } + /** * Serialize this object to JSON. */ @@ -103,6 +114,8 @@ protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { generator.writeEnd(); } + generator.writeKey("global_retention"); + this.globalRetention.serialize(generator, mapper); } @@ -122,6 +135,8 @@ public static class Builder extends WithJsonObjectBuilderBase ObjectBuilder { private List dataStreams; + private GlobalRetention globalRetention; + /** * Required - API name: {@code data_streams} *

    @@ -152,6 +167,21 @@ public final Builder dataStreams( return dataStreams(fn.apply(new DataStreamWithLifecycle.Builder()).build()); } + /** + * Required - API name: {@code global_retention} + */ + public final Builder globalRetention(GlobalRetention value) { + this.globalRetention = value; + return this; + } + + /** + * Required - API name: {@code global_retention} + */ + public final Builder globalRetention(Function> fn) { + return this.globalRetention(fn.apply(new GlobalRetention.Builder()).build()); + } + @Override protected Builder self() { return this; @@ -183,6 +213,7 @@ protected static void setupGetDataLifecycleResponseDeserializer( op.add(Builder::dataStreams, JsonpDeserializer.arrayDeserializer(DataStreamWithLifecycle._DESERIALIZER), "data_streams"); + op.add(Builder::globalRetention, GlobalRetention._DESERIALIZER, "global_retention"); } diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/RetentionSource.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/RetentionSource.java new file mode 100644 index 0000000000..a44557325e --- /dev/null +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/RetentionSource.java @@ -0,0 +1,70 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package co.elastic.clients.elasticsearch.indices; + +import co.elastic.clients.json.JsonEnum; +import co.elastic.clients.json.JsonpDeserializable; +import co.elastic.clients.json.JsonpDeserializer; + +//---------------------------------------------------------------- +// THIS CODE IS GENERATED. MANUAL EDITS WILL BE LOST. +//---------------------------------------------------------------- +// +// This code is generated from the Elasticsearch API specification +// at https://github.com/elastic/elasticsearch-specification +// +// Manual updates to this file will be lost when the code is +// re-generated. +// +// If you find a property that is missing or wrongly typed, please +// open an issue or a PR on the API specification repository. +// +//---------------------------------------------------------------- + +/** + * + * @see API + * specification + */ +@JsonpDeserializable +public enum RetentionSource implements JsonEnum { + DataStreamConfiguration("data_stream_configuration"), + + DefaultGlobalRetention("default_global_retention"), + + MaxGlobalRetention("max_global_retention"), + + DefaultFailuresRetention("default_failures_retention"), + + ; + + private final String jsonValue; + + RetentionSource(String jsonValue) { + this.jsonValue = jsonValue; + } + + public String jsonValue() { + return this.jsonValue; + } + + public static final JsonEnum.Deserializer _DESERIALIZER = new JsonEnum.Deserializer<>( + RetentionSource.values()); +} diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/SplitRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/SplitRequest.java index 932bb47185..84d1b67640 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/SplitRequest.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/SplitRequest.java @@ -122,6 +122,8 @@ * index. *

  • The number of primary shards in the target index must be a multiple of * the number of primary shards in the source index.
  • + *
  • The number of primary shards in the target index must be a divisor of the + * source index's index.number_of_routing_shards.
  • *
  • The node handling the split process must have sufficient free disk space * to accommodate a second copy of the existing index.
  • * diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/get_data_lifecycle/GlobalRetention.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/get_data_lifecycle/GlobalRetention.java new file mode 100644 index 0000000000..e7ed8cc8fb --- /dev/null +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/indices/get_data_lifecycle/GlobalRetention.java @@ -0,0 +1,215 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +package co.elastic.clients.elasticsearch.indices.get_data_lifecycle; + +import co.elastic.clients.elasticsearch._types.Time; +import co.elastic.clients.json.JsonpDeserializable; +import co.elastic.clients.json.JsonpDeserializer; +import co.elastic.clients.json.JsonpMapper; +import co.elastic.clients.json.JsonpSerializable; +import co.elastic.clients.json.JsonpUtils; +import co.elastic.clients.json.ObjectBuilderDeserializer; +import co.elastic.clients.json.ObjectDeserializer; +import co.elastic.clients.util.ObjectBuilder; +import co.elastic.clients.util.WithJsonObjectBuilderBase; +import jakarta.json.stream.JsonGenerator; +import java.util.Objects; +import java.util.function.Function; +import javax.annotation.Nullable; + +//---------------------------------------------------------------- +// THIS CODE IS GENERATED. MANUAL EDITS WILL BE LOST. +//---------------------------------------------------------------- +// +// This code is generated from the Elasticsearch API specification +// at https://github.com/elastic/elasticsearch-specification +// +// Manual updates to this file will be lost when the code is +// re-generated. +// +// If you find a property that is missing or wrongly typed, please +// open an issue or a PR on the API specification repository. +// +//---------------------------------------------------------------- + +// typedef: indices.get_data_lifecycle._types.GlobalRetention + +/** + * + * @see API + * specification + */ +@JsonpDeserializable +public class GlobalRetention implements JsonpSerializable { + @Nullable + private final Time maxRetention; + + @Nullable + private final Time defaultRetention; + + // --------------------------------------------------------------------------------------------- + + private GlobalRetention(Builder builder) { + + this.maxRetention = builder.maxRetention; + this.defaultRetention = builder.defaultRetention; + + } + + public static GlobalRetention of(Function> fn) { + return fn.apply(new Builder()).build(); + } + + /** + * API name: {@code max_retention} + */ + @Nullable + public final Time maxRetention() { + return this.maxRetention; + } + + /** + * API name: {@code default_retention} + */ + @Nullable + public final Time defaultRetention() { + return this.defaultRetention; + } + + /** + * Serialize this object to JSON. + */ + public void serialize(JsonGenerator generator, JsonpMapper mapper) { + generator.writeStartObject(); + serializeInternal(generator, mapper); + generator.writeEnd(); + } + + protected void serializeInternal(JsonGenerator generator, JsonpMapper mapper) { + + if (this.maxRetention != null) { + generator.writeKey("max_retention"); + this.maxRetention.serialize(generator, mapper); + + } + if (this.defaultRetention != null) { + generator.writeKey("default_retention"); + this.defaultRetention.serialize(generator, mapper); + + } + + } + + @Override + public String toString() { + return JsonpUtils.toString(this); + } + + // --------------------------------------------------------------------------------------------- + + /** + * Builder for {@link GlobalRetention}. + */ + + public static class Builder extends WithJsonObjectBuilderBase implements ObjectBuilder { + @Nullable + private Time maxRetention; + + @Nullable + private Time defaultRetention; + + public Builder() { + } + private Builder(GlobalRetention instance) { + this.maxRetention = instance.maxRetention; + this.defaultRetention = instance.defaultRetention; + + } + /** + * API name: {@code max_retention} + */ + public final Builder maxRetention(@Nullable Time value) { + this.maxRetention = value; + return this; + } + + /** + * API name: {@code max_retention} + */ + public final Builder maxRetention(Function> fn) { + return this.maxRetention(fn.apply(new Time.Builder()).build()); + } + + /** + * API name: {@code default_retention} + */ + public final Builder defaultRetention(@Nullable Time value) { + this.defaultRetention = value; + return this; + } + + /** + * API name: {@code default_retention} + */ + public final Builder defaultRetention(Function> fn) { + return this.defaultRetention(fn.apply(new Time.Builder()).build()); + } + + @Override + protected Builder self() { + return this; + } + + /** + * Builds a {@link GlobalRetention}. + * + * @throws NullPointerException + * if some of the required fields are null. + */ + public GlobalRetention build() { + _checkSingleUse(); + + return new GlobalRetention(this); + } + } + + /** + * @return New {@link Builder} initialized with field values of this instance + */ + public Builder rebuild() { + return new Builder(this); + } + // --------------------------------------------------------------------------------------------- + + /** + * Json deserializer for {@link GlobalRetention} + */ + public static final JsonpDeserializer _DESERIALIZER = ObjectBuilderDeserializer.lazy(Builder::new, + GlobalRetention::setupGlobalRetentionDeserializer); + + protected static void setupGlobalRetentionDeserializer(ObjectDeserializer op) { + + op.add(Builder::maxRetention, Time._DESERIALIZER, "max_retention"); + op.add(Builder::defaultRetention, Time._DESERIALIZER, "default_retention"); + + } + +} diff --git a/java-client/src/main/java/co/elastic/clients/elasticsearch/shutdown/PutNodeRequest.java b/java-client/src/main/java/co/elastic/clients/elasticsearch/shutdown/PutNodeRequest.java index b70f1e3556..94b0a33bd0 100644 --- a/java-client/src/main/java/co/elastic/clients/elasticsearch/shutdown/PutNodeRequest.java +++ b/java-client/src/main/java/co/elastic/clients/elasticsearch/shutdown/PutNodeRequest.java @@ -127,9 +127,10 @@ public static PutNodeRequest of(Function> * Only valid if type is restart. Controls how long Elasticsearch will wait for * the node to restart and join the cluster before reassigning its shards to * other nodes. This works the same as delaying allocation with the - * index.unassigned.node_left.delayed_timeout setting. If you specify both a - * restart allocation delay and an index-level allocation delay, the longer of - * the two is used. + * index.unassigned.node_left.delayed_timeout setting. If you don't specify a + * restart allocation delay, a default value of 5 minutes will be used. If both + * a restart allocation delay and an index-level allocation delay are + * configured, the longer of the two is used. *

    * API name: {@code allocation_delay} */ @@ -285,9 +286,10 @@ private Builder(PutNodeRequest instance) { * Only valid if type is restart. Controls how long Elasticsearch will wait for * the node to restart and join the cluster before reassigning its shards to * other nodes. This works the same as delaying allocation with the - * index.unassigned.node_left.delayed_timeout setting. If you specify both a - * restart allocation delay and an index-level allocation delay, the longer of - * the two is used. + * index.unassigned.node_left.delayed_timeout setting. If you don't specify a + * restart allocation delay, a default value of 5 minutes will be used. If both + * a restart allocation delay and an index-level allocation delay are + * configured, the longer of the two is used. *

    * API name: {@code allocation_delay} */